【AWS】SSO経由でCodeCommitに接続する方法

投稿 2024年6月30日

更新 2024年6月30日

専門用語の数:

【AWS】SSO経由でCodeCommitに接続する方法

~ 目次 ~

やりたいこと

前提

セットアップ手順(初回作業)

SSOログイン

まとめ

やりたいこと

IAMユーザーを使ったアクセスキーでCodeCommitを使うと、永久に使えるためセキュリティ的によろしくないので、

IAM Identity Centerを利用し、SSO経由でCodeCommitを使いたいと思いました。

前提

いろいろ前提が多いですが、下記を前提として話を進めます。

そこまでバージョンは厳しくないと思いますが、

Pythonのバージョンは3系以上をおすすめします。

AWS CLIのバージョンは2.9以上をおすすめします。

セットアップ手順(初回作業)

初回だけの手順のため、すでに終わっている作業がある場合は、飛ばしても問題ないです。

GRCインストール

Pythonで「git-remote-codecommit」をインストールします。


pip3 install git-remote-codecommit

ローカルPCのターミナルでコマンドを実行します。


※今回はpython3のためpip3コマンドですが、バージョン2以下の場合pipコマンドで代用します。

pip install git-remote-codecommit

実行してみて、下記結果が出力されればインストール完了です。

Successfully built git-remote-codecommit

AWS認証情報の設定

CodeCommitへ接続するための認証情報の設定を行います。


aws configure sso

ローカルPCのターミナルでコマンドを実行します。


SSO session name (Recommended): sso

SSOセッションとして、お好きな名前を入力してください。


SSO start URL [None]: https://d-123456789a.awsapps.com/start/#

AWSのスタートURLを入力してください。


SSO region [None]: ap-northeast-1

リージョンを入力してください。


SSO registration scopes [sso:account:access]:

入力なしでエンターを押してください。


Attempting to automatically open the SSO authorization page in your default browser. If the browser does not open or you wish to use a different device to authorize this request, open the following URL: https://device.sso.ap-northeast-1.amazonaws.com/ Then enter the code: CPXC-QCVL

自動でブラウザが開きます。

同じコードが表示されていることを確認してください。

AWS SSO 認可

「Confirm and continue」をクリックします。


AWS SSO 許可確認

「Allow access」をクリックします。


AWS SSO 許可

この画面が表示されたら、先ほどのターミナルへ戻ります。

※ブラウザは閉じても大丈夫です。


ご自身のAWSアカウント一覧が表示されます。

There are 2 AWS accounts available to you. WorkloadTest, test@example.com (111111111111) > WorkloadCodeCommit, codecommit@example.com (222222222222) Using the account ID 222222222222

Gitリポジトリがあるアカウントを、上下キーで選択しエンターを押してください。

※1アカウントしかなければ、選択は省略されるかもしれません。


There are 2 roles available to you. AdministratorAccess > CodeCommitAccess Using the role name "CodeCommitAccess"

選択されたアカウントに紐づいている、許可セット一覧が表示されます。

CodeCommitの操作の権限があるロールを選択してください。

※1つしかなければ、選択は省略されるかもしれません。


CLI default client Region [None]: ap-northeast-1

リージョンを入力してください。


CLI default output format [None]:

入力なしでエンターを押してください。


CLI profile name [CodeCommitAccess-222222222222]: CodeCommit

プロファイル名として、お好きな名前を入力してください。

※今後よく使用するので、覚えやすい名前を推奨します


To use this profile, specify the profile name using --profile, as shown: aws s3 ls --profile CodeCommit

これで設定完了です。

Git設定

Gitのリモートリポジトリへ接続する際に、AWSの資格情報を使用するように設定します。


git config --global credential."https://git-codecommit.リージョン.amazonaws.com".helper "!aws --profile プロファイル名 codecommit credential-helper $@" git config --global credential."https://git-codecommit.リージョン.amazonaws.com".UseHttpPath true

リージョンは適宜変更してください。

プロファイル名は「AWS認証情報の設定」でつけた名前にしてください。


git config --global credential."https://git-codecommit.ap-northeast-1.amazonaws.com".helper "!aws --profile CodeCommit codecommit credential-helper $@" git config --global credential."https://git-codecommit.ap-northeast-1.amazonaws.com".UseHttpPath true

ローカルPCのターミナルでコマンドを実行します。

GitリモートリポジトリのClone

GRC

AWSのCodeCommitで「HTTPS(GRC)」をクリックします。


codecommit::ap-northeast-1://リポジトリ名 例)codecommit::ap-northeast-1://code-commit-test

そうすると、こういう文字列がコピーされます。


codecommit::ap-northeast-1://プロファイル名@リポジトリ名 例)codecommit::ap-northeast-1://CodeCommit@code-commit-test

その文字列にAWS認証情報の設定でつけた、プロファイル名を追記します。


git clone codecommit::ap-northeast-1://CodeCommit@code-commit-test

これをリポジトリURLとして通常通りコマンドや、ご自身のGitクライアントツールでCloneできます。

SSOログイン

SSOは一時的な認証のため、時間経過で接続できなくなります。

SSOログインを行い、トークンの更新を行います。


aws sso login --profile プロファイル名

プロファイル名は「AWS認証情報の設定」でつけた名前にしてください。


aws sso login --profile CodeCommit

ローカルPCのターミナルでコマンドを実行します。


Attempting to automatically open the SSO authorization page in your default browser. If the browser does not open or you wish to use a different device to authorize this request, open the following URL: https://device.sso.ap-northeast-1.amazonaws.com/ Then enter the code: CPXC-QCVL

自動でブラウザが開きます。

同じコードが表示されていることを確認してください。

AWS SSO 認可

「Confirm and continue」をクリックします。


AWS SSO 許可確認

「Allow access」をクリックします。


AWS SSO 許可

これでSSOログイン完了です。

再びCodeCommitの操作が可能です。

まとめ

AWSのCodeCommitをSSO経由で使ってみました。

個人で使う際にも仕事で使う際も、セキュリティは大事ですからね。

全然SSO経由の記事がないので、試して書いてみました。


以上、ここまで見ていただきありがとうございます。

皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。

コメント一覧

コメントがまだありません

コメントを投稿してみる

コメント(必須※500文字以内)

お名前(必須※30文字以内)

※日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)