WindowsからAWSのCodeCommitをHTTPS経由で使う方法についてまとめます
前提知識
- Git
- Windows
- CodeCommit
準備
- Git fow Windowsのインストール
- IAMの権限追加
- AWS CLIのインストール
参考リンク
- Install the AWS Command Line Interface on Microsoft Windows - AWS Command Line Interface
- AWS CLI 認証情報ヘルパーを使用して Windows 上で AWS CodeCommit リポジトリへの HTTPS 接続の設定手順 - AWS CodeCommit
まずはここまですませてください。
AWS configure設定
作成したIAMアカウントの設定をCMDから行います。
aws configure プロンプトが表示されたら、AWS CodeCommit で使用する IAM ユーザーの AWS アクセスキーと AWS シークレットアクセスキーを指定します。また、リポジトリが存在するリージョン (us-east-2 など) を指定します。デフォルトの出力形式の入力を求められたら、json を指定します。以下に例を示します。 AWS Access Key ID [None]: Type your target AWS access key ID here, and then press Enter AWS Secret Access Key [None]: Type your target AWS secret access key here, and then press Enter Default region name [None]: Type a supported region for AWS CodeCommit here, and then press Enter Default output format [None]: Type json here, and then press Enter
git configの設定
コマンドプロンプトから以下の設定を行います。
> git config --global credential.helper "!aws codecommit credential-helper $@" > git config --global credential.UseHttpPath true
CodeCommitのclone
あとはリポジトリをcloneするだけです。
C:\Users\xxx\Desktop\test>git clone https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test test Cloning into 'test'... remote: Counting objects: 93, done. Unpacking objects: 100% (93/93), done. Checking out files: 100% (69/69), done.
これでおわり!
403エラーが出る場合
C:\Users\xxx\Desktop\test>git clone https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/ansible ansible Cloning into 'ansible'... fatal: unable to access 'https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/ansible/': The requested URL retur ned error: 403
403エラーが出る場合には認証情報マネージャーがおかしい場合があります。
公式サイトには以下のように記載されていますので一度Git for Windowsを再インストールすることをおすすめします。
再インストール時はこちらのチェックを外しましょう。
Git for Windows のインストールに Git 認証情報マネージャーユーティリティが含まれている場合、最初の数回の接続試行後に 認証情報マネージャーユーティリティに認証情報を提供するかどうかを確認する 403 エラーが表示されます。この問題を解決する最も確実な方法は、AWS CodeCommit と互換性がないため、Git 認証情報マネージャーユーティリティのオプションを使用せずに Git for Windows をアンインストールしてから再インストールすることです。Git 認証情報マネージャーユーティリティを保持する場合は、AWS CodeCommit に接続するときに AWS CodeCommit の認証情報ヘルパーの使用を指定するために .gitconfig ファイルを手動で変更することを含め、AWS CodeCommit を使用する追加の構成ステップを実行する必要があります。認証情報マネージャーユーティリティから格納されている資格情報を削除します (このユーティリティはコントロールパネルにあります)。格納されている認証情報を削除したら、以下を .gitconfig ファイルに追加して保存し、新しいコマンドプロンプトウィンドウから再度接続してください。
またこの他にもこちらに記載の可能性が考えられますのでチェックしてみましょう。
認証情報ヘルパーと AWS CodeCommit への HTTPS 接続のトラブルシューティング - AWS CodeCommit