Security Hub 控件适用于 AWS KMS - AWS Security Hub

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

Security Hub 控件适用于 AWS KMS

这些 AWS Security Hub 控件评估 AWS Key Management Service (AWS KMS) 服务和资源。

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

[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

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

计划类型:已触发变更

参数:

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

  • excludePermissionBoundaryPolicyTrue(不可自定义)

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

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

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

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

修复

要修改IAM客户托管策略,请参阅IAM用户指南中的编辑客户托管策略。编辑策略时,为该Resource字段提供您想要允许解密操作的特定密钥的 Amazon 资源名称 (ARN)。

[KMS.2] IAM 委托人不应有允许对所有密钥进行解密操作的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::Group

  • AWS::IAM::Role

  • AWS::IAM::User

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

计划类型:已触发变更

参数:

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

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

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

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

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

修复

要修改内IAM联策略,请参阅IAM用户指南中的编辑内联策略。编辑策略时,为该Resource字段提供您想要允许解密操作的特定密钥的 Amazon 资源名称 (ARN)。

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

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

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

严重性:严重

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

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

计划类型:已触发变更

参数:

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

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

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

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

修复

要取消预定KMS密钥删除,请参阅《AWS Key Management Service 开发者指南》中的 “计划和取消密钥删除(控制台)” 下的 “取消密钥删除”。

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

相关要求:CIS AWS 基金会基准 v3.0.0/3.6、基金会基准 v1.4.0/3.8、CIS AWS 基金会基准 v1.2.0/2.8、2、2 ( NIST.800-53.r5 SC-12)、CIS AWS 8 (3)、v3.2.1/3.6.4、v4.0.1/3.7.4、v4.0.1/ NIST.800-53.r5 SC-1 3.7.4 NIST.800-53.r5 SC-2 PCI DSS PCI DSS

类别:保护 > 数据保护 > 加密 data-at-rest

严重性:

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

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

计划类型:定期

参数:

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

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

修复

要启用KMS密钥轮换,请参阅《AWS Key Management Service 开发者指南》中的如何启用和禁用自动密钥轮换

[KMS.5] KMS 密钥不应公开访问

类别:保护 > 安全网络配置 > 不公开访问的资源

严重性:严重

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

AWS Config 规则:kms-key-policy-no-public-access

计划类型:已触发变更

参数:

此控制检查 AWS KMS 密钥是否可公开访问。如果KMS密钥可公开访问,则控制失败。

实施最低权限访问对于降低安全风险以及错误或恶意意图的影响至关重要。如果KMS密钥策略允许从外部账户进行访问,则意味着第三方将能够使用您的密钥加密和解密数据, AWS 账户 并且可能导致内部威胁或攻击者使用该密钥泄露所有使用该密钥的服务的数据。

修复

要更新KMS密钥策略,请参阅《AWS Key Management Service 开发者指南》 AWS KMS中的密钥策略