调用PutBucketPolicy操作时发生错误(MalformedPolicy):策略资源无效

时间:2020-07-20 09:45:14

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

我正在尝试通过cil公开我的s3存储桶,到处进行了更改,但仍然出现错误 “调用PutBucketPolicy操作时发生错误(MalformedPolicy):策略资源无效”

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

有人可以建议我如何解决此问题吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

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