我正在将S3存储桶从源存储桶移动到目标存储桶。 下面是做这项工作的参考。 https://aws.amazon.com/premiumsupport/knowledge-center/copy-s3-objects-account/?nc1=h_ls
但是我在制定政策时遇到了错误。错误消息是Policy has invalid resource
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::<SOURCE_BUCKET_NAME>",
"arn:aws:s3:::<SOURCE_BUCKET_NAME>/*"
]
},
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::<DESTINATION_BUCKET_NAME>",
"arn:aws:s3:::<DESTINATION_BUCKET_NAME>/*"
]
}
]
}
我已经更改了测试政策,并且可以正常工作。区别如下。
arn:aws:s3:::<SOURCE_BUCKET_NAME>
> arn:aws:s3:::<DESTINATION_BUCKET_NAME>
我不知道为什么填写我的SOURCE_BUCKET_NAME不能正常工作。
我发誓源存储桶名称没有错。您可能会认为这个问题像个傻瓜,而且我也认为这没什么,但我找不到任何意义。如果您知道答案,请帮帮我。感谢您的阅读:)
存储桶策略。 替换的主体是目标(目标)帐户中IAM身份的ARN。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DelegateS3Access",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::xxxxxxxxxxxx:user/ws.kim"
},
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::<SOURCE_BUCKET_NAME>/*",
"arn:aws:s3:::<SOURCE_BUCKET_NAME>"
]
}
]
}
答案 0 :(得分:0)
原因是这是无效的存储桶策略。相反,它应该是您创建并附加到IAM角色或用户的托管IAM策略。
请再次查看How can I copy S3 objects from another AWS account?文章,您将能够正确设置此政策。