CodeCommit は存在しないリポジトリでも AccessDeniedException を返す
ArgoCD で CodeCommit 連携を試していたとき、Application の repoURL にリポジトリ名を間違えて入力した。「リポジトリが見つからない」というエラーを予想していたが、返ってきたのは IAM ポリシーが未設定のときとまったく同じ AccessDeniedException だった。
is not authorized to perform: codecommit:GitPull on resource:
arn:aws:codecommit:ap-northeast-1:111122223333:argocd-demo-typoIAM ポリシーの Resource を特定のリポジトリ ARN にスコープしていると、スコープ外のリポジトリ名はすべて権限エラーとして処理される。存在しないリポジトリかどうかは区別されない。
AccessDeniedException が出たら、まず IAM ポリシーの Resource ARN と repoURL のリポジトリ名を突き合わせるのが最初のデバッグステップだ。typo で IAM 権限を疑って時間を浪費するのを防げる。検証の詳細はこちら。
