首页 > 解决方案 > AWS 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>"
            ]
        }
    ]
}

标签: amazon-web-servicesamazon-s3

解决方案


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

请查看如何从另一个 AWS 账户复制 S3 对象?再次文章,您将能够正确设置此策略。


推荐阅读