向用户授予基于组的权限,以使用aws java sdk

问题描述

我有一个将数据保存到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/"
                    ]
                }
            }
        }

更多信息:https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_s3_home-directory-console.html

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...