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