AWS IAM Identity Center を使用したスイッチロールによる CodeCommit リポジトリのクローン方法

Contents

 

前提

前提として、今回紹介するのは、AWS IAM Identity Center経由でのスイッチロール切り替え先にクローンを行うCodeCommitのリポジトリが存在している状態から、ローカルにリポジトリをクローンする方法で、AWSの設定等は割愛します。

今回はWindows11環境での説明になりますが、Mac・Linux共に同じような設定でクローンが出来るかと思います。

 

ローカル環境構築

各種インストールされている場合、バージョンを確認しバージョンが下記を満たしていない場合、最新版に更新してください。

1. AWS CLIバージョン2をインストールする。
・最新版をインストールする。
コマンドで「msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi」
を実行する。

C:\> msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi

・バージョン確認
コマンドで「aws –version」を実行する。

C:\> aws --version
[実行結果例]
C:\> aws --version
aws-cli/2.17.20 Python/3.11.6 Windows/10 exe/AMD64 prompt/off

参考(Windows参照)
AWS CLIの最新リリースをインストールまたは更新する方法

2.git-remote-codecommitをインストールする。
・Pythonバージョン3以降をインストールする。(下記ダウンロード参照)
→バージョン確認
→コマンドで「python –version」を実行する。

python –version

・pip バージョン 9.0.3 以降がインストールされているか確認をする。
→バージョン確認
→コマンドで「pip –version」を実行する。

pip –version

・Gitをインストールする。(下記ダウンロード参照)
→バージョン確認
→コマンドで「git –version」を実行する。

git –version

・git-remote-codecommit をインストールする。
→コマンドで「pip install git-remote-codecommit」を実行する。

pip install git-remote-codecommit

→ダウンロード

Pythonのダウンロードはこちらを参照してください。
Gitのダウンロードはこちらを参照してください。

参考
HTTPS AWS CodeCommit を使用した への git-remote-codecommit 接続のセットアップ手順

 

AWS CLI 設定

1.AWS access portalから情報を取得する。

イメージ「Access keys」をクリック。

イメージの「Windowsタブ」をクリックし、各値を設定のため取得しておく。
・SSO start URL
・SSO Region
・AWS_ACCESS_KEY_ID
・AWS_SECRET_ACCESS_KEY

2.コマンドで「aws configure」を実行する。

aws configure 【--profile profile-name】
$ aws configure
AWS Access Key ID [None]:accesskey
AWS Secret Access Key [None]:secretkey
Default region name [None]:us-west-2
Default output format [None]:

上記、AWS access portalから取得した情報を設定する。

AWS Access Key ID [None]:「AWS_ACCESS_KEY_ID」
AWS Secret Access Key [None]:「AWS_SECRET_ACCESS_KEY」
Default region name [None]:「SSO Region」
Default output format [None]:json ← jsonで良い

3.認証情報ファイル・設定ファイルが生成されているか確認。
%USERPROFILE%\.aws\の配下に
「credentials」認証情報ファイルと「config」設定ファイルが配置されているか確認する。
内容は以下イメージの「[default]」が設定されていると思います。(値は上記設定値)

認証情報ファイル

[default]
aws_access_key_id=[設定値]
aws_secret_access_key=[設定値]

設定ファイル

[default]
region=[設定値]
output=json

参考
構成設定および認証情報ファイルの設定

 

AWS SSO 設定

1.「credentials」認証情報ファイルに設定を追加する。

イメージのように認証情報ファイルに設定を追記する。
※gitcloneは任意で設定してください。プロファイル名になるので、ログイン・設定ファイルで使用します。

2.「config」設定ファイルに設定を追加する。

イメージのように設定ファイルに設定を追記する。
※クローンするリポジトリがあるスイッチロールのID・名称となります。

参考
AWS CLIを使用した IAM Identity Center 認証の設定

 

AWS SSO ログイン

1.コマンドで「aws sso login –profile gitclone」を実行する。

aws sso login --profile gitclone

ローカルでデフォルト設定されているブラウザーが起動され以下イメージの
画面が表示されるので、「Confirm and continue」をクリックし認証を行う。

2.認証を行うとアクセス可能なサービスが表示されるので、アクセス許可を行う。
3.アクセス許可を行うと、アクセスが許可され以下イメージが表示されてログインとなる。

※手順1.で、ブラウザーでアカウントにログインしていない場合、一度ブラウザーでのログインが必要になります。

Git 設定

1.Gitをインストールする。(詳細は割愛、通常通りインストール)
2.コマンドで以下コードを実行する。
「git config –global credential.helper “!aws –profile gitclone codecommit credential-helper $@”」を実行。
「git config –global credential.UseHttpPath true」を実行。
例)

git config --global credential.helper "!aws --profile gitclone codecommit credential-helper $@"
git config --global credential.UseHttpPath true

参考
AWS CodeCommit 認証情報ヘルパーを使用して Windows で AWS CLI リポジトリへの HTTPS 接続をセットアップする手順 – AWS CodeCommit

CodeCommit クローン

1. コマンドで以下コードを実行する。
git clone codecommit::[※1]://[※2]@[※3]

※1 SSO Region
※2プロファイル 「gitclone」
※3リポジトリ名
例)

git clone codecommit://MyCrossAccountAccessProfile@MySharedDemoRepo

参考
リポジトリへのクロスアカウントアクセス: AccountB のリポジトリユーザーのアクション – AWS CodeCommit

まとめ

以上、AWS IAM Identity Center経由でのスイッチロール権限でCodeCommitのリポジトリをローカルにクローンするまでの手順となります。多少環境等で個別の設定があるかもしれませんが概ね上記手順にてクローン出来るかと思います。
今回のようなAWS環境(IAMユーザなし)でローカルにCodeCommitのリポジトリをクローンするまで、機能単位での設定等は色々と情報はあるのですが、全体を通した流れでの設定方法が見当たらず、クローン出来るまでに時間を要しました。
今後ますますAWS環境がセキュリティの面で多様になり設定方法がより詳細化され難しくなると思いますが、セキュリティが強化され安全になるためには仕方がない事なのかもしれません。

記事:Y.N

「再春館システム システムインテグレーション」はこちら