AWS CodeCommit で AWS CLI を使って認証する際のアレコレ

背景

SSH Key を登録していないユーザーで AWS の CodeCommit にコードを push する必要があり、手順などを調べたので備忘録として簡単にまとめます。

環境

mac OS Monterey

設定

1. AWS CLI をインストール

docs.aws.amazon.com

上記ページから pkg ファイルをダウンロードして実行。ローカルユーザー用にインストールしたら何故かエラーが発生して失敗しましたが、もう一度実行したらインストールできました。

2. AWS CLI の設定

aws configure コマンドを実行して、アクセスキーID, シークレットアクセスキー、リージョン名に自分の認証情報を設定、Default output format を json に指定します。

docs.aws.amazon.com

3. git config の設定

グローバルに保存したくなかったのでローカルの gitconfig に書き込むようにしました。

git config credential.helper '!aws codecommit credential-helper $@'
git config credential.UseHttpPath true

docs.aws.amazon.com

4. git remote の設定

HTTPS の URL をコピーします。適当な名前で git にリモートとして追加します。

git remote add aws <コピーしたURL>

git push

ユーザー名とパスワードを尋ねられるので入力します。 設定がうまく行っていれば push することができます。

アクセスできなくなった

AWS CLI を使った認証は、一時的なパスワードが使用されており、15分でアクセスできなくなるようです。

キーチェーンアクセスを開いて保存されている CodeCommit のパスワードを削除します。この際デフォルトキーチェーンが iCloud を選択していると削除できないので、ログインを選択して下さい。

https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/setting-up-https-unixes.html

Git LFS

CodeCommit とは直接関係ありませんが、LFS が有効になっておらず push できなかったため、LFS に登録しているファイルを解除しました。

  1. .gitattributes を削除しました (lfs の指定だけだったので)
  2. git lfs migrate export --everything --include . の実行

git lfs migrate export コマンドの完了には5分くらいかかりました。

stackoverflow.com