策略包含无效资源

时间:2018-06-16 12:12:42

标签: amazon-web-services amazon-s3

我收到错误,Policy有无效资源。 我正在使用亚马逊的s3, 现在我设置Permission的Bucket Policy.I在Bucket策略编辑器中写了json,如

const client = new ApolloClient({
link: ApolloLink.split(
    hasSubscriptionOperation,
    wsLink,
    ApolloLink.from([
      cleanTypenameLink,
      authMiddleware,
      errorLink,
      stateLink,
      createUploadLink()
    ])
  ),
  cache
});

当我保存它时,错误此策略包含无效的Json错误发生。我认为我写错了json的格式,所以改写了

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ],
            "Principal":{"CanonicalUser":"64-digit-alphanumeric-value"},
        }
    ]
}

但 错误 策略发生无效资源错误。我真的不明白为什么会发生这样的错误。出了什么问题?我该如何解决?

通过阅读答案,我重写了

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"AddPerm",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::s3.jaws-ug.tk/*"]
    }
  ]
}

但错误策略发生了无效的资源错误。

1 个答案:

答案 0 :(得分:1)

第一项政策存在许多问题:

  • Principal行末尾有一个额外的逗号,导致JSON格式错误
  • Bucket Policy不能有s3:ListAllMyBuckets的操作,因为该策略授予对特定存储桶的访问权限,而该命令可以在多个存储桶中工作
  • Resource需要指向应用该政策的特定广告资源(不是所有广告资源

第二个策略是正确的,但请注意,ARN必须是应用策略的存储区。因此,如果您的存储桶被调用s3.jaws-ug.tk,它将起作用。