授予访问权限以读取Amazon S3存储桶中的子目录

杰森

我以前从未使用过AWS S3。我们使用它来自动备份客户端的通话记录。我们其中一位出于审计目的的客户需要访问他们的录音。

我正在使用客户端Cyber​​Duck作为访问文件的方式。

我只想让他们访问他们的文件。

我们的文件结构如下:

recordings/12345/COMPANYNAMEHERE/

我刚刚了解到您是根据脚本和策略构建并执行操作的。因此,我进行了一些研究,并试图建立一个研究,但是我的访问被拒绝。

只是好奇我是否能正确解决这个问题。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::recordings/12345/COMPANYNAMEHERE",
                "arn:aws:s3:::recordings/12345/COMPANYNAMEHERE/*"
            ]
        }
    ]
}
约翰·罗滕斯坦

您只授予他们对的许可ListAllMyBuckets,这意味着他们只能列出您的存储桶的名称,而不能做其他任何事情。

如果您已经为他们创建了IAM用户,那么给他们提供此策略将允许他们列出和检索他们的文件,但只能从给定目录(或更准确地说,使用给定前缀):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::my-bucket"
            ],
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "recordings/123/*"
                    ]
                }
            }
        },
        {
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::my-bucket/recordings/123/*"
            ]
        }
    ]
}

如果您对客户经常执行此操作,则可以使用IAM策略变量来创建替换其用户名的规则:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::my-bucket"
            ],
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "recordings/${aws:username}/*"
                    ]
                }
            }
        },
        {
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::my-bucket/recordings/${aws:username}/*"
            ]
        }
    ]
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从PySpark中的s3子目录读取数据

您希望何时授予对 s3 存储桶的公共读取访问权限

S3:如何授予对多个存储桶的访问权限?

如何仅在Amazon S3存储桶中的特定目录上允许PutObject权限

仅授予特定用户对S3存储桶的访问权限,无公共访问权限

从子目录递归读取文件,并使用s3或本地文件系统中的spark

AWS:无法通过s3存储桶策略授予s3访问权限

跨帐户角色授予S3存储桶访问权限-权限被拒绝

对在Amazon S3中通过PutObjectRequest上传的对象授予读取权限

授予对用户分配标识的 Azure 存储帐户的读取访问权限

如何使用经过身份验证的经过身份验证的用户授予对非公共Amazon S3存储桶文件夹的访问权限

授予对 S3 存储桶中所有内容的访问权限

我应该授予什么 aws 权限来访问其他 s3 存储桶

如何授予AWS用户访问s3存储桶托管的网站的权限?

尝试授予对 S3 存储桶的云端访问权限,但得到“策略无效操作”

如何从存储桶根目录重定向到AWS S3中的子目录?

如何使用简单的s3存储桶策略授予对加密存储桶的跨帐户访问权限?

为什么即使我在存储桶策略中授予用户权限,用户也无法访问我们的 S3 存储桶?

删除Amazon S3 Java中的文件,目录和存储桶

您如何允许授予对上载到AWS S3的对象的公共读取访问权限?

如何授予Lambda将文件上传到terraform中的s3存储桶的权限?

如何授予对Amazon S3中文件夹的所有子文件夹的访问权限?

如何在Amazon S3存储桶上设置公共只读访问权限?

向没有AWS账户的用户授予对AWS S3存储桶/文件夹的访问权限

如何使用IAM策略AWS仅向S3存储桶的根帐户用户授予访问权限?

如何从Amazon S3存储桶撤消公共权限

撤销 Amazon S3 存储桶或对象权限

在Amazon S3中公开存储桶

在Amazon S3存储桶中安装MeteorJS