我有一个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禁止访问。 我在这里想念什么?