はい、CodePipelineのビルドで「An error occurred (AccessDeniedException) ~」と怒られた人集合


DockerのコンテナをいちいちビルドしてECRにプッシュするの面倒くさいなと思い、CodePipelineというサービスを使ったのですが、何回ビルドしても以下のようなエラーが起きるんです。

An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:sts::***:assumed-role/zaemonia/AWSCodeBuild-*** is not authorized to perform: ecr:GetAuthorizationToken on resource: *
Error: Cannot perform an interactive login from a non TTY device

[Container] 2021/02/27 06:47:26 Command did not exit successfully aws ecr get-login --no-includeemail --region a--northeast-1 exit status 1
[Container] 2021/02/27 06:47:26 Phase complete: PRE_BUILD State: FAILED

要するにECRのリポジトリにアクセスする権限が無いんですね。

じゃあ追加してあげましょう!!

サービス検索欄で「CodePipeline」と検索。

「ビルド」→「ビルドプロジェクト」→任意のビルドプロジェクトをクリック。

このような画面になると思います。

ここから「ビルドの詳細」タブから「環境」→「サービスロール」をクリック。

「ポリシーをアタッチします」→「AmazonEC2ContainerRegistryPowerUser」を追加してください!

これでビルド無事ビルドを行うことができます。

ちゃっかり時間かかったのでくれぐれもお気を付けください。

以上、「はい、CodePipelineのビルドで「An error occurred (AccessDeniedException) ~」と怒られた人集合」でした!

また、何か間違っていることがあればご指摘頂けると幸いです。

他にも初心者さん向けに記事を投稿しているので、時間があれば他の記事も見て下さい!!

あと、最近「ココナラ」で環境構築のお手伝いをするサービスを始めました。

気になる方はぜひ一度ご相談ください!

Thank you for reading