【发布时间】:2011-11-29 12:10:52
【问题描述】:
我计划使用 Amazon S3 让用户从 iPhone 上传照片,然后让他们公开查看。
我无法理解如何在存储桶策略中设置这些安全约束:
- 每个人都可以阅读每个文件。
- 每个人都可以上传新文件,最大为 256K。
- 任何人都不能删除任何文件。
- 任何人都不能修改任何文件。
【问题讨论】:
标签: amazon-s3
我计划使用 Amazon S3 让用户从 iPhone 上传照片,然后让他们公开查看。
我无法理解如何在存储桶策略中设置这些安全约束:
【问题讨论】:
标签: amazon-s3
好的,我最终解决了这个问题。唯一的问题是您不能在添加文件和更新文件时设置不同的权限。它们都被 s3:PutObject 覆盖。此外,似乎无法限制文件大小。
{
"Version": "2008-10-17",
"Id": "policy",
"Statement": [
{
"Sid": "allow-public-read",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket/*"
},
{
"Sid": "allow-public-put",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::bucket/*"
}
]
}
【讨论】:
也许像下面这样的东西会起作用,但我不确定你是否可以限制上传大小。
{
"Statement": [
{
"Effect": "Allow",
"Principal":"*",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:GetObjectAcl",
"s3:PutObjectAcl"
],
"Resource": "arn:aws:s3:::mybucket/*",
"Condition": {}
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketAcl"
],
"Resource": "arn:aws:s3:::mybucket",
"Condition": {}
}
]
}
【讨论】: