背景
SSH Key を登録していないユーザーで AWS の CodeCommit にコードを push する必要があり、手順などを調べたので備忘録として簡単にまとめます。
環境
mac OS Monterey
設定
1. AWS CLI をインストール
上記ページから pkg ファイルをダウンロードして実行。ローカルユーザー用にインストールしたら何故かエラーが発生して失敗しましたが、もう一度実行したらインストールできました。
2. AWS CLI の設定
aws configure
コマンドを実行して、アクセスキーID, シークレットアクセスキー、リージョン名に自分の認証情報を設定、Default output format を json に指定します。
3. git config の設定
グローバルに保存したくなかったのでローカルの gitconfig に書き込むようにしました。
git config credential.helper '!aws codecommit credential-helper $@' git config credential.UseHttpPath true
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 に登録しているファイルを解除しました。
- .gitattributes を削除しました (lfs の指定だけだったので)
git lfs migrate export --everything --include .
の実行
git lfs migrate export コマンドの完了には5分くらいかかりました。