フラミナル

考え方や調べたことを書き殴ります。IT技術系記事多め

WindowsからAWSのCodeCommitをHTTPS経由で使う方法について

f:id:lirlia:20180507102442p:plain

WindowsからAWSのCodeCommitをHTTPS経由で使う方法についてまとめます

前提知識

  • Git
  • Windows
  • CodeCommit

準備

  • Git fow Windowsのインストール
  • IAMの権限追加
  • AWS CLIのインストール

参考リンク

まずはここまですませてください。

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を再インストールすることをおすすめします。

再インストール時はこちらのチェックを外しましょう。

f:id:lirlia:20180507101745j:plain

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