本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 IAM policy 语句中指定 KMS 密钥
您可以使用 IAM policy 来允许委托人使用或管理 KMS 密钥。KMS 密钥在策略语句的 Resource
元素中指定。
-
要在 IAM policy 语句中指定 KMS 密钥,必须使用其密钥 ARN。您不能使用密钥 ID、别名名称或别名 ARN 来标识 IAM policy 语句中的 KMS 密钥。
例如:“
Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
”要根据别名控制对 KMS 密钥的访问权限,请使用 k ms: RequestAlias 或 k ms: ResourceAliases 条件密钥。有关更多信息,请参阅 ABAC for Amazon KMS。
仅在控制别名操作(例如、或)访问权限的策略声明中使用别名 ARN 作为CreateAlias资源。UpdateAliasDeleteAlias有关更多信息,请参阅 控制对别名的访问。
-
要在账户和区域中指定多个 KMS 密钥,请在密钥 ARN 的区域或资源 ID 位置中使用通配符 (*)。
例如,要指定账户的美国西部(俄勒冈)区域中的所有 KMS 密钥,请使用“
Resource": "arn:aws:kms:us-west-2:111122223333:key/*
”。要指定账户的所有区域中的所有 KMS 密钥,请使用“Resource": "arn:aws:kms:*:111122223333:key/*
”。 -
要表示所有 KMS 密钥,请单独使用通配符 (
"*"
)。对于不使用任何特定 KMS 密钥的操作,即CreateKeyGenerateRandomListAliases、和,请使用此格式ListKeys。
在编写策略语句时,最佳实践是只指定委托人需要使用的 KMS 密钥,而不是授予他们对所有 KMS 密钥的访问权限。
例如,以下 IAM 策略声明仅允许委托人对策略声明Resource
元素中列出的 KMS 密钥调用DescribeKeyGenerateDataKey、、Decrypt 操作。通过密钥 ARN 指定 KMS 密钥是一种最佳实践,可确保权限仅限于指定的 KMS 密钥。
要将权限应用于特定可信对象中的所有 KMS 密钥 Amazon Web Services 账户,可以在区域和密钥 ID 位置使用通配符 (*)。例如,以下策略语句允许委托人对两个可信示例账户的中的 KMS 密钥调用指定操作。
您还可以单独在 Resource
元素中使用通配符 ("*"
)。由于它允许访问帐户有权使用的所有 KMS 密钥,因此建议主要用于没有特定 KMS 密钥的操作和 Deny
语句。您还可以在仅允许不太敏感的只读操作的策略语句中使用它。要确定某项 Amazon KMS 操作是否涉及特定的 KMS 密钥,请在中表的 “资源” 列中查找 KMS 密钥值Amazon KMS 权限。
例如,以下策略语句使用 Deny
效果来禁止委托人对任何 KMS 密钥使用指定的操作。它在 Resource
元素中使用通配符来表示所有 KMS 密钥。
以下策略语句单独使用通配符来表示所有 KMS 密钥。但它只允许不太敏感的只读操作和不适用于任何特定 KMS 密钥的操作。