我在使用GetSessionToken/GetFederationToken的Amazon S3中使用临时会话,我计划拥有超过10K个用户,每个人都可以上传到S3,因此初始时我想为每个用户使用一个存储桶并设置写入(上传)每个用户的每个桶的权限,但由于每个亚马逊账户的桶数有限制,我已经放弃了这个想法。Amazon S3权限
如何设置允许公开阅读的权限,以及仅当用户想要上传的对象的键的前缀时才上传?
例如,如果用户名X上传文件,则密钥必须与X_filename类似。
或者任何其他让我有安全感的方式,这是一个移动应用程序,我不想在上传文件时通过我们自己的服务器。
编辑:
我试着操作GetFederationToken与以下政策
"{
"Statement":[{
"Effect":"Allow",
"Action":["s3:PutObject","s3:GetObject","s3:GetObjectVersion",
"s3:DeleteObject",\"s3:DeleteObjectVersion"],
"Resource":"arn:aws:s3:::user.uploads/john/*"
}
]
}"
我对S3桶user.uploads和文件夹约翰
但是任何上传与会议证书来桶user.uploads与关键的约翰/文件名失败,访问被拒绝“
这将工作,但你需要检查一切。例如,政策可能是错误的。 - 为内部测试做一个宽敞的测试,然后缩小它。此外,所有来自iOS的亚马逊S3调用都需要使用您获得的联合令牌。 – 2012-01-17 21:46:12