禁止通过Cloudfront的CanonicalUserPrincipal存储AWS S3 PutObject 403

时间:2020-10-20 02:43:06

标签: amazon-s3 amazon-cloudfront

我有一个Cloudfront发行版,其中包含2个无法公开访问的存储桶。 第一个存储区是应用存储区,其中包含应用程序源代码。 第二个存储桶(罪魁祸首)是用户文件存储桶,应用可以在其中上传文件。

因此,当我的存储桶策略设置如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:Put*",
            "Resource": "arn:aws:s3:::user-files/*"
        }
    ]
}

上传正常。 但是有了这个校长,我的工作桶是公开的。由于我不允许执行Get操作,因此我猜没有人可以准备我的文件,但是他们可以将内容放入存储桶中。

因此,我尝试通过添加一个OriginAccessIdentity作为主体来限制它。

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity [IDENTITY CODE]"
  },
  "Action": "s3:Put*",
  "Resource": [
    "arn:aws:s3:::user-files",
    "arn:aws:s3:::user-files/*"
  ]
}

但是,当我部署此文件时,尝试上传时会收到403禁止访问。 我在这里想念什么?

0 个答案:

没有答案