为什么某些AWS IAM操作需要所有资源

时间:2018-08-14 17:57:37

标签: amazon-web-services amazon-iam

在创建IAM策略时,如果我选择ListAllMyBuckets,资源将变为“ *”,而不是“ arn:aws:s3 ::: *”。我不明白。 ListAllMyBuckets如何需要不在s3中的资源? “存储桶”不是S3存储桶吗?

{
   "Version": "2012-10-17",
"Statement": [
    {
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": "s3:ListAllMyBuckets",
        "Resource": "*"
    }
  ]
}

2 个答案:

答案 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 ::: ”的简写。在这种情况下,两个语句完全相同。