Aws S3 Bucket CORS配置无法正常保存

时间:2014-11-11 23:10:04

标签: canvas amazon-web-services amazon-s3 cors

我们有一个存储桶,我们需要CORS配置如下:

<CORSRule>
  <AllowedOrigin>*</AllowedOrigin>
  <AllowedHeader>*</AllowedHeader>
  <AllowedMethod>GET</AllowedMethod>
</CORSRule>

我们需要它,所以我们可以从画布导出图像而不会出现污点画布错误。

我们在不超过3个星期前在一个不同的项目中做到这一点并且工作得很好,管理员会修改CORS配置,即使我无法编辑它也能看到新的配置。

今天我们尝试了,他保存了新配置,我一直看到默认配置,这就是:

  <CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>Authorization</AllowedHeader>
  </CORSRule>

如果他登录,他会看到所需的配置,但我仍然会收到受污染的画布错误。

所以我们有3个问题:

  1. 他如何为我设置存储桶权限以便能够编辑CORS?我们为存储桶的Authenticated Users授予了所有权限,但仍然无法修改CORS配置。
  2. 有人知道这可能是什么问题,AWS S3不再允许使用*通配符吗?
  3. 如果通配符不再有效,我该如何在请求中发送授权标头?
  4. 感谢先进的帮助。

1 个答案:

答案 0 :(得分:1)

设置CORS的权限通过身份和访问管理(IAM)授予用户,而不是桶级权限,例如:

{
  "Id": "SomeID",
  "Statement": [
    {
      "Sid": "SomeSID",
      "Action": [
        "s3:GetBucketCORS",
        "s3:PutBucketCORS"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::BUCKET-NAME",
      "Principal": {
        "AWS": [
          "USERNAME"
        ]
      }
    }
  ]
}

我已成功使用您在上面提供的规则编辑存储桶上的CORS策略。 (我没有测试它是否有效,但我能够将其保存为政策。)