AmazonAppFlowFullAccess を付与したIAMユーザで AppFlow が作成できないときの対処方法

2021.06.03

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

S3 を指定した AppFlow の作成時に「Access Denied」が表示されて、AppFlow が作成できません。 操作しているIAMユーザには AmazonAppFlowFullAccess を付与しており、S3 のバケット一覧などは表示できました。
AmazonAppFlowFullAccess だけでは権限不足なのでしょうか。対処方法を教えてください。

どう対応すればいいの?

S3 のバケット名をご確認ください。

AmazonAppFlowFullAccess は S3 を送信元/送信先に指定するために必要な権限を有していますが、S3 のバケット名がappflow-で始まる場合という条件が付いています。

AWS managed policies for Amazon AppFlow - Amazon AppFlow

This policy automatically grants read and write permissions to S3 buckets with an appflow- prefix only. You will not have access rights to any other S3 buckets without this prefix.

そのため、appflow-で始まる既存の S3 バケットをご指定いただくか、新規の S3 バケットをご作成ください。

appflow-以外のS3 バケットを指定したいときは?

以下のポリシーを操作するIAMユーザに追加で付与してください。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:PutBucketPolicy",
            "Resource": "*"
        }
    ]
}

AmazonAppFlowFullAccess はAWS 管理ポリシーのため、編集はできません。そのため、上記のようなポリシーを追加で付与することで、appflow-で始まる S3 バケット 以外にもアクセスが許可され、AppFlow で指定できるようになります。

参考資料