亚马逊S3文件夹级别权限

11

我正在使用Amazon S3将我的客户文档归档到单个存储桶和一系列文件夹中,以区分每个客户。

MyBucket/0000001/..
MyBucket/0000002/..
MyBucket/0000003/..

我的客户现在希望找到一种方法,可以独立地将他们的文件备份到本地计算机。我想创建一组权限,在给定文件夹级别上,只能在特定文件夹内查看/下载这些文件。

我希望在我的应用程序范围之外实现这一点,也就是说,我想在S3浏览器中创建一组权限,并告诉我的客户使用某些第三方应用程序链接到他们的区域。有人知道是否可能吗?我不赞成编写一个模块来自动化执行此操作,因为目前需求不足。

2个回答

17

您可以与桶策略结合使用IAM策略来管理这样的访问。

每个客户端都需要拥有自己的IAM配置文件,您将设置策略以仅限制对象访问到这些帐户。

这是AWS文档:

http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingIAMPolicies.html

我特别想指出该文档中的示例1,它完全满足您的要求。


谢谢Mike,为了获得IAM配置文件,我的客户需要注册AWS账户吗? - QFDev
@QF_Developer 不,IAM配置文件将从您的帐户生成。 - Mike Brant
谢谢Mike,有了新创建的IAM配置文件,我的客户如何将其插入GUI以查看和下载他们的文档?这是我现在唯一不确定的部分。 - QFDev
1
@QF_Developer,有许多S3 GUI客户端可供选择(请参见此链接http://www.labnol.org/internet/amazon-s3-clients-roundup/8286/)。也许S3浏览器最受欢迎。他们只需要在选择使用的任何GUI工具中输入凭据即可。 - Mike Brant
非常感谢,我会进一步调查! - QFDev

2
请参考以下策略,限制用户仅上传或列出特定文件夹中的对象。我已创建了一个策略,允许我仅列出folder1和folder2的对象,并且允许将对象放入folder1并拒绝上传到buckets的其他文件夹。
该策略执行以下操作: 1.列出bucket的所有文件夹 2.列出允许文件夹中的对象和文件夹 3.仅将文件上传到允许的文件夹
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowUserToSeeBucketListInTheConsole",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*"
            ]
        },
        {
            "Sid": "AllowListingOfFolder1And2",
            "Action": [
                "s3:*"
            ],
            "Effect": "Deny",
            "Resource": [
                "arn:aws:s3:::bucketname"
            ],
            "Condition": {
                "StringNotLike": {
                    "s3:prefix": [
                        "folder1/*",
                        "folder2/*"
                    ]
                },
                "StringLike": {
                    "s3:prefix": "*"
                }
            }
        },
        {
            "Sid": "Allowputobjecttofolder1only",
            "Effect": "Deny",
            "Action": "s3:PutObject",
            "NotResource": "arn:aws:s3:::bucketname/folder1/*"
        }
    ]
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接