问题描述
我有一个将数据保存到Amazon S3的应用程序。它将具有树状文件夹结构(在键中使用“ /”分隔符)。我也想将特定文件夹的访问权限授予其他用户(查看,添加,编辑等),就像Google驱动器(共享文件夹黑白用户)一样。多个用户可以根据权限查看或更新。
如何使用aws java sdk在S3中完成此操作(不使用管理控制台中的aws s3策略) 对于Google云端硬盘,该如何完成。
解决方法
您可以使用IAM策略中的s3:prefix
条件来授予对特定文件夹的访问权限。
例如,您要授予对shared
文件夹的完全访问权限,则可以具有如下所示的权限:
{
"Effect": "Allow","Action": "s3:*","Resource": [
"arn:aws:s3:::bucket-name/shared","arn:aws:s3:::bucket-name/shared/*"
]
},
通过有选择地允许读/写权限,可以为某些用户授予读/写权限。
您还向根目录和共享文件夹授予列表权限:
{
"Effect": "Allow","Action": "s3:ListBucket","Resource": "arn:aws:s3:::bucket-name","Condition": {
"StringLike": {
"s3:prefix": [
"","shared/"
]
}
}
}