Amazon Key Management Service 控件 - Amazon Security Hub
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon Key Management Service 控件

这些控制措施与 Amazon KMS 资源有关。

这些控件可能并非全部可用 Amazon Web Services 区域。有关更多信息,请参阅 按地区划分的控件可用性

[KMS.1] IAM 客户托管策略不应允许对所有 KMS 密钥执行解密操作

相关要求:NIST.800-53.r5 AC-2、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-5、NIST.800-53.r5 AC-6、NIST.800-53.r5 AC-6(3)。

类别:保护 > 安全访问管理

严重性:

资源类型:AWS::IAM::Policy

Amazon Config 规则:iam-customer-policy-blocked-kms-actions

计划类型:已触发变更

参数:

  • blockedActionsPatterns: kms:ReEncryptFrom, kms:Decrypt(不可自定义)

  • excludePermissionBoundaryPolicyTrue(不可自定义)

检查 IAM 客户托管策略的默认版本是否允许委托人对所有资源使用 Amazon KMS 解密操作。如果策略足够开放,可以允许对所有 KMS 密钥执行 kms:Decryptkms:ReEncryptFrom 操作,则控制失败。

该控件仅检查 Resource 元素中的 KMS 密钥,而不考虑策略的 Condition 元素中的任何条件。此外,该控件还会评估附加和独立的客户管理型策略。它不检查内联策略或 Amazon 托管策略。

使用 Amazon KMS,您可以控制谁可以使用您的 KMS 密钥并访问您的加密数据。IAM policy 定义了一个身份(用户、组或角色)可以对哪些资源执行哪些操作。遵循安全最佳实践, Amazon 建议您允许最低权限。换句话说,您应仅授予身份 kms:Decryptkms:ReEncryptFrom 权限,并仅授予执行任务所需的密钥。否则,用户可能会使用不适合数据的密钥。

不要授予所有密钥的权限,而是确定用户访问加密数据所需的最小密钥集。然后设计允许用户仅使用这些密钥的策略。例如,不要允许对所有 KMS 密钥的 kms:Decrypt 权限。取而代之的是,仅允许 kms:Decrypt 使用特定区域中您账户的密钥。通过采用最低权限原则,您可以降低数据意外泄露的风险。

修复

要修改 IAM 客户托管策略,请参阅 IAM 用户指南中的编辑客户管理型策略。编辑策略时,在 Resource 字段中提供您要允许执行解密操作的一个或多个密钥的 Amazon 资源名称(ARN)。

[KMS.2] IAM 主体不应有允许对所有 KMS 密钥进行解密操作的 IAM 内联策略

相关要求:NIST.800-53.r5 AC-2、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-5、NIST.800-53.r5 AC-6、NIST.800-53.r5 AC-6(3)。

类别:保护 > 安全访问管理

严重性:

资源类型:

  • AWS::IAM::Group

  • AWS::IAM::Role

  • AWS::IAM::User

Amazon Config 规则:iam-inline-policy-blocked-kms-actions

计划类型:已触发变更

参数:

  • blockedActionsPatterns: kms:ReEncryptFrom, kms:Decrypt(不可自定义)

此控件检查嵌入在您的 IAM 身份(角色、用户或群组)中的内联策略是否允许对所有 KMS Amazon KMS 密钥执行解密和重新加密操作。如果策略足够开放,可以允许对所有 KMS 密钥执行 kms:Decryptkms:ReEncryptFrom 操作,则控制失败。

该控件仅检查 Resource 元素中的 KMS 密钥,而不考虑策略的 Condition 元素中的任何条件。

使用 Amazon KMS,您可以控制谁可以使用您的 KMS 密钥并访问您的加密数据。IAM policy 定义了一个身份(用户、组或角色)可以对哪些资源执行哪些操作。遵循安全最佳实践, Amazon 建议您允许最低权限。换句话说,您应该仅向身份授予他们所需的权限,并且仅授予执行任务所需的密钥。否则,用户可能会使用不适合数据的密钥。

不要授予所有密钥的权限,而是确定用户访问加密数据所需的最小密钥集。然后设计允许用户仅使用这些密钥的策略。例如,不要允许对所有 KMS 密钥的 kms:Decrypt 权限。相反,请仅允许对账户特定区域中的特定密钥授予权限。通过采用最低权限原则,您可以降低数据意外泄露的风险。

修复

要修改 IAM 内联策略,请参阅 IAM 用户指南中的编辑内联策略。编辑策略时,在 Resource 字段中提供您要允许执行解密操作的一个或多个密钥的 Amazon 资源名称(ARN)。

Amazon KMS keys 不应无意中删除 [KMS.3]

相关要求:NIST.800-53.r5 SC-12、NIST.800-53.r5 SC-12(2)。

类别:保护 > 数据保护 > 数据删除保护

严重性:严重

资源类型:AWS::KMS::Key

Amazon Config 规则:kms-cmk-not-scheduled-for-deletion-2(自定义 Security Hub 规则)

计划类型:已触发变更

参数:

此控件检查是否计划删除 KMS 密钥。如果计划删除 KMS 密钥,则控制失败。

KMS 密钥一经删除就无法恢复。如果删除 KMS 密钥,则使用 KMS 密钥加密的数据也将永久无法恢复。如果在计划删除的 KMS 密钥下加密了有意义的数据,请考虑使用新的 KMS 密钥对数据进行解密或重新加密数据,除非您故意执行加密擦除

当计划删除 KMS 密钥时,如果计划错误,则会强制执行强制等待期,以便有时间撤消删除。默认等待期为 30 天,但当计划删除 KMS 密钥时,等待期可缩短至短至 7 天。在等待期限内,可以取消预定删除,KMS 密钥不会被删除。

有关删除 KMS 密钥的更多信息,请参阅 Amazon Key Management Service 开发人员指南中的删除 KMS 密钥

修复

要取消预定的 KMS 密钥删除,请参阅 Amazon Key Management Service 开发人员指南中的计划和取消密钥删除(控制台)下的取消密钥删除

[KMS.4] 应启用 Amazon KMS 密钥轮换

相关要求:PCI DSS v3.2.1/3.6.4、CIS 基金会基准 v1.2.0/2.8、CIS Amazon 基金会基准 v1.4.0/3.8、nist.800-53.r5 SC-12、nist.800-53.r5 SC-12 Amazon (2)、nist.800-53.r5 SC-28 (3)

严重性:

资源类型:AWS::KMS::Key

Amazon Config 规则:cmk-backing-key-rotation-enabled

计划类型:定期

参数:

Amazon KMS 允许客户轮换备用密钥,后备密钥是存储在 KMS 密钥中的 Amazon KMS 密钥材料,与 KMS 密钥的密钥 ID 相关联。备用密钥被用于执行加密操作,例如加密和解密。目前,自动密钥轮换会保留所有之前的备用密钥,以便解密已加密数据的操作可以不被察觉地进行。

CIS 建议您启用 KMS 密钥轮换。轮换加密密钥有助于减少遭盗用密钥的潜在影响,因为使用可能已泄露的先前密钥无法访问使用新密钥加密的数据。

修复

要启用 KMS 密钥轮换,请参阅Amazon Key Management Service 开发人员指南中的如何启用和禁用自动密钥轮换