AWS 策略资源中的通配符“*”

Wildcard '*' in Resource for AWS policies

我有一个 AWS KMS 密钥策略,包含如下语句:

{
          "Sid": "Enable IAM User Permissions",
          "Effect": "Allow",
          "Principal": {"AWS": "arn:aws:iam::111122223333:root"},
          "Action": "kms:*",
          "Resource": "*"
}

我了解到指定帐号的给定根 IAM 用户可以执行所有 kms: 操作。 * 对资源意味着什么?应该是钥匙的钥匙吗? 一般而言,"Resource": "*" 在任何资源策略中是什么意思?

通过在任何策略(无论是资源策略,如存储桶策略或密钥策略,还是 IAM 策略)中使用它,它将应用于所有可以在策略范围内的资源(IAM 适用于所有内容, 密钥策略只能应用于该策略附加到的密钥)。

* 可以访问这些资源的全部范围,在关键策略案例中,就是这个键,您还可以添加指定 Arn 以获得与键完全相同的效果。

在 S3 存储桶策略等其他资源策略中,您实际上可以基于 S3 前缀来限制用户可以访问的范围,例如 arn:aws:s3:::my-bucket/public/*