在创建IAM策略时,如果我选择ListAllMyBuckets,资源将变为“ *”,而不是“ arn:aws:s3 ::: *”。我不明白。 ListAllMyBuckets如何需要不在s3中的资源? “存储桶”不是S3存储桶吗?
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*"
}
]
}
答案 0 :(得分:1)
IAM策略中的操作与AWS API有直接关系。例如,AWS S3 API有一个ListAllMyBuckets调用,该调用使您感到惊讶:列出您帐户的所有存储桶。授予“列出所有存储桶”权限是没有意义的,同时不允许列出其中的一部分。
用于EC2的DescribeInstances API也会发生同样的情况。如果需要在策略中创建限制,则必须使用“条件”。 (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html)。但并非在所有情况下都可用。
答案 1 :(得分:1)
由于s3:ListAllMyBuckets仅适用于S3,没有其他AWS资源,因此“ ”是“ arn:aws:s3 ::: ”的简写。在这种情况下,两个语句完全相同。