调用此 lambda 函数时:
var params = {
Bucket: sourceBucket,
Key: sourceKey,
ACL: 'public-read-write'
};
s3.putObjectAcl(params, function(err, data){
if (err){
callback(err)
}
})
我为这个 lambda 函数尝试了 2 个执行角色,但还是遇到了上面的错误:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObjectVersionAcl",
"s3:PutObjectAcl"
],
"Resource": "arn:aws:s3:::my-bucket-name/*"
}
]
}
我可以知道我做错了什么或错过了什么吗?谢谢!
答案 0 :(得分:0)
jarmod 在评论中回答了这个问题:
禁用存储桶中的“阻止公共访问”设置。
为什么?
“如果将对象写入启用了 S3 阻止公共访问的 AWS 账户或 S3 存储桶,并且该对象通过 ACL 或策略指定了任何类型的公共权限,则这些公共权限将被阻止。”
来源:aws.amazon.com/s3/features/block-public-access