首页 > 解决方案 > 允许每个用户只列出 s3 中的一些文件夹

问题描述

我正在为我的客户上传一个新的 S3 存储桶。我只想让每个客户只看到他们自己的文件夹,这样每个客户就无法知道我正在和谁一起工作。

我可以将其设置为每个客户端都无法列出或查看任何其他客户端文件夹中的对象但目前每个客户端都可以列出存储桶中的所有文件夹。

理想情况下,我希望存储桶的顶层包含多个文件夹,例如client-1-folderclient-2-folder等等。然后当有人以身份登录时client-1,他们只能看到client-1-folder甚至看不到该client-2文件夹​​存在(所以他们不知道我在与客户合作 2)。

这可以通过 IAM 权限实现吗?

我当前的 IAM 政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "id1",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Sid": "id2",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::client-bucket",
            "Condition": {
                "StringEquals": {
                    "s3:prefix": [
                        "",
                        "client-1-folder/"
                    ],
                    "s3:delimiter": [
                        "/"
                    ]
                }
            }
        }
    ]
}

标签: amazon-web-servicesamazon-s3amazon-iam

解决方案


为什么不为不同的客户创建不同的 s3 存储桶?为每个客户创建一个专用存储桶。然后您为每个客户创建的用户,创建允许客户只看到他/她的 s3 存储桶的策略。


推荐阅读