【问题标题】:An error occurred (MalformedPolicy) when calling the PutBucketPolicy operation: Policy has invalid resource调用 PutBucketPolicy 操作时发生错误(MalformedPolicy):Policy has invalid resource
【发布时间】:2020-11-09 13:09:21
【问题描述】:

我正在尝试通过 cil 公开我的 s3 存储桶,在各处进行了更改,但仍然出现错误 "调用 PutBucketPolicy 操作时发生错误(MalformedPolicy):Policy has invalid resource"

{
    "Id": "MyPolicy",
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadForGetBucketObjects",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::task1y/*"
        }
    ]
}

谁能建议我如何解决这个问题?

【问题讨论】:

  • 欢迎来到 SO!请以代码而不是图像的形式分享您的政策和错误
  • 您是否将此存储桶策略放在名为 task1y 的存储桶上?

标签: amazon-web-services amazon-s3 amazon-ec2 aws-lambda amazon-elastic-beanstalk


【解决方案1】:

根据文档,该策略应与以下内容相匹配,其中 examplebucket 是您要将策略附加到的存储桶名称。

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"PublicRead",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::examplebucket/*"]
    }
  ]
}

您收到的此错误表明您附加此策略的存储桶名称不同。换句话说,您的资源只能附加到名为 task1y 的存储桶。

【讨论】:

    【解决方案2】:

    某些资源(如 ListBucket)接受带有全名的 arn,如“arn:aws:s3:::bucket_name”,而 GetObject 或 PutObjects 需要在 bucket_name 之后使用 /*。根据服务更改 ARN,它现在应该可以工作了!

    【讨论】:

      猜你喜欢
      • 2020-01-16
      • 2020-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-08
      • 1970-01-01
      • 2018-06-08
      • 2018-04-12
      相关资源
      最近更新 更多