発生した事象
AWSのaws s3 cp
で、ACLを指定してS3にファイルをアップロードすると、エラーが発生する
- 成功するパターン
aws s3 cp ./src/* s3://dest-bucket
- エラーになるパターン
aws s3 cp ./src/* s3://dest-bucket --acl public-read
An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
原因
コマンドを実行するIAMロールに対してs3:PutObject
権限は付与していたが、s3:PutObjectAcl
権限を付与していなかったから
対応
以下のように、s3:PutObjectAcl権限を付与したら成功した
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "xxx",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": "arn:aws:s3:::dest-bucket/*"
}
]
}
こちらもおススメ