
CodeCommit リポジトリに対して git clone コマンドを実行して 403 エラーになったときの対処方法
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
困っていた内容
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",
}






