适用于 Amazon Identity and Access Management 的 Security Hub 控件 - Amazon Security Hub
[IAM.1] IAM policy 不应允许完整的“*”管理权限[IAM.2] IAM 用户不应附加 IAM policy[IAM.3] IAM 用户访问密钥应每 90 天或更短时间轮换一次[IAM.4] 不应存在 IAM 根用户访问密钥[IAM.5] 应为拥有控制台密码的所有 IAM 用户启用 MFA[IAM.6] 应该为根用户启用硬件 MFA[IAM.7] IAM 用户的密码策略应具有可靠的配置[IAM.8] 应移除未使用的 IAM 用户凭证[IAM.9] 应为根用户启用 MFA[IAM.10] IAM 用户的密码策略应具有可靠的配置[IAM.11] 确保 IAM 密码策略要求包含至少一个大写字母[IAM.12] 确保 IAM 密码策略要求包含至少一个小写字母[IAM.13] 确保 IAM 密码策略要求包含至少一个符号[IAM.14] 确保 IAM 密码策略要求包含至少一个数字[IAM.15] 确保 IAM 密码策略要求最短密码长度不低于 14[IAM.16] 确保 IAM 密码策略阻止重复使用密码[IAM.17] 确保 IAM 密码策略使密码在 90 天或更短时间内失效[IAM.18] 确保创建支持角色来管理涉及 Amazon Web Services 支持 的事务[IAM.19] 应为所有 IAM 用户启用 MFA[IAM.20] 避免使用根用户[IAM.21] 您创建的 IAM 客户托管策略不应允许对服务执行通配符操作[IAM.22] 应移除在 45 天内未使用的 IAM 用户凭证[IAM.23] 应标记 IAM Access Analyzer 分析器[IAM.24] 应标记 IAM 角色[IAM.25] 应标记 IAM 用户[IAM.26] 应删除 IAM 中管理的过期 SSL/TLS 证书[IAM.27] IAM 身份不应附加 AWSCloudShellFullAccess 策略[IAM.28] 应启用 IAM Access Analyzer 外部访问分析器
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

适用于 Amazon Identity and Access Management 的 Security Hub 控件

这些 Amazon Security Hub CSPM 控件可评估 Amazon Identity and Access Management(IAM)服务和资源。这些控件可能并非在所有 Amazon Web Services 区域都可用。有关更多信息,请参阅 按地区划分的控件可用性

[IAM.1] IAM policy 不应允许完整的“*”管理权限

相关要求: CIS Amazon 基金会基准 v1.2.0/1.22、CIS Amazon 基金会基准 v1.4.0/1.16、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(10)、NIST.800-53.r5 AC-6(2)、NIST.800-53.r5 AC-6(3)、NIST.800-171.r2 3.1.4、PCI DSS v3.2.1/7.2.1

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

严重性:

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

Amazon Config 规则: iam-policy-no-statements-with-admin-access

计划类型:已触发变更

参数:

  • excludePermissionBoundaryPolicy: true(不可自定义)

此控件检查 IAM policy 的默认版本(也称为客户管理型策略)是否具有管理员访问权限,方法是包含一个在 "Resource": "*" 上对 "Effect": "Allow""Action": "*" 的声明。如果您有带有此类声明的 IAM policy,则控制失败。

该控制仅检查您创建的客户托管策略。它不检查内联和 Amazon 托管策略。

IAM policy 定义一组授予用户、组或角色的权限。按照标准安全建议,Amazon 建议您授予最低特权,这意味着仅授予执行任务所需的权限。当您提供完全管理权限而不是用户所需的最低权限集时,您会将资源暴给可能有害的操作。

首先确定用户需要执行的任务,然后拟定仅限用户执行这些任务的策略,而不是允许完全管理权限。最开始只授予最低权限,然后根据需要授予其他权限,则样会更加安全。请不要一开始就授予过于宽松的权限而后再尝试收紧权限。

您应该移除包含在 "Resource": "*" 上对 "Effect": "Allow" "Action": "*" 的声明的 IAM policy。

注意

Amazon Config 应在您使用 Security Hub 的所有区域中启用。但是,可以在单个区域启用全局资源记录。如果您仅在一个区域中记录全局资源,则可以在所有区域(记录全局资源的区域除外)中禁用此控件。

修复

要修改 IAM policy 使其不允许完全的 "*" 管理权限,请参阅 IAM 用户指南中的编辑 IAM policy

[IAM.2] IAM 用户不应附加 IAM policy

相关要求: CIS Amazon 基金会基准 v5.0.0/1.14、CIS Amazon 基金会基准 v3.0.0/1.15、CIS Amazon 基金会基准 v1.2.0/1.16、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-6、NIST.800-53.r5 AC-6(3)、NIST.800-171.r2 3.1.1、NIST.800-171.r2 3.1.2、NIST.800-171.r2 3.1.7、NIST.800-171.r2 3.3.9、NIST.800-171.r2 3.13.3、PCI DSS v3.2.1/7.2.1

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

严重性:

资源类型:AWS::IAM::User

Amazon Config 规则: iam-user-no-policies-check

计划类型:已触发变更

参数:

此控件检查 IAM 用户是否附加了策略。如果 IAM 用户附加了策略,则控制失败。相反,IAM 用户必须继承 IAM 组的权限或承担角色。

默认情况下,IAM 用户、组和角色无法访问 Amazon 资源。IAM policy 向用户、组或角色授予权限。我们建议您将 IAM policy 直接应用于组和角色,而不是用户。随着用户数量的增长,在组或角色级别分配权限可降低访问管理的复杂性。降低访问管理的复杂性有助于减少委托人意外收到或保留过多权限的机会。

注意

Amazon Config 应在您使用 Security Hub 的所有区域中启用。但是,可以在单个区域启用全局资源记录。如果您仅在单个区域中记录全局资源,则可以在除记录全局资源的区域以外的所有区域中禁用此控件。

修复

要解决此问题,请创建一个 IAM 群组,并将该策略附加到该群组。然后,将用户添加到组中。策略将应用于组中的每一位用户。要删除直接附加到用户的策略,请参阅 IAM 用户指南中的添加和删除 IAM 身份权限

[IAM.3] IAM 用户访问密钥应每 90 天或更短时间轮换一次

相关要求: CIS Amazon 基金会基准 v5.0.0/1.13、CIS Amazon 基金会基准 v3.0.0/1.14、CIS Amazon 基金会基准 v1.4.0/1.14、CIS Amazon 基金会基准 v1.2.0/1.4、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-2(3)、NIST.800-53.r5 AC-3(15)、PCI DSS v4.0.1/8.3.9、PCI DSS v4.0.1/8.6.3

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

严重性:

资源类型:AWS::IAM::User

Amazon Config 规则: access-keys-rotated

计划类型:定期

参数:

  • maxAccessKeyAge90(不可自定义)

该控制检查是否在 90 天内轮换了活动访问密钥。

我们强烈建议您不要在账户中生成和删除所有访问密钥。相反,建议的最佳实践是创建一个或多个 IAM 角色或通过 Amazon IAM Identity Center 使用联合身份验证。您可以使用这些方法来允许用户访问 Amazon Web Services 管理控制台 和 Amazon CLI。

每种方法都有其使用案例。对于拥有现有中心目录或计划需要超过当前 IAM 用户限制的企业来说,联合身份验证通常更好。在 Amazon 环境外运行的应用程序需要访问密钥才能对 Amazon 资源进行编程访问。

但是,如果需要提供编程访问的资源在 Amazon 内部运行,则最佳做法是使用 IAM 角色。通过角色,您可以授予资源访问权限,而无需在配置中硬编码访问密钥 ID 和私有访问密钥。

要了解有关保护访问密钥和账户的更多信息,请参阅 Amazon Web Services 一般参考 中的管理 Amazon 访问密钥的最佳实践。另请参阅博客文章使用编程访问时保护 Amazon Web Services 账户 的指南

如果您已有访问密钥,Security Hub 建议您每 90 天轮换一次访问密钥。轮换访问密钥可减少他人使用遭盗用账户或已终止账户关联的访问密钥的风险。这还可以确保无法使用可能已丢失、遭破解或被盗用的旧密钥访问数据。轮换访问密钥后,始终更新您的应用程序。

访问密钥包含一个访问密钥 ID 和一个私有访问密钥。它们用于签署您向 Amazon 发出的编程请求。用户需要自己的访问密钥才能从 Amazon CLI、Windows PowerShell 工具、Amazon SDK 对 Amazon 进行编程调用,或使用单个 Amazon Web Services 服务 的 API 操作进行直接 HTTP 调用。

如果您的组织使用 Amazon IAM Identity Center (IAM Identity Center),用户可以登录到 Active Directory、内置 IAM Identity Center 目录或连接到 IAM Identity Center 的其他身份提供者(IdP)。然后,可以将它们映射到 IAM 角色,使它们能够运行 Amazon CLI 命令或调用 Amazon API 操作,而无需访问密钥。要了解更多信息,请参阅 Amazon Command Line Interface 用户指南中的配置 Amazon CLI 以使用 Amazon IAM Identity Center

注意

Amazon Config 应在您使用 Security Hub 的所有区域中启用。但是,可以在单个区域启用全局资源记录。如果您仅在一个区域中记录全局资源,则可以在所有区域(记录全局资源的区域除外)中禁用此控件。

修复

要轮换超过 90 天的访问密钥,请参阅 IAM 用户指南中的轮换访问密钥。对于任何访问密钥有效期超过 90 天的用户,请按照说明进行操作。

[IAM.4] 不应存在 IAM 根用户访问密钥

相关要求: CIS Amazon 基金会基准 v5.0.0/1.3、CIS Amazon 基金会基准 v3.0.0/1.4、CIS Amazon 基金会基准 v1.4.0/1.4、CIS Amazon 基金会基准 v1.2.0/1.12、PCI DSS v3.2.1/2.1、PCI DSS v3.2.1/2.2、PCI DSS v3.2.1/7.2.1、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-6、NIST.800-53.r5 AC-6(10)、NIST.800-53.r5 AC-6(2)

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

严重性:严重

资源类型:AWS::::Account

Amazon Config 规则: iam-root-access-key-check

计划类型:定期

参数:

此控件检查根用户访问密钥是否存在。

根用户是 Amazon Web Services 账户 中权限最高的用户。Amazon 访问密钥提供对给定账户的编程访问。

Security Hub 建议您删除与根用户关联的所有访问密钥。这限制了可用于危害您的账户的向量。它还鼓励创建和使用最小权限的基于角色的账户。

修复

要删除根用户访问密钥,请参阅 IAM 用户指南中的删除根用户的访问密钥。要从 Amazon GovCloud (US) 中的 Amazon Web Services 账户 删除根用户访问密钥,请参阅 Amazon GovCloud (US) 用户指南中的删除我的 Amazon GovCloud (US) 账户根用户访问密钥

[IAM.5] 应为拥有控制台密码的所有 IAM 用户启用 MFA

相关要求: CIS Amazon 基金会基准 v5.0.0/1.9、CIS Amazon 基金会基准 v3.0.0/1.10、CIS Amazon 基金会基准 v1.4.0/1.10、CIS Amazon 基金会基准 v1.2.0/1.2、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 IA-2(1)、NIST.800-53.r5 IA-2(2)、NIST.800-53.r5 IA-2(6)、NIST.800-53.r5 IA-2(8)、PCI DSS v4.0.1/8.4.2

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

严重性:

资源类型:AWS::IAM::User

Amazon Config 规则: mfa-enabled-for-iam-console-access

计划类型:定期

参数:

此控件检查是否为所有使用控制台密码的 IAM 用户启用 Amazon 多重身份验证(MFA)。

多重身份验证 (MFA) 在用户名和密码之上增加了一层额外的防护。启用 MFA 后,当用户登录 Amazon 网站时,系统会提示输入用户名和密码。此外,系统还会提示用户从他们 Amazon MFA 设备输入身份验证代码。

我们建议为拥有控制台密码的所有账户启用 MFA。MFA 旨在为控制台访问提供更高的安全性。身份验证委托人必须拥有发放具有时效性的密钥的设备,并且必须知道凭证。

注意

Amazon Config 应在您使用 Security Hub 的所有区域中启用。但是,可以在单个区域启用全局资源记录。如果您仅在一个区域中记录全局资源,则可以在所有区域(记录全局资源的区域除外)中禁用此控件。

修复

要为 IAM 用户添加 MFA,请参阅 IAM 用户指南 中的在 Amazon 上使用多重身份验证(MFA)

[IAM.6] 应该为根用户启用硬件 MFA

相关要求: CIS Amazon 基金会基准 v5.0.0/1.5、CIS Amazon 基金会基准 v3.0.0/1.6、CIS Amazon 基金会基准 v1.4.0/1.6、CIS Amazon 基金会基准 v1.2.0/1.14、PCI DSS v3.2.1/8.3.1、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 IA-2(1)、NIST.800-53.r5 IA-2(2)、NIST.800-53.r5 IA-2(6)、NIST.800-53.r5 IA-2(8)、PCI DSS v4.0.1/8.4.2

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

严重性:严重

资源类型:AWS::::Account

Amazon Config 规则: root-account-hardware-mfa-enabled

计划类型:定期

参数:

此控件检查 Amazon Web Services 账户 是否能够使用硬件多重身份验证(MFA)设备以根用户凭证登录。如果未启用硬件 MFA 或者允许虚拟 MFA 设备使用根用户凭证登录,则该控件会失败。

虚拟 MFA 无法提供与硬件 MFA 设备相同的安全水平。我们建议您仅在等待硬件购买批准或等待硬件到达时使用虚拟 MFA 设备。要了解更多信息,请参阅《IAM 用户指南》中的分配虚拟 MFA 设备(控制台)

注意

Security Hub 会根据 Amazon Web Services 账户中是否存在根用户凭证(登录配置文件)来评估此控件。在以下情况下,控件会生成 PASSED 调查发现:

  • 账户中存在根用户凭证,并且为根用户启用了硬件 MFA。

  • 账户中不存在根用户凭证。

如果账户中存在根用户凭证,并且未为根用户启用硬件 MFA,则该控件会生成 FAILED 调查发现。

修复

有关为根用户启用硬件 MFA 的信息,请参阅《IAM 用户指南》中的 Amazon Web Services 账户根用户的多重身份验证

[IAM.7] IAM 用户的密码策略应具有可靠的配置

相关要求: NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-2(3)、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 IA-5(1)、NIST.800-171.r2 3.5.2、NIST.800-171.r2 3.5.7、NIST.800-171.r2 3.5.8、PCI DSS v4.0.1/8.3.6、PCI DSS v4.0.1/8.3.7、PCI DSS v4.0.1/8.3.9、PCI DSS v4.0.1/8.3.10.1、PCI DSS v4.0.1/8.6.3

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则: iam-password-policy

计划类型:定期

参数:

参数 描述 类型 允许的自定义值 Security Hub 默认值

RequireUppercaseCharacters

密码中要求至少包含一个大写字符

布尔值

true 或者 false

true

RequireLowercaseCharacters

密码中要求至少包含一个小写字符

布尔值

true 或者 false

true

RequireSymbols

密码中要求至少包含一个符号

布尔值

true 或者 false

true

RequireNumbers

密码中要求至少包含一个数字

布尔值

true 或者 false

true

MinimumPasswordLength

密码中的最少字符数

整数

8128

8

PasswordReusePrevention

在可以重复使用旧密码之前的密码轮换次数

整数

1224

无默认值

MaxPasswordAge

密码到期前的天数

整数

190

无默认值

此控件检查 IAM 用户的账户密码策略是否使用可靠的配置。如果密码策略未使用可靠配置,则控制失败。除非您提供自定义参数值,否则 Security Hub 将使用上表中提到的默认值。PasswordReusePreventionMaxPasswordAge 参数没有默认值,因此,如果排除这些参数,Security Hub 在评估此控件时会忽略密码轮换次数和密码使用期限。

要访问 Amazon Web Services 管理控制台,IAM 用户需要密码。作为最佳实践,Security Hub 强烈建议您使用联合身份验证,而不是创建 IAM 用户。联合身份验证允许用户使用其现有的公司凭证登录 Amazon Web Services 管理控制台。使用 Amazon IAM Identity Center(IAM 身份中心)创建用户或联合身份验证用户,然后在账户中担任 IAM 角色。

要了解有关身份提供商和联合身份验证的更多信息,请参阅 IAM 用户指南中身份提供程序和联合身份验证。要了解有关 IAM Identity Center 的更多信息,请参阅 Amazon IAM Identity Center 用户指南

如果您需要使用 IAM 用户,Security Hub 建议您强制创建强用户密码。您可以在 Amazon Web Services 账户 上设置密码策略,指定密码的复杂性要求和强制轮换期限。创建或更改密码策略时,大多数密码策略设置会在用户下次更改其密码时实施。某些设置会立即强制执行。

修复

要更新密码策略,请参阅《IAM 用户指南》中的为 IAM 用户设置账户密码策略

[IAM.8] 应移除未使用的 IAM 用户凭证

相关要求: CIS Amazon 基金会基准 v1.2.0/1.3、NIST.800-53.r5 AC-2、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-2(3)、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-6、NIST.800-171.r2 3.1.2、PCI DSS v3.2.1/8.1.4、PCI DSS v4.0.1/8.2.6

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

严重性:

资源类型:AWS::IAM::User

Amazon Config 规则: iam-user-unused-credentials-check

计划类型:定期

参数:

  • maxCredentialUsageAge90(不可自定义)

此控件可检查您的 IAM 用户是否拥有 90 天未使用的密码或有效访问密钥。

IAM 用户可以使用不同类型的凭证(例如密码或访问密钥)访问 Amazon 资源。

Security Hub 建议您删除或停用 90 天或更长时间未使用的所有凭证。禁用或删除不必要的凭证可减少他人使用遭盗用账户或已弃用账户的关联凭证的风险。

注意

Amazon Config 应在您使用 Security Hub 的所有区域中启用。但是,可以在单个区域启用全局资源记录。如果您仅在一个区域中记录全局资源,则可以在所有区域(记录全局资源的区域除外)中禁用此控件。

修复

当您在 IAM 控制台中查看用户信息时,会有访问密钥年龄密码使用期限上次活动列。如果上述列中的任何一个中的值大于 90 天,请停用这些用户的凭证。

您还可以使用凭证报告来监控用户并识别那些连续 90 天或以上没有活动的用户。您可以从 IAM 控制台下载 .csv 格式的凭证报告。

确定非活动账户或未使用的凭证后,将其停用。有关说明,请参阅 IAM 用户指南中的创建、变更或删除 IAM 用户密码(控制台)

[IAM.9] 应为根用户启用 MFA

相关要求: CIS Amazon 基金会基准 v5.0.0/1.4、PCI DSS v3.2.1/8.3.1、PCI DSS v4.0.1/8.4.2、CIS Amazon 基金会基准 v3.0.0/1.5、CIS Amazon 基金会基准 v1.4.0/1.5、CIS Amazon 基金会基准 v1.2.0/1.13、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 IA-2(1)、NIST.800-53.r5 IA-2(2)、NIST.800-53.r5 IA-2(6)、NIST.800-53.r5 IA-2(8)

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

严重性:严重

资源类型:AWS::::Account

Amazon Config 规则: root-account-mfa-enabled

计划类型:定期

参数:

此控件检查是否已为 Amazon Web Services 账户的 IAM 根用户启用多重身份验证 (MFA) 以登录 Amazon Web Services 管理控制台。如果账户的根用户未启用 MFA,则该控件会失败。

Amazon Web Services 账户的 IAM 根用户拥有对该账户中所有服务和资源的完全访问权限。如果启用了 MFA,用户必须输入用户名、密码和来自其 Amazon MFA 设备的身份验证码才能登录 Amazon Web Services 管理控制台。MFA 在用户名和密码之上增加了一层额外防护。

在以下情况下,此控件会生成 PASSED 调查发现:

  • 账户中存在根用户凭证,并且为根用户启用了 MFA。

  • 账户中不存在根用户凭证。

如果账户中存在根用户凭证,并且未为根用户启用 MFA,则该控件会生成 FAILED 调查发现。

修复

有关为 Amazon Web Services 账户的根用户启用 MFA 的信息,请参阅《Amazon Identity and Access Management 用户指南》中的 Amazon Web Services 账户根用户 的多重身份验证

[IAM.10] IAM 用户的密码策略应具有可靠的配置

相关要求: NIST.800-171.r2 3.5.2、NIST.800-171.r2 3.5.7、NIST.800-171.r2 3.5.8、PCI DSS v3.2.1/8.1.4、PCI DSS v3.2.1/8.2.3、PCI DSS v3.2.1/8.2.4、PCI DSS v3.2.1/8.2.5

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则: iam-password-policy

计划类型:定期

参数:

此控件检查 IAM 用户的账户密码策略是否使用以下最低 PCI DSS 配置。

  • RequireUppercaseCharacters——密码中要求至少包含一个大写字符。(默认值 = true

  • RequireLowercaseCharacters——密码中要求至少包含一个小写字符。(默认值 = true

  • RequireNumbers——密码中要求至少包含一个数字。(默认值 = true

  • MinimumPasswordLength——密码最小长度。(默认值 = 7 或更长)

  • PasswordReusePrevention——允许重用前的密码数。(默认值 = 4)

  • MaxPasswordAge – 密码到期前的天数。(默认值 = 90)

注意

2025 年 5 月 30 日,Security Hub 从 PCI DSS v4.0.1 标准中移除了此控件。PCI DSS v4.0.1 现在要求密码至少包含 8 个字符。此控件继续适用于 PCI DSS v3.2.1 标准,该标准具有不同的密码要求。

要根据 PCI DSS v4.0.1 要求评估账户密码策略,可以使用 IAM.7 控件。此控件要求密码至少包含 8 个字符。它还对密码长度和其他参数支持自定义值。IAM.7 控件是 Security Hub 中 PCI DSS v4.0.1 标准的一部分。

修复

要更新您的密码策略以使用推荐的配置,请参阅 IAM 用户指南中的为 IAM 用户设置账户密码策略

[IAM.11] 确保 IAM 密码策略要求包含至少一个大写字母

相关要求: CIS Amazon 基金会基准 v1.2.0/1.5、NIST.800-171.r2 3.5.7、PCI DSS v4.0.1/8.3.6、PCI DSS v4.0.1/8.6.3

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则: iam-password-policy

计划类型:定期

参数:

密码策略在某种程度上强制实施密码复杂性要求。使用 IAM 密码策略可确保密码使用不同的字符集。

CIS 建议密码策略至少需要一个大写字母。设置密码复杂性策略可提高账户抵抗暴力登录尝试的弹性。

修复

要变更密码策略,请参阅 IAM 用户指南中的为 IAM 用户设置账户密码策略。对于密码强度,选择需要至少一个拉丁字母表中的大写字母 (A–Z)

[IAM.12] 确保 IAM 密码策略要求包含至少一个小写字母

相关要求: CIS Amazon 基金会基准 v1.2.0/1.6、NIST.800-171.r2 3.5.7、PCI DSS v4.0.1/8.3.6、PCI DSS v4.0.1/8.6.3

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则: iam-password-policy

计划类型:定期

参数:

密码策略在某种程度上强制实施密码复杂性要求。使用 IAM 密码策略可确保密码使用不同的字符集。CIS 建议密码策略要求包含至少一个小写字母。设置密码复杂性策略可提高账户抵抗暴力登录尝试的弹性。

修复

要变更密码策略,请参阅 IAM 用户指南中的为 IAM 用户设置账户密码策略。对于密码强度,选择需要至少一个拉丁字母表中的小写字母 (A–Z)

[IAM.13] 确保 IAM 密码策略要求包含至少一个符号

相关要求: CIS Amazon 基金会基准 v1.2.0/1.7、NIST.800-171.r2 3.5.7

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则: iam-password-policy

计划类型:定期

参数:

密码策略在某种程度上强制实施密码复杂性要求。使用 IAM 密码策略可确保密码使用不同的字符集。

CIS 建议密码策略要求包含至少一个符号。设置密码复杂性策略可提高账户抵抗暴力登录尝试的弹性。

修复

要变更密码策略,请参阅 IAM 用户指南中的为 IAM 用户设置账户密码策略。对于密码强度,选择需要至少一个非字母数字字符

[IAM.14] 确保 IAM 密码策略要求包含至少一个数字

相关要求: CIS Amazon 基金会基准 v1.2.0/1.8、NIST.800-171.r2 3.5.7、PCI DSS v4.0.1/8.3.6、PCI DSS v4.0.1/8.6.3

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则: iam-password-policy

计划类型:定期

参数:

密码策略在某种程度上强制实施密码复杂性要求。使用 IAM 密码策略可确保密码使用不同的字符集。

CIS 建议密码策略要求包含至少一个数字。设置密码复杂性策略可提高账户抵抗暴力登录尝试的弹性。

修复

要变更密码策略,请参阅 IAM 用户指南中的为 IAM 用户设置账户密码策略。对于密码强度,选择需要至少一个数字

[IAM.15] 确保 IAM 密码策略要求最短密码长度不低于 14

相关要求: CIS Amazon 基金会基准 v5.0.0/1.7、CIS Amazon 基金会基准 v3.0.0/1.8、CIS Amazon 基金会基准 v1.4.0/1.8、CIS Amazon 基金会基准 v1.2.0/1.9、NIST.800-171.r2 3.5.7

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则: iam-password-policy

计划类型:定期

参数:

密码策略在某种程度上强制实施密码复杂性要求。使用 IAM 密码策略确保密码至少为给定长度。

CIS 建议密码策略要求最短密码长度为 14 个字符。设置密码复杂性策略可提高账户抵抗暴力登录尝试的弹性。

修复

要变更密码策略,请参阅 IAM 用户指南中的为 IAM 用户设置账户密码策略。对于密码最小长度,请输入 14 或更大的数字。

[IAM.16] 确保 IAM 密码策略阻止重复使用密码

相关要求: CIS Amazon 基金会基准 v5.0.0/1.8、CIS Amazon 基金会基准 v3.0.0/1.9、CIS Amazon 基金会基准 v1.4.0/1.9、CIS Amazon 基金会基准 v1.2.0/1.10、NIST.800-171.r2 3.5.8、PCI DSS v4.0.1/8.3.7

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则: iam-password-policy

计划类型:定期

参数:

此控件检查要记住的密码数量是否设置为 24。如果该值不是 24,则控制失败。

IAM 密码策略可以阻止同一用户重复使用给定密码。

CIS 建议密码策略阻止重复使用密码。阻止重复使用密码可提高账户抵抗暴力登录尝试的弹性。

修复

要变更密码策略,请参阅 IAM 用户指南中的为 IAM 用户设置账户密码策略。在防止密码重复使用中,输入 24

[IAM.17] 确保 IAM 密码策略使密码在 90 天或更短时间内失效

相关要求: CIS Amazon 基金会基准 v1.2.0/1.11、PCI DSS v4.0.1/8.3.9、PCI DSS v4.0.1/8.3.10.1

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则: iam-password-policy

计划类型:定期

参数:

IAM 密码策略可以要求在给定天数后轮换密码或使密码失效。

CIS 建议密码策略在 90 天或更短时间后使密码失效。缩短密码生存期可提高账户抵抗暴力登录尝试的弹性。在以下情况下,要求定期更改密码也是非常有用的:

  • 密码可能会在您不知情的情况下被窃取或泄露。系统遭受攻击、软件漏洞或内部威胁都可能导致发生这种情况。

  • 某些公司和政府的 Web 筛选条件或代理服务器能够拦截和记录流量(即使流量已加密)。

  • 很多用户对于许多系统(例如工作系统、电子邮件和个人系统)都使用相同的密码。

  • 遭受攻击的最终用户工作站可能存在击键记录器。

修复

要变更密码策略,请参阅 IAM 用户指南中的为 IAM 用户设置账户密码策略。对于开启密码到期,请输入 90 或一个较小的数字。

[IAM.18] 确保创建支持角色来管理涉及 Amazon Web Services 支持 的事务

相关要求: CIS Amazon 基金会基准 v5.0.0/1.16、CIS Amazon 基金会基准 v3.0.0/1.17、CIS Amazon 基金会基准 v1.4.0/1.17、CIS Amazon 基金会基准 v1.2.0/1.20、NIST.800-171.r2 3.1.2、PCI DSS v4.0.1/12.10.3

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则: iam-policy-in-use

计划类型:定期

参数:

  • policyARNarn:partition:iam::aws:policy/AWSSupportAccess(不可自定义)

  • policyUsageTypeANY(不可自定义)

Amazon 提供了可用于事件通知和响应的支持中心,以及技术支持和客户服务。

创建一个 IAM 角色以允许授权用户管理与 Amazon Support 相关的事件。一旦实施最低权限来进行访问控制,IAM 角色就需要适当的 IAM policy 来允许支持中心访问,以便管理与 Amazon Web Services 支持 相关的事件。

注意

Amazon Config 应在您使用 Security Hub 的所有区域中启用。但是,可以在单个区域启用全局资源记录。如果您仅在一个区域中记录全局资源,则可以在所有区域(记录全局资源的区域除外)中禁用此控件。

修复

要纠正此问题,请创建一个角色以允许授权用户管理 Amazon Web Services 支持 事件。

创建要用于 Amazon Web Services 支持 访问的角色
  1. 通过 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

  2. 在 IAM 导航窗格中,选择角色,然后选择创建角色

  3. 对于角色类型,选择其他 Amazon Web Services 账户

  4. 对于账户 ID,输入您想要授予其资源访问权限的 Amazon Web Services 账户 的 Amazon Web Services 账户 ID。

    如果将代入此角色的用户或组位于同一账户中,则输入本地账户号码。

    注意

    指定账户的管理员可向该账户中的任何用户授予代入该角色的权限。为此,管理员需要将策略附加到用户或组来授予 sts:AssumeRole 操作的权限。在该策略中,资源必须是角色 ARN。

  5. 选择下一步: 权限

  6. 搜索托管策略 AWSSupportAccess

  7. 选中 AWSSupportAccess 托管策略的复选框。

  8. 选择下一步:标签

  9. (可选)要将元数据添加到角色,将标签附加为键值对。

    有关在 IAM 中使用标签的更多信息,请参阅 IAM 用户指南中的标记 IAM 用户和角色

  10. 选择 Next: Review (下一步:审核)

  11. 对于 Role name (角色名称),为您的角色输入一个名称。

    角色名称在您的 Amazon Web Services 账户内必须是唯一的。它们不区分大小写。

  12. (可选)对于角色描述,输入新角色的描述。

  13. 检查该角色,然后选择Create role (创建角色)

[IAM.19] 应为所有 IAM 用户启用 MFA

相关要求: NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 IA-2(1)、NIST.800-53.r5 IA-2(2)、NIST.800-53.r5 IA-2(6)、NIST.800-53.r5 IA-2(8)、NIST.800-171.r2 3.3.8、NIST.800-171.r2 3.5.3、NIST.800-171.r2 3.5.4、NIST.800-171.r2 3.7.5、PCI DSS v3.2.1/8.3.1、PCI DSS v4.0.1/8.4.2、

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

严重性:

资源类型:AWS::IAM::User

Amazon Config 规则: iam-user-mfa-enabled

计划类型:定期

参数:

此控件检查 IAM 用户是否启用了多重身份验证(MFA)。

注意

Amazon Config 应在您使用 Security Hub 的所有区域中启用。但是,可以在单个区域启用全局资源记录。如果您仅在一个区域中记录全局资源,则可以在所有区域(记录全局资源的区域除外)中禁用此控件。

修复

要为 IAM 用户添加 MFA,请参阅 IAM 用户指南中的为用户启用 Amazon 中 MFA 设备

[IAM.20] 避免使用根用户

重要

Security Hub 已于 2024 年 4 月停用了此控件。有关更多信息,请参阅 Security Hub CSPM 控件的更改日志

相关要求:CIS Amazon 基金会基准 v1.2.0/1.1

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

严重性:

资源类型:AWS::IAM::User

Amazon Config规则:use-of-root-account-test(自定义 Security Hub 规则)

计划类型:定期

参数:

此控件检查 Amazon Web Services 账户 是否对根用户的使用有限制。该控件评估以下资源:

  • Amazon Simple Notification Service(Amazon SNS)主题

  • Amazon CloudTrail 跟踪

  • 与 CloudTrail 跟踪相关的指标筛选条件

  • 基于筛选条件的 Amazon CloudWatch 警报

如果以下一条或多条陈述为真,此检查将导致 FAILED 调查发现结果:

  • 账户中不存在 CloudTrail 跟踪。

  • CloudTrail 跟踪已启用,但未配置至少一个包含读取和写入管理事件的多区域跟踪。

  • CloudTrail 跟踪已启用,但未与 CloudWatch Logs 日志组关联。

  • 没有使用 Center for Internet Security (CIS) 规定的确切指标筛选条件。规定的指标筛选条件是 '{$.userIdentity.type="Root" && $.userIdentity.invokedBy NOT EXISTS && $.eventType !="AwsServiceEvent"}'

  • 账户中不存在基于指标筛选条件的 CloudWatch 警报。

  • 配置为向关联 SNS 主题发送通知的 CloudWatch 警报不会根据警报条件触发。

  • SNS 主题不符合向 SNS 主题发送消息的限制

  • SNS 主题没有至少一个订阅用户。

如果以下一条或多条陈述为真,则此检查的控件状态为 NO_DATA

  • 多区域跟踪基于不同区域。Security Hub 只能在跟踪所在的区域生成调查发现。

  • 多区域跟踪属于不同的账户。Security Hub 只能为拥有跟踪的账户生成调查发现。

如果以下一条或多条陈述为真,则此检查的控件状态为 WARNING

  • 当前账户不拥有 CloudWatch 警报中提及的 SNS 主题。

  • 调用 ListSubscriptionsByTopic SNS API 时,当前账号无权访问 SNS 主题。

注意

我们建议使用组织跟踪来记录来自组织中多个账户的事件。默认情况下,组织跟踪是多区域跟踪,只能由 Amazon Organizations 管理账户或 CloudTrail 委派的管理员账户进行管理。使用组织跟踪会导致在组织成员账户中评估的控件的控件状态为 NO_DATA。在成员账户中,Security Hub 仅针对成员拥有的资源生成调查发现。与组织跟踪相关的调查发现在资源所有者的账户中生成。您可以使用跨区域聚合在 Security Hub 委托管理员账户中查看这些结果。

作为最佳实践,仅在需要执行账户和服务管理任务时才使用根用户凭证。将 IAM policy 直接应用于组和角色,但不应用于用户。有关设置日常使用管理员的说明,请参阅 IAM 用户指南中的创建第一个 IAM 管理员用户和组

修复

修复此问题的步骤包括设置 Amazon SNS 主题、CloudTrail 跟踪、指标筛选条件以及指标筛选条件的警报。

创建 Amazon SNS 主题
  1. 通过 https://console.aws.amazon.com/sns/v3/home 打开 Amazon SNS 控制台。

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。有关更多信息,请参阅 Amazon Simple Notification Service 开发人员指南中的 Amazon SNS 入门

接下来,设置适用于所有区域的活动 CloudTrail。为此,请按照中的修复步骤进行操作[CloudTrail.1] 应启用 CloudTrail 并配置至少一个包含读取和写入管理事件的多区域跟踪

记下您与 CloudTrail 跟踪关联的 CloudWatch Logs 日志组的名称。您为该日志组创建指标筛选条件。

最后,创建指标筛选条件和警报。

创建指标筛选条件和警报
  1. 通过 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  2. 在导航窗格中,选择 Log groups(日志组)

  3. 选中与您创建的 CloudTrail 跟踪关联的 CloudWatch Logs 日志组的复选框。

  4. 操作中,选择创建指标筛选条件

  5. 定义模式下,请执行以下操作:

    1. 复制以下模式,然后将其粘贴到 Filter Pattern (筛选条件模式) 字段中。

      {$.userIdentity.type="Root" && $.userIdentity.invokedBy NOT EXISTS && $.eventType !="AwsServiceEvent"}
    2. 选择下一步

  6. 分配指标下,执行以下操作:

    1. 筛选条件名称中,输入指标筛选条件的名称。

    2. 对于指标命名空间,输入 LogMetrics

      如果您对所有 CIS 日志指标筛选条件使用相同的命名空间,则所有 CIS Benchmark 指标都会组合在一起。

    3. 对于指标名称,为指标输入名称。记住指标的名称。在创建警报时,您将需要选择指标。

    4. 对于 Metric value(指标值),输入 1

    5. 选择下一步

  7. 查看并创建下,验证您为新指标筛选器提供的信息。选择创建指标筛选条件

  8. 在导航窗格中,选择日志组,然后选择您在指标筛选器下创建的筛选条件。

  9. 选中筛选条件的复选框。选择创建警报

  10. 指定指标和条件下,执行以下操作:

    1. 条件下,对于阈值,选择静态

    2. 对于定义警报条件,选择大于/等于

    3. 在定义阈值中输入 1

    4. 选择下一步

  11. 配置操作下,执行以下操作:

    1. 警报状态触发下,选择在警报中

    2. Select an SNS topic (选择 SNS 主题) 下,选择 Select an existing SNS topic (选择现有的 SNS 主题)

    3. 对于发送通知至,输入您在上一过程中创建的 SNS 主题的名称。

    4. 选择下一步

  12. 添加名称和描述下,输入警报的名称描述,例如 CIS-1.1-RootAccountUsage。然后选择下一步

  13. 预览并创建下,查看警报配置。然后选择 Create alarm (创建警报)

[IAM.21] 您创建的 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(10)、NIST.800-53.r5 AC-6(2)、NIST.800-53.r5 AC-6(3)、NIST.800-171.r2 3.1.1、NIST.800-171.r2 3.1.2、NIST.800-171.r2 3.1.5、NIST.800-171.r2 3.1.7、NIST.800-171.r2 3.3.8、NIST.800-171.r2 3.3.9、NIST.800-171.r2 3.13.3、NIST.800-171.r2 3.13.4

类别:检测 > 安全访问管理

严重性:

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

Amazon Config 规则: iam-policy-no-statements-with-full-access

计划类型:已触发变更

参数:

  • excludePermissionBoundaryPolicyTrue(不可自定义)

此控制检查您创建的 IAM 基于身份的策略是否具有使用 * 通配符的允许语句来授予对任何服务的所有操作的权限。如果任何策略声明包含 "Action": "Service:*""Effect": "Allow",则控制失败。

例如,策略中的以下语句会导致失败的调查发现。

"Statement": [ { "Sid": "EC2-Wildcard", "Effect": "Allow", "Action": "ec2:*", "Resource": "*" }

如果 "Effect": "Allow""NotAction": "service:*" 配合使用,控制也会失败。在这种情况下,NotAction 元素提供对 Amazon Web Services 服务 中所有操作的访问,除了 NotAction 中指定的操作。

此控制仅适用于客户托管的 IAM policy。它不适用于由 Amazon 管理的 IAM policy。

当您向 Amazon Web Services 服务 分配权限时,请务必在 IAM policy 中确定允许的 IAM 操作的范围。您应将 IAM 操作限制为仅需要的操作。这可以帮助您预置最低权限权限。如果策略附加到可能不需要权限的 IAM 主体,则过于宽松的策略可能会导致权限升级。

在某些情况下,您可能需要允许具有相似前缀的 IAM 操作,例如 DescribeFlowLogsDescribeAvailabilityZones。在这些授权的情况下,您可以在通用前缀中添加带后缀的通配符。例如 ec2:Describe*

如果您使用带有后缀通配符的带前缀的 IAM 操作,则此控制通过。例如,策略中的以下语句会形成通过的调查发现。

"Statement": [ { "Sid": "EC2-Wildcard", "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" }

以这种方式对相关的 IAM 操作进行分组时,还可以避免超出 IAM policy 的大小限制。

注意

Amazon Config 应在您使用 Security Hub 的所有区域中启用。但是,可以在单个区域启用全局资源记录。如果您仅在一个区域中记录全局资源,则可以在所有区域(记录全局资源的区域除外)中禁用此控件。

修复

要修复此问题,请更新 IAM policy,使其不允许完全的 "*" 管理权限。有关如何编辑 IAM policy 的详细信息,请参阅 IAM 用户指南中的编辑 IAM policy

[IAM.22] 应移除在 45 天内未使用的 IAM 用户凭证

相关要求: CIS Amazon 基金会基准 v5.0.0/1.11、CIS Amazon 基金会基准 v3.0.0/1.12、CIS Amazon 基金会基准 v1.4.0/1.12、NIST.800-171.r2 3.1.2

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

严重性:

资源类型:AWS::IAM::User

Amazon Config 规则: iam-user-unused-credentials-check

计划类型:定期

参数:

此控制检查 IAM 用户是否拥有 45 天或更长时间未使用的密码或活动访问密钥。为此,它会检查 Amazon Config 规则的 maxCredentialUsageAge 参数是否等于 45 或更大。

用户可以使用不同类型的凭证(例如密码或访问密钥)访问 Amazon 资源。

CIS 建议您删除或停用 45 天或更长时间未使用的所有凭证。禁用或删除不必要的凭证可减少他人使用遭盗用账户或已弃用账户的关联凭证的风险。

此控件的 Amazon Config 规则使用 GetCredentialReportGenerateCredentialReport API 操作,这些操作每四小时才更新一次。对 IAM 用户的更改最多可能需要四小时才能对此控件显示。

注意

Amazon Config 应在您使用 Security Hub 的所有区域中启用。但是,您可以启用在单个区域中记录全局资源。如果您仅在一个区域中记录全局资源,则可以在所有区域(记录全局资源的区域除外)中禁用此控件。

修复

当您在 IAM 控制台中查看用户信息时,会有访问密钥年龄密码使用期限上次活动列。如果上述列中的任何一个中的值大于 45 天,请停用这些用户的凭证。

您还可以使用凭证报告来监控用户并识别那些连续 45 天或以上没有活动的用户。您可以从 IAM 控制台下载 .csv 格式的凭证报告。

确定非活动账户或未使用的凭证后,将其停用。有关说明,请参阅 IAM 用户指南中的创建、变更或删除 IAM 用户密码(控制台)

[IAM.23] 应标记 IAM Access Analyzer 分析器

类别:识别 > 清单 > 标记

严重性:

资源类型:AWS::AccessAnalyzer::Analyzer

Amazon Config 规则:tagged-accessanalyzer-analyzer(自定义 Security Hub 规则)

计划类型:已触发变更

参数:

参数 描述 类型 允许的自定义值 Security Hub 默认值
requiredTagKeys 被评估资源必须包含的非系统标签键列表。标签键区分大小写。 StringList(最多 6 项) 1-6 个符合 Amazon 要求的标签键。 No default value

此控件可检查由 Amazon Identity and Access Management Access Analyzer(IAM Access Analyzer)管理的分析器是否具有带特定键的标签,这些键在 requiredTagKeys 参数中进行定义。如果分析器没有任何标签键或未在 requiredTagKeys 参数中指定所有键,则此控件将失败。如果未提供 requiredTagKeys 参数,则此控件仅检查是否存在标签键,如果分析器未使用任何键进行标记,则此控件将失败。自动应用并以 aws: 为开头的系统标签会被忽略。

标签是您分配给 Amazon 资源的标记,由一个键和一个可选值组成。您可以创建标签,以按用途、所有者、环境或其他标准对资源进行分类。标签可帮助您识别、组织、搜索和筛选资源。使用标签进行标记还可以帮助您跟踪负责操作和通知的资源所有者。使用标签进行标记时,可以将基于属性的访问权限控制(ABAC)作为授权策略实施,该策略根据标签来定义权限。您可以将标签附加到 IAM 实体(用户或角色)以及 Amazon 资源。您可以为 IAM 主体创建单个 ABAC 策略或者一组单独的策略。您可以将这些 ABAC 策略设计为允许在主体的标签与资源标签匹配时进行操作。有关更多信息,请参阅 IAM 用户指南中的什么是适用于 Amazon 的 ABAC?

注意

请勿在标签中添加个人身份信息(PII)或者其他机密或敏感信息。可从许多 Amazon Web Services 服务访问标签,包括 Amazon Billing。有关标记更多最佳实践,请参阅《Amazon Web Services 一般参考》中的标记 Amazon 资源

修复

要向分析器添加标签,请参阅《Amazon IAM Access Analyzer API Reference》中的 TagResource

[IAM.24] 应标记 IAM 角色

类别:识别 > 清单 > 标记

严重性:

资源类型:AWS::IAM::Role

Amazon Config 规则:tagged-iam-role(自定义 Security Hub 规则)

计划类型:已触发变更

参数:

参数 描述 类型 允许的自定义值 Security Hub 默认值
requiredTagKeys 被评估资源必须包含的非系统标签键列表。标签键区分大小写。 StringList(最多 6 项) 1-6 个符合 Amazon 要求的标签键。 No default value

此控件可检查 Amazon Identity and Access Management(IAM)角色是否具有带特定键的标签,这些键在 requiredTagKeys 参数中进行定义。如果角色没有任何标签键或未在 requiredTagKeys 参数中指定所有键,则此控件将失败。如果未提供 requiredTagKeys 参数,则此控件仅检查是否存在标签键,如果角色未使用任何键进行标记,则此控件将失败。自动应用并以 aws: 为开头的系统标签会被忽略。

标签是您分配给 Amazon 资源的标记,由一个键和一个可选值组成。您可以创建标签,以按用途、所有者、环境或其他标准对资源进行分类。标签可帮助您识别、组织、搜索和筛选资源。使用标签进行标记还可以帮助您跟踪负责操作和通知的资源所有者。使用标签进行标记时,可以将基于属性的访问权限控制(ABAC)作为授权策略实施,该策略根据标签来定义权限。您可以将标签附加到 IAM 实体(用户或角色)以及 Amazon 资源。您可以为 IAM 主体创建单个 ABAC 策略或者一组单独的策略。您可以将这些 ABAC 策略设计为允许在主体的标签与资源标签匹配时进行操作。有关更多信息,请参阅 IAM 用户指南中的什么是适用于 Amazon 的 ABAC?

注意

请勿在标签中添加个人身份信息(PII)或者其他机密或敏感信息。可从许多 Amazon Web Services 服务访问标签,包括 Amazon Billing。有关标记更多最佳实践,请参阅《Amazon Web Services 一般参考》中的标记 Amazon 资源

修复

要向 IAM 角色添加标签,请参阅《IAM 用户指南》中的为 IAM 资源添加标签

[IAM.25] 应标记 IAM 用户

类别:识别 > 清单 > 标记

严重性:

资源类型:AWS::IAM::User

Amazon Config 规则:tagged-iam-user(自定义 Security Hub 规则)

计划类型:已触发变更

参数:

参数 描述 类型 允许的自定义值 Security Hub 默认值
requiredTagKeys 被评估资源必须包含的非系统标签键列表。标签键区分大小写。 StringList(最多 6 项) 1-6 个符合 Amazon 要求的标签键。 No default value

此控件可检查 Amazon Identity and Access Management(IAM)用户是否具有带特定键的标签,这些键在 requiredTagKeys 参数中进行定义。如果用户没有任何标签键或未在 requiredTagKeys 参数中指定所有键,则此控件将失败。如果未提供 requiredTagKeys 参数,则此控件仅检查是否存在标签键,如果用户未使用任何键进行标记,则此控件将失败。自动应用并以 aws: 为开头的系统标签会被忽略。

标签是您分配给 Amazon 资源的标记,由一个键和一个可选值组成。您可以创建标签,以按用途、所有者、环境或其他标准对资源进行分类。标签可帮助您识别、组织、搜索和筛选资源。使用标签进行标记还可以帮助您跟踪负责操作和通知的资源所有者。使用标签进行标记时,可以将基于属性的访问权限控制(ABAC)作为授权策略实施,该策略根据标签来定义权限。您可以将标签附加到 IAM 实体(用户或角色)以及 Amazon 资源。您可以为 IAM 主体创建单个 ABAC 策略或者一组单独的策略。您可以将这些 ABAC 策略设计为允许在主体的标签与资源标签匹配时进行操作。有关更多信息,请参阅 IAM 用户指南中的什么是适用于 Amazon 的 ABAC?

注意

请勿在标签中添加个人身份信息(PII)或者其他机密或敏感信息。可从许多 Amazon Web Services 服务访问标签,包括 Amazon Billing。有关标记更多最佳实践,请参阅《Amazon Web Services 一般参考》中的标记 Amazon 资源

修复

要向 IAM 用户添加标签,请参阅《IAM 用户指南》中的为 IAM 资源添加标签

[IAM.26] 应删除 IAM 中管理的过期 SSL/TLS 证书

相关要求:CIS Amazon 基金会基准 v5.0.0/1.18、CIS Amazon 基金会基准 v3.0.0/1.19

类别:标识 > 合规性

严重性:

资源类型:AWS::IAM::ServerCertificate

Amazon Config 规则: iam-server-certificate-expiration-check

计划类型:定期

参数:

此控件可检查 IAM 中管理的活动 SSL/TLS 服务器证书是否已过期。如果未删除过期的 SSL/TLS 服务器证书,则此控件将失败。

要在 Amazon 中启用与您网站或应用程序的 HTTPS 连接,您需要 SSL/TLS 服务器证书。可以使用 IAM 或 Amazon Certificate Manager(ACM)来存储和部署服务器证书。只有当您必须在 ACM 不支持的 Amazon Web Services 区域中支持 HTTPS 连接时,才能使用 IAM 作为证书管理器。IAM 安全地加密您的私有密钥并将加密的版本存储在 IAM SSL 证书存储中。IAM 支持在所有区域部署服务器证书,但您必须从外部提供商获取证书,以便与 Amazon 搭配使用。无法将 ACM 证书上传到 IAM。此外,也无法从 IAM 控制台管理证书。删除过期的 SSL/TLS 证书可以消除将无效证书意外部署到资源的风险,这种意外部署可能会损害底层应用程序或网站的可信度。

修复

要从 IAM 中删除服务器证书,请参阅《IAM 用户指南》中的在 IAM 中管理服务器证书

[IAM.27] IAM 身份不应附加 AWSCloudShellFullAccess 策略

相关要求:CIS Amazon 基金会基准 v5.0.0/1.21、CIS Amazon 基金会基准 v3.0.0/1.22

类别:保护 > 安全访问管理 > 安全的 IAM 策略

严重性:

资源类型:AWS::IAM::RoleAWS::IAM::UserAWS::IAM::Group

Amazon Config 规则: iam-policy-blacklisted-check

计划类型:已触发变更

参数:

  • "policyArns": "arn:aws:iam::aws:policy/AWSCloudShellFullAccess,arn:aws-cn:iam::aws:policy/AWSCloudShellFullAccess, arn:aws-us-gov:iam::aws:policy/AWSCloudShellFullAccess"

此控件可检查 IAM 身份(用户、角色或组)是否已附加 Amazon 托管策略 AWSCloudShellFullAccess。如果 IAM 身份附加了 AWSCloudShellFullAccess 策略,则此控件将失败。

Amazon CloudShell 提供了一种针对 Amazon Web Services 服务 运行 CLI 命令的便捷方法。Amazon 托管策略 AWSCloudShellFullAccess 提供了对 CloudShell 的完全访问权限,从而允许在用户的本地系统和 CloudShell 环境之间上传和下载文件。在 CloudShell 环境中,用户具有 sudo 权限,并且可以访问互联网。因此,将此托管策略附加到 IAM 身份后,用户就可以安装文件传输软件并将数据从 CloudShell 移动到外部互联网服务器。我们建议遵循最低权限原则,为您的 IAM 身份附加更窄的权限。

修复

要将 AWSCloudShellFullAccess 策略与 IAM 身份分离,请参阅《IAM 用户指南》中的添加和删除 IAM 身份权限

[IAM.28] 应启用 IAM Access Analyzer 外部访问分析器

相关要求:CIS Amazon 基金会基准 v5.0.0/1.19、CIS Amazon 基金会基准 v3.0.0/1.20

分类:检测 > 检测服务 > 特权使用监控

严重性:

资源类型:AWS::AccessAnalyzer::Analyzer

Amazon Config 规则: iam-external-access-analyzer-enabled

计划类型:定期

参数:

此控件可检查 Amazon Web Services 账户是否启用了 IAM Access Analyzer 外部访问分析器。如果该账户未在您当前选择的 Amazon Web Services 区域中启用外部访问权限分析器,则此控件将失败。

IAM Access Analyzer 外部访问分析器可帮助您识别与外部实体共享的资源,例如 Amazon Simple Storage Service (Amazon S3) 存储桶或 IAM 角色。这可以帮助避免意外访问您的资源和数据。IAM Access Analyzer 具有区域性,必须在每个区域中启用。要识别与外部主体共享的资源,访问分析器会使用基于逻辑的推理来分析 Amazon 环境中基于资源的策略。创建外部访问分析器时,您可以为整个组织或单个账户创建并启用它。

注意

如果账户是 Amazon Organizations 中某个组织的一部分,则此控件不会考虑将该组织指定为信任区域并在当前区域为该组织启用的外部访问分析器。如果您的组织使用这种类型的配置,请考虑为该区域中组织内的各个成员账户禁用此控制。

修复

有关在特定区域启用外部访问分析器的信息,请参阅《IAM 用户指南》中的开始使用 IAM Access Analyzer。您必须在要监控资源访问情况的每个区域中启用一个分析器。