【发布时间】:2022-01-10 18:05:23
【问题描述】:
我创建了一个用户并分配了以下内联策略。同时,我在 s3 中创建了一个存储桶。
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucketname"
当我将此策略应用于特定用户并尝试访问 S3 时,资源中列出的特定存储桶未显示? 我担心的是我已经对所有 s3 进行了操作,然后我的存储桶没有出现在 S3 中吗?
通过可视化编辑器,我尝试为相同的事物创建策略,策略如下所示
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:ListStorageLensConfigurations",
"s3:ListAccessPointsForObjectLambda",
"s3:GetAccessPoint",
"s3:PutAccountPublicAccessBlock",
"s3:GetAccountPublicAccessBlock",
"s3:ListAllMyBuckets",
"s3:ListAccessPoints",
"s3:ListJobs",
"s3:PutStorageLensConfiguration",
"s3:ListMultiRegionAccessPoints",
"s3:CreateJob"
],
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucketname"
}
]
}
为什么要为列表创建单独的操作并允许每个资源使用?
【问题讨论】:
-
要列出存储桶,您需要资源
*上的 s3:ListAllBuckets。您还错误地将操作限制在存储桶中,因此您根本没有提供任何对象权限(为此您需要arn:aws:s3:::bucketname/*)。见example policy。
标签: amazon-web-services amazon-s3 amazon-iam