@shinyaz

CodeCommit は存在しないリポジトリでも AccessDeniedException を返す

ArgoCD で CodeCommit 連携を試していたとき、Application の repoURL にリポジトリ名を間違えて入力した。「リポジトリが見つからない」というエラーを予想していたが、返ってきたのは IAM ポリシーが未設定のときとまったく同じ AccessDeniedException だった。

Output
is not authorized to perform: codecommit:GitPull on resource:
arn:aws:codecommit:ap-northeast-1:111122223333:argocd-demo-typo

IAM ポリシーの Resource を特定のリポジトリ ARN にスコープしていると、スコープ外のリポジトリ名はすべて権限エラーとして処理される。存在しないリポジトリかどうかは区別されない。

AccessDeniedException が出たら、まず IAM ポリシーの Resource ARN と repoURL のリポジトリ名を突き合わせるのが最初のデバッグステップだ。typo で IAM 権限を疑って時間を浪費するのを防げる。検証の詳細はこちら

共有する

田原 慎也

田原 慎也

ソリューションアーキテクト @ AWS

AWS ソリューションアーキテクトとして金融業界のお客様を中心に技術支援をしており、クラウドアーキテクチャや AI/ML に関する学びをこのサイトで発信しています。このサイトの内容は個人の見解であり、所属企業の公式な意見や見解を代表するものではありません。