s3跨帐户策略-操作不适用于任何资源错误

时间:2019-05-08 20:50:29

标签: amazon-web-services amazon-s3 terraform

我有一个交叉帐户,该帐户需要访问存储桶(准确地说是文件夹),当我在terraform中应用此帐户时,出现错误,有人可以让我知道,该政策中的错误

我正在尝试编写s3 acl策略。用户应该只对存储桶中的folder1具有权限。

请指出如何使用该条件(我具有AccountA-CanonicalUserID)和用户名

resource "aws_s3_bucket_policy" "policy" {
  bucket = "${aws_s3_bucket.xxx.id}"
     policy = <<POLICY
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "MicrositesLogs",
          "Effect": "Allow",
          "Principal": {
             "AWS": "arn:aws:iam::xxx:user/user1"
           },
          "Action": [
                      "s3:PutObject",
                      "s3:GetObject"
                    ],
          "Resource": "arn:aws:s3:::xxxx/folder1/*",
          "Condition": {
             "StringEquals": {
               "s3:x-amz-grant-full-control": "id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
            }
          }
        }
      ]
    }
    POLICY
    }

错误:应用计划时出错:

发生1个错误:

  • aws_s3_bucket_policy.policy:发生1个错误:

  • aws_s3_bucket_policy.policy:错误放置S3策略:MalformedPolicy:条件不适用于语句中的动作和资源组合     状态码:400,请求ID:84C92DAD0C9AC0FB,主机ID:rvg7fqFDXdigCHPLLM / FXtOTXJXGKXSN9eQNRBZdkd0GrGRzis9ZkJu1Kkyu896RUvOx7mI7lcQ =

1 个答案:

答案 0 :(得分:1)

s3:x-amz-grant-full-control是一个条件键,要求对象的 creator 要求在创建对象时授予列出的权限。它不授予任何东西-它使上传者有负担进行授予,否则上传被拒绝。因此,不可能在s3:GetObject上匹配此条件,因此,如果系统允许您创建此策略,它将永远无法工作。