gpt4 book ai didi

amazon-s3 - 为 Amazon S3 创建 IAM 策略

转载 作者:行者123 更新时间:2023-12-02 23:03:53 44 4
gpt4 key购买 nike

我正在尝试实现一项 IAM 策略,其中用户只能访问他有权访问的文件夹。我从亚马逊文档中获取了此代码

允许用户仅列出公司存储桶中其主目录中的对象

此示例基于为 Bob 提供主目录的上一个示例。为了让 Bob 能够列出其主目录中的对象,他需要访问 ListBucket。但是,我们希望结果仅包含其主目录中的对象,而不是存储桶中的所有内容。为了以这种方式限制他的访问,我们使用名为 s3:prefix 的策略条件键,并将值设置为 home/bob/。这意味着只有前缀为 home/bob/ 的对象才会在 ListBucket 响应中返回。

{
"Statement":[{
"Effect":"Allow",
"Action":"s3:ListBucket",
"Resource":"arn:aws:s3:::my_corporate_bucket",
"Condition":{
"StringLike":{
"s3:prefix":"home/bob/*"
}
}]
}

这对我不起作用。当我运行代码时,我可以看到所有文件夹和子文件夹。我修改后的代码如下所示:

{
"Statement":[{
"Effect":"Allow",
"Action":"s3:ListBucket",
"Resource":"arn:aws:s3:::Test-test",
"Condition":{
"StringLike":{
"s3:prefix":"Test/*"
}
}]
}

当我使用附加到上述策略的用户凭据在 C# 中运行代码时,我得到所有文件夹,而不仅仅是“测试”下的文件夹...非常感谢一些帮助!

最佳答案

我终于成功了。尽管我认为 AWS 管理控制台存在一个错误,或者至少看起来是一个错误。问题是我的策略一直都是正确的,但当我通过 AWS 管理控制台访问它时,它的行为有所不同,然后通过 CloudBERry 等软件访问它。我必须修改的一件事是对象和存储桶的 ACL 设置。如果 AWS 控制台正常工作的话,这也可以提前完成。无论如何,这是我的政策:

{
"Statement": [

{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "arn:aws:s3:::*",
"Condition": {}
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:ListBucketVersions"
],
"Resource": "arn:aws:s3:::pa-test",
"Condition": {
"StringLike": {
"s3:prefix": "test/*"
}
}
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::pa-test/test/*",
"Condition": {}
}
]
}

1) 问题是,当我通过 AWS 控制台访问此 IAM 用户的管理控制台时,当我单击我的存储桶时,访问被拒绝,尽管当我通过 Cloudberry 登录时,我可以看到我的文件夹。2)我必须修改我的存储桶和对象(文件夹)的 ACL 设置对于我的桶:所有者:完全控制经过身份验证的用户:只读

对于我的文件夹:所有者:完全控制

现在的问题是您无法在 AWS 控制台中设置文件夹(对象)的 ACl 设置。您可以为文件(对象)设置它们。例如,如果您右键单击存储桶内的文件夹(对象),然后单击属性,它不会显示权限选项卡。但是,如果您右键单击存储桶或文件(例如 test.html)并单击属性,它将显示一个权限选项卡。我不确定其他人是否注意到这个问题。无论如何,这是我的脚本,现在正在运行。

关于amazon-s3 - 为 Amazon S3 创建 IAM 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10528195/

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