【发布时间】:2022-10-14 05:05:36
【问题描述】:
我是 AWS 的新手,我有一个场景,我需要根据标签授予对 s3 对象的访问权限。我使用我的根账户创建了 IAM 用户并将以下策略附加到用户。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*",
"Condition": {
"StringEquals": {
"s3:ExistingObjectTag/role": "developer"
}
}
}
]
}
现在我有许多文件的存储桶,并用标签role 和值为developer 标记了一个文件,这样我的用户只能看到我标记的一个文件。
但是当我使用 IAM 用户登录时,我没有看到任何存储桶。理想情况下,我希望我会看到带有相关文件的存储桶(带有正确标签的文件)
我尝试了其他几个选项,但没有一个选项有效。我尝试的另一个选择是
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListObject"
],
"Resource": "arn:aws:s3:::general-eda/*",
"Condition": {
"StringEquals": {
"s3:ExistingObjectTag/role": "developer"
}
}
}
]
}
我做错了什么还是用户应该拥有任何其他权限,以便标签按预期工作。任何帮助表示赞赏。
【问题讨论】:
-
如果您希望他们看到存储桶,您需要授予 ListAllMyBuckets 权限(不支持任何条件)。他们可以通过直接导航到浏览器中的正确 url 来列出晦涩难懂的内容,而不会看到存储桶。
-
我又添加了一条语句``` { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }``` 现在我看到了所有的桶,但是当我打开桶时说“列出对象的权限不足”
标签: amazon-web-services amazon-s3