ablog

不器用で落着きのない技術者のメモ

AWS AppFlow から S3 への書き込みで Access Denied と怒られる

事象

  • AWS AppFlow から S3 への書き込みで Access Denied と怒られる

原因

  • AppFlow でフロー作成時に指定したS3バケットバケットポリシーが設定されるが、フロー作成時に使っている IAM 権限不足でバケットポリシーの作成に失敗している

解決策

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "appflow.amazonaws.com"
            },
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:GetBucketAcl",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads",
                "s3:ListMultipartUploadParts",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::appflow-salesforce-landing",  ★ バケットポリシーを設定するバケット
                "arn:aws:s3:::appflow-salesforce-landing/*"
            ]
        }
    ]
}
  • 他の方法として、バケットポリシー作成権限のある IAM ユーザー/ロールでフローを作成してもよい