BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE

aws CodePipelineを使って、コードをビルドする際に「BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE」のエラーに遭遇したので解決方法を紹介します。

目次

原因: CodeBuildからリポジトリへのアクセス権限がない

「BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE」となってしまう原因はCodeBuildのiamがecrのリポジトリにアクセスする権限がないためです。

ecrのリポジトリからCodeBuildのiamに対して許可を出せば解決します。

解決方法: ecrからアクセス許可

「Amazon Elastic Container Registry」の対象リポジトリのチェックして、アクション>許可をクリック。

このような条件で許可をします。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "CodeBuildAccessPrincipal",
      "Effect": "Allow",
      "Principal": {
        "Service": "codebuild.amazonaws.com",
        "AWS": "<CodeBuildの IAM ロール>"
      },
      "Action": [
        "ecr:BatchCheckLayerAvailability",
        "ecr:BatchGetImage",
        "ecr:GetDownloadUrlForLayer"
      ],
      "Condition": {
        "StringEquals": {
          "aws:SourceArn": "arn:aws:codebuild:<region>:<AWS-account-ID>:project/<project-name>",
          "aws:SourceAccount": "<AWS-account-ID>"
        }
      }
    }
  ]
}

CodeBuildの IAM ロールとaws:SourceArnはCodeBuildのコンソールから確認できます。

対象のビルドプロジェクトをチェックして「詳細を表示」ボタンを押します。

遷移したページ内にあるサービスロールがCodeBuildの IAM ロール、プロジェクト ARNがaws:SourceArnとなります。

aws:SourceAccountはaws:SourceArnからAWS-account-IDをコピペします。

参考

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

目次