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

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

Amazon Identity and Access Management 控件

这些控制与 IAM 资源有关。

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

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

相关要求:PCI DSS v3.2.1/7.2.1、CIS 基金会基准 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 (15)、nist.800-53.r5 AC-3 (15)、nist.800-53.r5 AC-3 (15)、nist.800-53.r5 AC-3 (15) 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) Amazon

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

严重性:

资源类型: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

相关要求:PCI DSS v3.2.1/7.2.1、CIS Foundations 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 (15)、nist.800-53.r5 AC-3 (7)、nist.800-53.r5 AC-3 (7)、nist.800-53.r5 AC-3 (7)、nist.800-53.r5 AC-3 (7)、nist.800-53.r5 AC-3 (7)、nist.800-53.r5 AC-.800-53.r5 AC-6,nist.800-53.r5 AC-6 (3)

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

严重性:

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

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

计划类型:已触发变更

参数:

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

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

注意

Amazon Simple Email Service 创建的 IAM 用户是使用内联策略自动创建的。Security Hub 会自动将这些用户排除在此控制范围之外。

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

修复

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

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

相关要求:独联体 Amazon 基金会基准 v1.2.0/1.4、CIS 基金会基准 v1.4.0/1.14、nist.800-53.r5 AC-2 (1)、nist.800-53.r5 AC-2 (3)、nist.800-53.r5 AC-2 (3)、nist.800-53.r5 AC-3 (15) Amazon

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

严重性:

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

Amazon Config 规则:access-keys-rotated

计划类型:定期

参数:

  • maxAccessKeyAge90(不可自定义)

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

我们强烈建议您不要在账户中生成和删除所有访问密钥。相反,推荐的最佳做法是创建一个或多个 IAM 角色或通过使用合 Amazon IAM Identity Center。您可以使用这些方法来允许您的用户访问 Amazon Web Services Management Console 和 Amazon CLI。

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

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

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

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

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

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

注意

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

修复

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

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

相关要求:PCI DSS v3.2.1/2.1、PCI DSS v3.2.1/2.2、PCI DSS v3.2.1/7.2.1、CIS 基金会基准 v1.2.0/1.12、CIS Amazon 基金会基准 v1.4.0/1.4、nist.800-53.r5 AC-2 (1)、nist.800-53.r5 AC-3 (15)、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) Amazon

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

严重性:严重

资源类型:AWS::::Account

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

计划类型:定期

参数:

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

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

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

修复

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

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

相关要求:独联体 Amazon 基金会基准 v1.2.0/1.2、CIS 基金会基准 v1.4.0/1.10、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 (2)、nist.800-53.r5 IA-2 (2) 2 (6)、nist.800-53.r5 IA-2 (8) Amazon

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

严重性:

资源类型: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)

我们为符合条件的客户提供免费的 MFA 安全密钥。查看您是否符合资格,然后订购免费密钥

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

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

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

严重性:严重

资源类型:AWS::::Account

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

计划类型:定期

参数:

此控件会检查您 Amazon Web Services 账户 是否允许使用硬件多因素身份验证 (MFA) 设备使用根用户凭据登录。如果未启用 MFA 或者允许任何虚拟 MFA 设备使用根用户凭证登录,则控制失败。

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

基于时间的一次性密码(TOTP)和 Universal 2nd Factor (U2F) 令牌都可以作为硬件 MFA 选项。

修复

要为根用户添加硬件 MFA 设备,请参阅 IAM 用户指南中的为 Amazon Web Services 账户 根用户启用硬件 MFA 设备(控制台)

我们为符合条件的客户提供免费的 MFA 安全密钥。查看您是否符合资格,然后订购免费密钥

[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)。

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

严重性:

资源类型: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 Management Console,IAM 用户需要密码。作为最佳实践,Security Hub 强烈建议您使用联合身份验证,而不是创建 IAM 用户。联合身份验证允许用户使用其现有的公司凭证登录 Amazon Web Services Management Console。使用 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 用户凭证

相关要求:PCI DSS v3.2.1/8.1.4、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 (15)、nist.800-53.r5 AC-3 (15)、nist.800-53.r5 AC-3 (15)、nist.800-53.r5 AC-3 (15)、nist.800-53.r5 AC-3 (15)、nist.800-53.r5 AC-3 (15)、NIS800-53.r5 AC-3 (7)、nist.800-53.r5 AC-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

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

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

严重性:严重

资源类型:AWS::::Account

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

计划类型:定期

参数:

根用户拥有对 Amazon Web Services 账户中所有服务和资源的完全访问权限。MFA 在用户名和密码之上增加了一层额外的防护。启用 MFA 后,当用户登录时 Amazon Web Services Management Console,系统会提示他们输入用户名和密码以及从 MFA Amazon 设备输入身份验证码。

当您为根用户使用虚拟 MFA 时,CIS 建议使用的设备是个人设备。请改用与任何个人设备分开付费和保护的专用移动设备(平板电脑或手机)。这可降低因设备丢失、设备换购或拥有设备的个人离开公司而导致无法访问 MFA 的风险。

修复

要为根用户启用 MFA,请参阅《Amazon 账户管理参考指南》中的在 Amazon Web Services 账户 根用户上激活 MFA

[IAM.10] IAM 用户的密码策略应该有很长的持续时间 Amazon Config

相关要求: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)

修复

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

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

相关要求:独联体 Amazon 基金会基准 v1.2.0/1.5

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则:iam-password-policy

计划类型:定期

参数:

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

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

修复

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

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

相关要求:独联体 Amazon 基金会基准 v1.2.0/1.6

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则:iam-password-policy

计划类型:定期

参数:

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

修复

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

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

相关要求:独联体 Amazon 基金会基准 v1.2.0/1.7

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则:iam-password-policy

计划类型:定期

参数:

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

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

修复

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

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

相关要求:独联体 Amazon 基金会基准 v1.2.0/1.8

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则:iam-password-policy

计划类型:定期

参数:

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

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

修复

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

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

相关要求:独联体 Amazon 基金会基准 v1.2.0/1.9、CIS 基金会基准 v1.4.0/1.8 Amazon

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则:iam-password-policy

计划类型:定期

参数:

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

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

修复

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

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

相关要求:独联体 Amazon 基金会基准 v1.2.0/1.10、CIS 基金会基准 v1.4.0/1.9 Amazon

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则:iam-password-policy

计划类型:定期

参数:

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

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

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

修复

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

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

相关要求:独联体 Amazon 基金会基准 v1.2.0/1.11

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

严重性:

资源类型:AWS::::Account

Amazon Config 规则:iam-password-policy

计划类型:定期

参数:

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

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

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

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

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

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

修复

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

[IAM.18] 确保已创建支持角色来管理事件 Amazon Web Services Support

相关要求:独联体 Amazon 基金会基准 v1.2.0/1.20、CIS 基金会基准 v1.4.0/1.17 Amazon

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

严重性:

资源类型:AWS::::Account

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

计划类型:定期

参数:

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

  • policyUsageTypeANY(不可自定义)

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

创建一个 IAM 角色以允许授权用户管理与 Amazon Support 相关的事件。通过实施访问控制的最低权限,IAM 角色将需要相应的 IAM 策略来允许访问支持中心,以便管理事件 Amazon Web Services Support。

注意

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

修复

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

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

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

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

  4. 账户 Amazon Web Services 账户 ID 中,输入您要 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

相关要求: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)。

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

严重性:

资源类型: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 年 3 月取消此控件。有关更多信息,请参阅 Security Hub 控件的更改日志

相关要求:独联体 Amazon 基金会基准 v1.2.0/1.1

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

严重性:

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

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

计划类型:定期

参数:

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

  • Amazon Simple Notification Service(Amazon SNS)主题

  • Amazon CloudTrail 步道

  • 与 CloudTrail 跟踪关联的指标筛选器

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

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

  • 该账户中不存在任何 CloudTrail 跟踪。

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

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

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

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

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

  • 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 日志日志组的名称。您为该日志组创建指标筛选条件。

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

创建指标筛选条件和警报
  1. 打开 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/

  2. 在导航窗格中,选择 日志组

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

  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)

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

严重性:

资源类型: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 Service,中指定的操作除外NotAction

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

在向分配权限时 Amazon Web Services,务必在您的 IAM 策略中确定允许的 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 用户凭证

相关要求:独联体 Amazon 基金会基准 v1.4.0/1.12

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

严重性:

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

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

计划类型:定期

参数:

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

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

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

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

注意

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

修复

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

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

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