AWS S3错误“策略具有无效资源”

时间:2020-11-12 06:47:38

标签: amazon-web-services amazon-s3

我正在将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>"
            ]
        }
    ]
}

1 个答案:

答案 0 :(得分:0)

原因是这是无效的存储桶策略。相反,它应该是您创建并附加到IAM角色或用户的托管IAM策略

请再次查看How can I copy S3 objects from another AWS account?文章,您将能够正确设置此政策。