CodeCommitに作成したgitレポジトリに接続するための認証に、AWS CLIを利用する方法です。gitの認証ヘルパーに"aws codecommit credential-helper"を利用するのがポイントです。
1.手順: IAMユーザ作成とAWS CLIプロファイル設定
1.1 CodeCommit用のIAMユーザを作成
グループ"CodeCommitUserGrp"を作成し、AWSCodeCommitPowerUserポリシーを付与。
ユーザ"User01"を、"CodeCommitUserGrp"で作成する。
- グループ設定
- グループ名: CodeCommitUserGrp
- アタッチするポリシ: AWSCodeCommitPowerUser
# 設定 aws iam create-group --group-name CodeCommitUserGrp aws iam attach-group-policy --group-name CodeCommitUserGrp --policy-arn arn:aws:iam::aws:policy/AWSCodeCommitPowerUser # 設定確認 aws iam get-group --group-name CodeCommitUserGrp aws iam list-attached-group-policies --group-name CodeCommitUserGrp
- ユーザ設定
- ユーザ名: User01
- 所属グループ: CodeCommitUserGrp
# 設定 aws iam create-user --user-name User01 aws iam add-user-to-group --user-name User01 --group-name CodeCommitUserGrp # 設定確認 aws iam get-user --user-name User01 aws iam list-groups-for-user --user-name User01
1.2 ユーザのアクセスキーとシークレットキーを生成
PCのAWS CLIに設定するアクセスキーとシークレットキーを生成します。AccessKeyIdとSecretAccessKeyを控えます。(漏洩しないよう注意!!)
aws iam create-access-key --user-name User01 { "AccessKey": { "UserName": "User01", "Status": "Active", "CreateDate": "2019-08-12T09:55:52Z", "SecretAccessKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "AccessKeyId": "YYYYYYYYYYYYYYYYYYYY" } }
1.3 AWS CLIにプロファイルを作成
AWS CLIがセットアップされていない場合は、こちらの記事を参照して、CLIをインストールして下さい。
AWS CLIをセットアップ後に、aws CLIにcodecommitというプロファイルを作成し、先ほど生成したアクセスキーとシークレットキーを登録します。
aws --profile codecommit configure AWS Access Key ID [None]: YYYYYYYYYYYYYYYYYYYY AWS Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Default region name [None]: ap-northeast-1 Default output format [None]: json
2.手順: gitの認証ヘルパー設定
gitコマンドがインストールされていない場合は、先にgitをインストールします。(インストール方法は記載しないので、別途検索して下さい)
2.1 gitの初期設定(ユーザ設定&pushモード設定)
(1)メールアドレス、(2)名前、(3)push時のモードを設定します。
git config --global user.email "xxxxxxx@gmail.com" git config --global user.name "xxxxxxxx" git config --global push.default simple git config --global -l
2.2 gitの認証ヘルパーにAWSコマンドを設定
公式ドキュメントの情報を参考に、下記コマンドで認証ヘルパーとしてAWSコマンドを指定します。
git config --global credential.helper '!aws --profile codecommit codecommit credential-helper $@' git config --global credential.UseHttpPath true
ただし、私の環境では上記コマンドで正しく反映されなかったため、"~/.gitconfig"のcredential句の部分を、下記の通り正しい内容に修正しました。(こちらの記事を参考にしました)
[credential] helper = "!aws --profile codecommit codecommit credential-helper $@" UseHttpPath = true
3.手順: CodeCommitのレポジトリからcloneのテスト
git clone <レポジトリhttpsのURL>