首页 > 解决方案 > 如何解决条件不适用于语句中的动作和资源组合?

问题描述

我正在尝试将 s3 存储桶从一个帐户复制到另一个帐户。为此,我按照aws 描述的步骤进行操作。在第 4 步中,建议采用以下策略:

{
 "Statement": [
        {
          "Sid": "ExampleStmt",
          "Action": [
            "s3:ListBucket",
            "s3:PutObject",
            "s3:PutObjectAcl"
          ],
          "Effect": "Allow",
          "Resource": [
            "arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET",
            "arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET/*"
          ],
          "Condition": {
            "StringEquals": {
              "s3:x-amz-acl": "bucket-owner-full-control"
            }
          },
          "Principal": {
            "AWS": [
              "arn:aws:iam::222222222222:user/Jane"
            ]
          }
        }
      ]
}

但是,当我尝试执行此操作时(在替换示例存储桶和 arn 之后),我收到以下错误:条件不适用于语句中的操作和资源的组合。

如何解决此错误并确保可以将 s3 从一个帐户复制到另一个帐户?

标签: amazon-web-servicesamazon-s3aws-clibucket

解决方案


您使用的条件键不适用于您指定的操作。

放置对象

PubObjectAcl

列表桶

您可以在此处查看 Amazon S3 的条件键,了解 S3支持的各种条件。


推荐阅读