IAM策略的最佳实践 - AWS Key Management Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

IAM策略的最佳实践

保护访问权限 AWS KMS keys 对你所有人的安全至关重要 AWS 资源的费用。KMS密钥用于保护您的许多最敏感的资源 AWS 账户。 花点时间设计控制密钥访问权限的密钥IAM策略策略、授权和VPC终端节点策略。KMS

在控制KMS密钥访问权限的IAM策略声明中,使用最低权限原则。仅向IAM委托人提供他们必须使用或管理的KMS密钥所需的权限。

以下最佳做法适用于控制访问权限的IAM策略 AWS KMS 密钥和别名。有关一般IAM策略最佳实践指南,请参阅《IAM用户指南》IAM中的安全最佳实践

使用密钥策略

尽可能在影响一个KMS密钥的密钥策略中提供权限,而不是在可以应用于多个密钥(包括其他密钥中的KMS密钥)的IAM策略中提供权限 AWS 账户。 这对于诸如 kms: PutKeyPolicy 和 kms: 之类的敏感权限尤其重要,对于决定如何保护数据的加密操作ScheduleKeyDeletion也是如此。

限制 CreateKey 权限

仅向需要密钥 (kms:CreateKey) 的委托人授予创建密钥 (kms:) 的权限。创建KMS密钥的委托人还会设置其密钥策略,这样他们就可以授予自己和他人使用和管理他们创建的KMS密钥的权限。允许此权限时,请考虑通过使用策略条件限制它。例如,您可以使用 kms: KeySpec 条件将权限限制为对称加密KMS密钥。

在IAM策略中指定KMS密钥

作为最佳实践,请在策略声明ARN的Resource元素中指定权限所适用的每个KMS密钥的密钥。这种做法将权限限制为委托人所需的KMS密钥。例如,此Resource元素仅列出委托人需要使用的KMS密钥。

"Resource": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321" ]

当指定KMS密钥不切实际时,请使用限制对可信KMS密钥的访问权限的Resource值 AWS 账户 和区域,例如arn:aws:kms:region:account:key/*。或者限制对可信用户所有区域 (*) 的KMS密钥的访问权限 AWS 账户,比如arn:aws:kms:*:account:key/*

您不能使用密钥 ID别名别名ARN来表示IAM策略Resource字段中的KMS密钥。如果您指定别名ARN,则策略将应用于别名,而不适用于KMS密钥。有关别名IAM策略的信息,请参见 控制对别名的访问

避免在IAM策略中使用 “资源”:“*”

谨慎地使用通配符 (*)。在密钥策略中,Resource元素中的通配符表示KMS密钥策略所关联的密钥。但是在IAM策略中,仅在Resource元素 ("Resource": "*") 中使用通配符即可将权限应用于所有KMS密钥中的所有密钥 AWS 账户 委托人的账户有权使用。这可能包括其他KMS密钥 AWS 账户,以及委托人账户中的KMS密钥。

例如,在另一个KMS密钥中使用密钥 AWS 账户,委托人需要获得外部账户中KMS密钥的密钥策略以及他们自己账户中的IAM策略的许可。假设一个任意账户给了你 AWS 账户 kms: 解密其密钥的权限。KMS如果是,则您的账户中为所有KMS密钥 ("Resource": "*") kms:Decrypt 授予角色权限的IAM策略将满足IAM部分要求。因此,能够担任该角色的委托人现在可以使用不受信任的账户中的密KMS钥解密密文。他们的操作条目会出现在两个账户的 CloudTrail 日志中。

特别是,避免"Resource": "*"在允许以下API操作的策略声明中使用。可以在其他KMS密钥上调用这些操作 AWS 账户.

何时使用 "Resource": "*"

在IAM策略中,在Resource元素中仅对需要通配符的权限使用通配符。只有以下权限才需要 "Resource": "*" 元素。

注意

别名操作(kms: CreateAlias、k ms: UpdateAlias、k ms:、kms: DeleteAlias)的权限必须附加到别名和KMS密钥。可以在IAM策略"Resource": "*"中使用来表示别名和KMS密钥,或者在元素中指定别名和KMS密钥。Resource有关示例,请参阅控制对别名的访问

 

本主题中的示例为KMS密钥设计IAM策略提供了更多信息和指导。了解所有人IAM的最佳实践 AWS 资源,请参阅《IAM用户指南》IAM中的安全最佳实践