gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 08:17:44 26 4
gpt4 key购买 nike

我以前从未使用过 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 Policy Variables创建替换其用户名的规则:

{
"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}/*"
]
}
]
}

关于amazon-web-services - 授予访问权限以读取 Amazon S3 存储桶中的子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43719257/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com