CodeCommit リポジトリに対して git clone コマンドを実行して 403 エラーになったときの対処方法
困っていた内容
CodeCommit リポジトリからgit clone
を実行するとfatal: unable to access 'https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test-repository/': The requested URL returned error: 403
というエラーが返ってきました。
詳細なエラーメッセージを確認する方法はありますか?
どう対応すればいいの?
CodeCommit リポジトリに対してgit push
、git pull
コマンドを実行すると、CloudTrail に記録されます。
そのため、CloudTrail のイベント履歴からイベント名GitPush
、GitPull
を検索することで、詳細なエラー内容が分かります。
実際に確認してみた
自身のグローバル IP アドレスからのGitPull
を明示的に拒否した IAM ロールを使用してgit clone
コマンドを実行し、CloudTrail を確認してみます。
% git clone codecommit::ap-northeast-1://test-repository Cloning into 'test-repository'... fatal: unable to access 'https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test-repository/': The requested URL returned error: 403
403 エラーが確認できたため CloudTrail を見ると、以下のとおり AccessDenied が表示されていることがわかります。
イベント名をクリックしてイベントレコードを確認すると、以下のエラーメッセージが確認できました(関係箇所のみ抜粋)。
以下のエラーメッセージを参考に IAM ロールなどのポリシーを確認し、問題箇所を修正すればエラー解決です。
{ "eventName": "GitPull", "userAgent": "git/2.33.0", "errorCode": "AccessDenied", "errorMessage": "User: arn:aws:sts::111111111111:assumed-role/xxxx is not authorized to perform: codecommit:GitPull on resource: arn:aws:codecommit:ap-northeast-1:111111111111:test-repository with an explicit deny in an identity-based policy", }