[AWS, CodeDeploy, CodePipeline] CodePipeline から DoceDeploy 実施時に Access Denied

スポンサーリンク
スポンサーリンク

現象

CodeDeploy 単体で動かしたときに問題なくデプロイできたが、CodePipeline から呼び出した際に AccessDenied が発生する

環境

ビルド展開先 : S3
デプロイ先 : EC2

原因

CodePipeline が作成するバケットに対するアクセス権限を EC2 に対して設定する必要があった

対応

CodeDeploy 設定時に指定したEC2ポリシーを下記のように変更

# 変更前
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*" 
            ],
            "Resource": [
                "arn:aws:s3:::replace-with-your-s3-bucket-name/*" 
            ]
        }
    ]
}

# 変更後
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*" 
            ],
            "Resource": [
                "arn:aws:s3:::codepipeline-ap-northeast-1-*",
                "arn:aws:s3:::replace-with-your-s3-bucket-name/*" 
            ]
        }
    ]
}

まとめ

チュートリアルで EC2 にポリシーを設定する際、S3 に作成したモジュール格納用のバケットしか許可していなかった。
チュートリアルに書いてあるように素直に下記を指定しておけば問題なかったんだなあ。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:Get*",
        "s3:List*"
      ],
      "Resource": [
        "arn:aws:s3:::replace-with-your-s3-bucket-name/*",
        "arn:aws:s3:::aws-codedeploy-us-east-2/*",
        "arn:aws:s3:::aws-codedeploy-us-east-1/*",
        "arn:aws:s3:::aws-codedeploy-us-west-1/*",
        "arn:aws:s3:::aws-codedeploy-us-west-2/*",
        "arn:aws:s3:::aws-codedeploy-ca-central-1/*",
        "arn:aws:s3:::aws-codedeploy-eu-west-1/*",
        "arn:aws:s3:::aws-codedeploy-eu-west-2/*",
        "arn:aws:s3:::aws-codedeploy-eu-west-3/*",
        "arn:aws:s3:::aws-codedeploy-eu-central-1/*",
        "arn:aws:s3:::aws-codedeploy-ap-east-1/*",
        "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*",
        "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*",
        "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*",        
        "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*",
        "arn:aws:s3:::aws-codedeploy-ap-south-1/*",
        "arn:aws:s3:::aws-codedeploy-sa-east-1/*"
      ]
    }
  ]
}

コメント

タイトルとURLをコピーしました