

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

# Security Hub CSPM 控件适用于 AWS Identity and Access Management
<a name="iam-controls"></a>

这些 AWS Security Hub CSPM 控制措施评估 AWS Identity and Access Management (IAM) 服务和资源。这些控件可能并非全部可用 AWS 区域。有关更多信息，请参阅 [按地区划分的控件可用性](securityhub-regions.md#securityhub-regions-control-support)。

## [IAM.1] IAM policy 不应允许完整的“\$1”管理权限
<a name="iam-1"></a>

**相关要求：**独联体 AWS 基金会基准 v1.2.0/1.22、CIS AWS 基金会基准 v1.4.0/1.16、、 NIST.800-53.r5 AC-2 (1)、、(15)、(7) NIST.800-53.r5 AC-2、、(10)、(2) NIST.800-53.r5 AC-3、 NIST.800-53.r5 AC-3 (3)、 NIST.800-53.r5 AC-3 (3)、nist.800-171.r2 3.1.4 NIST.800-53.r5 AC-5 NIST.800-53.r5 AC-6、 NIST.800-53.r5 AC-6 PCI DSS v3.2.1/7.2.1 NIST.800-53.r5 AC-6 NIST.800-53.r5 AC-6

**类别：**保护 > 安全访问管理

**严重性：**高

**资源类型：**`AWS::IAM::Policy`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/iam-policy-no-statements-with-admin-access.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-policy-no-statements-with-admin-access.html)

**计划类型：**已触发变更

**参数：**
+ `excludePermissionBoundaryPolicy: true`（不可自定义）

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

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

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

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

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

**注意**  
AWS Config 应在您使用 Security Hub CSPM 的所有区域中启用。但是，可以在单个区域启用全局资源记录。如果您仅在一个区域中记录全局资源，则可以在所有区域（记录全局资源的区域除外）中禁用此控件。

### 修复
<a name="iam-1-remediation"></a>

要修改 IAM policy 使其不允许完全的 "\$1" 管理权限，请参阅 *IAM 用户指南*中的[编辑 IAM policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html)。

## [IAM.2] IAM 用户不应附加 IAM policy
<a name="iam-2"></a>

**相关要求：**独联体 AWS 基金会基准 v5.0.0/1.14、独联体基金会基准 v3.0.0/1.15、CIS AWS 基金会基准 v1.2.0/1.16、、（1）、（15）、（7）、、 NIST.800-53.r5 AC-2（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.1.7、nist.800-171.r2 3.1.7 NIST.800-53.r5 AC-2、nist.800-171.r2 3.1.7 NIST.800-53.r5 AC-3、 NIST.800-53.r5 AC-3 nist.800-171.r2 3.1.7、 NIST.800-53.r5 AC-3 nist.800-171.r2 r2 3.3.9 NIST.800-53.r5 AC-6、 NIST.800-53.r5 AC-6 nist.800-171.r2 3.13.3、PCI AWS DSS v3.2.1/7.2.1

**类别：**保护 > 安全访问管理

**严重性：**低

**资源类型：**`AWS::IAM::User`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/iam-user-no-policies-check.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-user-no-policies-check.html)

**计划类型：**已触发变更

**参数：**无

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

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

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

### 修复
<a name="iam-2-remediation"></a>

要解决此问题，请[创建一个 IAM 群组](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_create.html)，并将该策略附加到该群组。然后，[将用户添加到组中](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_manage_add-remove-users.html)。策略将应用于组中的每一位用户。要删除直接附加到用户的策略，请参阅 *IAM 用户指南*中的[添加和删除 IAM 身份权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。

## [IAM.3] IAM 用户访问密钥应每 90 天或更短时间轮换一次
<a name="iam-3"></a>

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

**类别：**保护 > 安全访问管理

**严重性：**中 

**资源类型：**`AWS::IAM::User`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/access-keys-rotated.html](https://docs.aws.amazon.com/config/latest/developerguide/access-keys-rotated.html)

**计划类型：**定期

**参数：**
+ `maxAccessKeyAge`：`90`（不可自定义）

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

我们强烈建议您不要在账户中生成和删除所有访问密钥。相反，推荐的最佳做法是创建一个或多个 IAM 角色或通过使用[联](https://aws.amazon.com/identity/federation/)合 AWS IAM Identity Center。您可以使用这些方法来允许您的用户访问 AWS 管理控制台 和 AWS CLI。

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

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

要了解有关保护访问密钥和帐户的更多信息，请参阅中的[管理 AWS 访问密钥的最佳实践*AWS 一般参考*](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html)。另请参阅博客文章[《使用编程访问权限 AWS 账户 时保护您的指南》](https://aws.amazon.com/blogs/security/guidelines-for-protecting-your-aws-account-while-using-programmatic-access/)。

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

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

如果您的组织使用 AWS IAM Identity Center （IAM 身份中心），则您的用户可以登录 Active Directory、内置的 IAM 身份中心目录[或其他连接到 IAM 身份中心的身份提供商 (IdP)](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-idp.html)。然后可以将它们映射到一个 IAM 角色，使他们无需访问密钥即可运行 AWS CLI 命令或调用 AWS API 操作。要了解更多信息，请参阅*AWS Command Line Interface 用户指南 AWS IAM Identity Center*[中的配置 AWS CLI 以使用](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html)。

**注意**  
AWS Config 应在您使用 Security Hub CSPM 的所有区域中启用。但是，可以在单个区域启用全局资源记录。如果您仅在一个区域中记录全局资源，则可以在所有区域（记录全局资源的区域除外）中禁用此控件。

### 修复
<a name="iam-3-remediation"></a>

要轮换超过 90 天的访问密钥，请参阅 *IAM 用户指南*中的[轮换访问密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey)。对于任何**访问密钥有效期**超过 90 天的用户，请按照说明进行操作。

## [IAM.4] 不应存在 IAM 根用户访问密钥
<a name="iam-4"></a>

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

**类别：**保护 > 安全访问管理

**严重性：**严重 

**资源类型：**`AWS::::Account`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/iam-root-access-key-check.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-root-access-key-check.html)

**计划类型：**定期

**参数：**无

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

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

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

### 修复
<a name="iam-4-remediation"></a>

要删除根用户访问密钥，请参阅 *IAM 用户指南*中的[删除根用户的访问密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user_manage_delete-key)。要从中删除 root 用户访问密钥 AWS GovCloud (US)，请参阅用户*指南 AWS 账户 中的删除我的 AWS GovCloud (US) 账户 root AWS GovCloud (US) 用户*[访问密钥](https://docs.aws.amazon.com/govcloud-us/latest/UserGuide/govcloud-account-root-user.html#delete-govcloud-root-access-key)。

## [IAM.5] 应为拥有控制台密码的所有 IAM 用户启用 MFA
<a name="iam-5"></a>

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

**类别：**保护 > 安全访问管理

**严重性：**中

**资源类型：**`AWS::IAM::User`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/mfa-enabled-for-iam-console-access.html](https://docs.aws.amazon.com/config/latest/developerguide/mfa-enabled-for-iam-console-access.html)

**计划类型：**定期

**参数：**无

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

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

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

**注意**  
AWS Config 应在您使用 Security Hub CSPM 的所有区域中启用。但是，可以在单个区域启用全局资源记录。如果您仅在一个区域中记录全局资源，则可以在所有区域（记录全局资源的区域除外）中禁用此控件。

### 修复
<a name="iam-5-remediation"></a>

要为 IAM 用户添加 MFA，请参阅 *IAM 用户指南* 中的[在 AWS上使用多重身份验证（MFA）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html)。

## [IAM.6] 应该为根用户启用硬件 MFA
<a name="iam-6"></a>

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

**类别：**保护 > 安全访问管理

**严重性：**严重

**资源类型：**`AWS::::Account`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/root-account-hardware-mfa-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/root-account-hardware-mfa-enabled.html)

**计划类型：**定期

**参数：**无

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

虚拟 MFA 无法提供与硬件 MFA 设备相同的安全水平。我们建议您仅在等待硬件购买批准或等待硬件到达时使用虚拟 MFA 设备。要了解更多信息，请参阅《IAM 用户指南》**中的[分配虚拟 MFA 设备（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_enable_virtual.html)。

**注意**  
Security Hub CSPM 根据中是否存在根用户凭证（登录配置文件）来评估此控件。 AWS 账户在以下情况下，控件会生成 `PASSED` 调查发现：  
账户中存在根用户凭证，并且为根用户启用了硬件 MFA。
账户中不存在根用户凭证。
如果账户中存在根用户凭证，并且未为根用户启用硬件 MFA，则该控件会生成 `FAILED` 调查发现。

### 修复
<a name="iam-6-remediation"></a>

有关为根用户启用硬件 MFA 的信息，请参阅《IAM 用户指南》**中的 [AWS 账户根用户的多重身份验证](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-mfa-for-root.html)。

## [IAM.7] IAM 用户的密码策略应具有可靠的配置
<a name="iam-7"></a>

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

**类别：**保护 > 安全访问管理

**严重性：**中

**资源类型：**`AWS::::Account`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**计划类型：**定期

**参数：**


| 参数 | 说明 | Type | 允许的自定义值 | Security Hub CSPM 默认值 | 
| --- | --- | --- | --- | --- | 
|  `RequireUppercaseCharacters`  |  密码中要求至少包含一个大写字符  |  布尔值  |  `true` 或者 `false`  |  `true`  | 
|  `RequireLowercaseCharacters`  |  密码中要求至少包含一个小写字符  |  布尔值  |  `true` 或者 `false`  |  `true`  | 
|  `RequireSymbols`  |  密码中要求至少包含一个符号  |  布尔值  |  `true` 或者 `false`  |  `true`  | 
|  `RequireNumbers`  |  密码中要求至少包含一个数字  |  布尔值  |  `true` 或者 `false`  |  `true`  | 
|  `MinimumPasswordLength`  |  密码中的最少字符数  |  整数  |  `8` 到 `128`  |  `8`  | 
|  `PasswordReusePrevention`  |  在可以重复使用旧密码之前的密码轮换次数  |  整数  |  `12` 到 `24`  |  无默认值  | 
|  `MaxPasswordAge`  |  密码到期前的天数  |  整数  |  `1` 到 `90`  |  无默认值  | 

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

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

要了解有关身份提供商和联合身份验证的更多信息，请参阅 *IAM 用户指南中*的[身份提供程序和联合身份验证](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html)。要了解有关 IAM Identity Center 的更多信息，请参阅 [https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)。

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

### 修复
<a name="iam-7-remediation"></a>

要更新密码策略，请参阅《IAM 用户指南》**中的[为 IAM 用户设置账户密码策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)。

## [IAM.8] 应移除未使用的 IAM 用户凭证
<a name="iam-8"></a>

**相关要求：**CIS AWS 基金会基准 v1.2.0/1.3、、 NIST.800-53.r5 AC-2 (1)、(3)、(15) NIST.800-53.r5 AC-2、 NIST.800-53.r5 AC-3 (7)、、、 NIST.800-53.r5 AC-2 nist.800-171.r2 3.1.2 NIST.800-53.r5 AC-3、 NIST.800-53.r5 AC-3 PCI DSS v3.2.1/8.1.4、PCI DSS v4.0.1/8.2.6 NIST.800-53.r5 AC-6、PCI DSS v4.0.1/8.2.6

**类别：**保护 > 安全访问管理 

**严重性：**中 

**资源类型：**`AWS::IAM::User`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/iam-user-unused-credentials-check.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-user-unused-credentials-check.html)

**计划类型：**定期

**参数：**
+ `maxCredentialUsageAge`：`90`（不可自定义）

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

IAM 用户可以使用不同类型的证书（例如密码或访问密钥）访问 AWS 资源。

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

**注意**  
AWS Config 应在您使用 Security Hub CSPM 的所有区域中启用。但是，可以在单个区域启用全局资源记录。如果您仅在一个区域中记录全局资源，则可以在所有区域（记录全局资源的区域除外）中禁用此控件。

### 修复
<a name="iam-8-remediation"></a>

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

您还可以使用[凭证报告](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html#getting-credential-reports-console)来监控用户并识别那些连续 90 天或以上没有活动的用户。您可以从 IAM 控制台下载 `.csv` 格式的凭证报告。

确定非活动账户或未使用的凭证后，将其停用。有关说明，请参阅 *IAM 用户指南*中的[创建、变更或删除 IAM 用户密码（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_admin-change-user.html#id_credentials_passwords_admin-change-user_console)。

## [IAM.9] 应为根用户启用 MFA
<a name="iam-9"></a>

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

**类别：**保护 > 安全访问管理 

**严重性：**严重

**资源类型：**`AWS::::Account`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/root-account-mfa-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/root-account-mfa-enabled.html)

**计划类型：**定期

**参数：**无

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

的 IAM 根用户可以完全访问账户中的所有服务和资源。 AWS 账户 如果启用了 MFA，则用户必须从其 AWS MFA 设备输入用户名、密码和身份验证码才能登录。 AWS 管理控制台 MFA 在用户名和密码之上增加了一层额外防护。

在以下情况下，此控件会生成 `PASSED` 调查发现：
+ 账户中存在根用户凭证，并且为根用户启用了 MFA。
+ 账户中不存在根用户凭证。

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

### 修复
<a name="iam-9-remediation"></a>

*有关为的根用户启用 MFA 的信息 AWS 账户，请参阅《用户指南[》 AWS 账户根用户中的多重身份验证](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-mfa-for-root.html)。AWS Identity and Access Management *

## [IAM.10] IAM 用户的密码策略应具有很强的配置
<a name="iam-10"></a>

**相关要求：**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`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**计划类型：**定期

**参数：**无

此控件检查 IAM 用户的账户密码策略是否使用以下最低 PCI DSS 配置。
+ `RequireUppercaseCharacters`——密码中要求至少包含一个大写字符。（默认值 = `true`）
+ `RequireLowercaseCharacters`——密码中要求至少包含一个小写字符。（默认值 = `true`）
+ `RequireNumbers`——密码中要求至少包含一个数字。（默认值 = `true`）
+ `MinimumPasswordLength`——密码最小长度。（默认值 = 7 或更长）
+ `PasswordReusePrevention`——允许重用前的密码数。（默认值 = 4）
+ `MaxPasswordAge` – 密码到期前的天数。（默认值 = 90）

**注意**  
2025 年 5 月 30 日，Security Hub CSPM 从 PCI DSS v4.0.1 标准中删除了此控件。PCI DSS v4.0.1 现在要求密码至少包含 8 个字符。此控件继续适用于 PCI DSS v3.2.1 标准，该标准具有不同的密码要求。  
要根据 PCI DSS v4.0.1 要求评估账户密码策略，可以使用 [IAM.7 控件](#iam-7)。此控件要求密码至少包含 8 个字符。它还对密码长度和其他参数支持自定义值。IAM.7 控件是 Security Hub CSPM 中 PCI DSS v4.0.1 标准的一部分。

### 修复
<a name="iam-10-remediation"></a>

要更新您的密码策略以使用推荐的配置，请参阅 *IAM 用户指南*中的[为 IAM 用户设置账户密码策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)。

## [IAM.11] 确保 IAM 密码策略要求包含至少一个大写字母
<a name="iam-11"></a>

**相关要求：**CIS AWS 基金会基准 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、PCI DSS v4.0.1/8.6.3

**类别：**保护 > 安全访问管理 

**严重性：**中

**资源类型：**`AWS::::Account`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**计划类型：**定期

**参数：**无

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

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

### 修复
<a name="iam-11-remediation"></a>

要变更密码策略，请参阅 *IAM 用户指南*中的[为 IAM 用户设置账户密码策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)。对于**密码强度**，选择**需要至少一个拉丁字母表中的大写字母（A–Z）**。

## [IAM.12] 确保 IAM 密码策略要求包含至少一个小写字母
<a name="iam-12"></a>

**相关要求：**CIS AWS 基金会基准 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、PCI DSS v4.0.1/8.6.3

**类别：**保护 > 安全访问管理 

**严重性：**中

**资源类型：**`AWS::::Account`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**计划类型：**定期

**参数：**无

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

### 修复
<a name="iam-12-remediation"></a>

要变更密码策略，请参阅 *IAM 用户指南*中的[为 IAM 用户设置账户密码策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)。对于**密码强度**，选择**需要至少一个拉丁字母表中的小写字母（A–Z）**。

## [IAM.13] 确保 IAM 密码策略要求包含至少一个符号
<a name="iam-13"></a>

**相关要求：**独联体 AWS 基金会基准 v1.2.0/1.7、nist.800-171.r2 3.5.7

**类别：**保护 > 安全访问管理

**严重性：**中

**资源类型：**`AWS::::Account`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**计划类型：**定期

**参数：**无

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

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

### 修复
<a name="iam-13-remediation"></a>

要变更密码策略，请参阅 *IAM 用户指南*中的[为 IAM 用户设置账户密码策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)。对于**密码强度**，选择**需要至少一个非字母数字字符**。

## [IAM.14] 确保 IAM 密码策略要求包含至少一个数字
<a name="iam-14"></a>

**相关要求：**CIS AWS 基金会基准 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、PCI DSS v4.0.1/8.6.3

**类别：**保护 > 安全访问管理

**严重性：**中

**资源类型：**`AWS::::Account`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**计划类型：**定期

**参数：**无

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

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

### 修复
<a name="iam-14-remediation"></a>

要变更密码策略，请参阅 *IAM 用户指南*中的[为 IAM 用户设置账户密码策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)。对于**密码强度**，选择**需要至少一个数字**。

## [IAM.15] 确保 IAM 密码策略要求最短密码长度不低于 14
<a name="iam-15"></a>

**相关要求：**独联体 AWS 基金会基准 v5.0.0/1.7、独联体基金会基准 v3.0.0/1.8、独联体 AWS 基金会基准 v1.4.0/1.8、独联体基金会基准 v1.2.0/1.9、nist.800 AWS -171.r2 3.5.7 AWS 

**类别：**保护 > 安全访问管理

**严重性：**中

**资源类型：**`AWS::::Account`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**计划类型：**定期

**参数：**无

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

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

### 修复
<a name="iam-15-remediation"></a>

要变更密码策略，请参阅 *IAM 用户指南*中的[为 IAM 用户设置账户密码策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)。对于**密码最小长度**，请输入 **14** 或更大的数字。

## [IAM.16] 确保 IAM 密码策略阻止重复使用密码
<a name="iam-16"></a>

**相关要求：**独联体 AWS 基金会基准 v5.0.0/1.8、独联体基金会基准 v3.0.0/1.9、独联体 AWS 基金会基准 v1.4.0/1.9、独联体基金会基准 v1.2.0/1.10、nist.800 AWS -171.r2 3.5.8、PCI DSS v4.0.1/8.3.7 AWS 

**类别：**保护 > 安全访问管理

**严重性：**低

**资源类型：**`AWS::::Account`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**计划类型：**定期

**参数：**无

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

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

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

### 修复
<a name="iam-16-remediation"></a>

要变更密码策略，请参阅 *IAM 用户指南*中的[为 IAM 用户设置账户密码策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)。在**防止密码重复使用**中，输入 **24**。

## [IAM.17] 确保 IAM 密码策略使密码在 90 天或更短时间内失效
<a name="iam-17"></a>

**相关要求：**CIS AWS 基金会基准 v1.2.0/1.11、PCI DSS v4.0.1/8.3.9、PCI DSS v4.0.1/8.10.1

**类别：**保护 > 安全访问管理

**严重性：**低

**资源类型：**`AWS::::Account`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**计划类型：**定期

**参数：**无

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

CIS 建议密码策略在 90 天或更短时间后使密码失效。缩短密码生存期可提高账户抵抗暴力登录尝试的弹性。在以下情况下，要求定期更改密码也是非常有用的：
+ 密码可能会在您不知情的情况下被窃取或泄露。系统遭受攻击、软件漏洞或内部威胁都可能导致发生这种情况。
+ 某些公司和政府的 Web 筛选条件或代理服务器能够拦截和记录流量（即使流量已加密）。
+ 很多用户对于许多系统（例如工作系统、电子邮件和个人系统）都使用相同的密码。
+ 遭受攻击的最终用户工作站可能存在击键记录器。

### 修复
<a name="iam-17-remediation"></a>

要变更密码策略，请参阅 *IAM 用户指南*中的[为 IAM 用户设置账户密码策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)。对于**开启密码到期**，请输入 **90** 或一个较小的数字。

## [IAM.18] 确保已创建支持角色来管理事件 AWS 支持
<a name="iam-18"></a>

**相关要求：**独联体 AWS 基金会基准 v5.0.0/1.16、独联体基金会基准 v3.0.0/1.17、独联体基金会基准 v1.4.0/1.17、独联体 AWS 基金会基准 v1.2.0/1.20、nist.800-171.r2 3.1.2、 AWS PCI DSS v4.0.1/12.10.3 AWS 

**类别：**保护 > 安全访问管理

**严重性：**低

**资源类型：**`AWS::::Account`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/iam-policy-in-use.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-policy-in-use.html)

**计划类型：**定期

**参数：**
+ `policyARN`：`arn:partition:iam::aws:policy/AWSSupportAccess`（不可自定义）
+ `policyUsageType`：`ANY`（不可自定义）

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

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

**注意**  
AWS Config 应在您使用 Security Hub CSPM 的所有区域中启用。但是，可以在单个区域启用全局资源记录。如果您仅在一个区域中记录全局资源，则可以在所有区域（记录全局资源的区域除外）中禁用此控件。

### 修复
<a name="iam-18-remediation"></a>

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

**创建用于 支持 访问的角色**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在 IAM 导航窗格中，选择**角色**，然后选择**创建角色**。

1. 对于**角色类型**，选择**其他 AWS 账户**。

1. 在**账户 AWS 账户 ID** 中，输入您要 AWS 账户 向其授予资源访问权限的 ID。

   如果将代入此角色的用户或组位于同一账户中，则输入本地账户号码。
**注意**  
指定账户的管理员可向该账户中的任何用户授予代入该角色的权限。为此，管理员需要将策略附加到用户或组来授予 `sts:AssumeRole` 操作的权限。在该策略中，资源必须是角色 ARN。

1. 选择**下一步: 权限**。

1. 搜索托管策略 `AWSSupportAccess`。

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

1. 选择**下一步：标签**。

1. （可选）要将元数据添加到角色，将标签附加为键值对。

   有关在 IAM 中使用标签的更多信息，请参阅 *IAM 用户指南*中的[标记 IAM 用户和角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)。

1. 选择**下一步：审核**。

1. 对于 **Role name (角色名称)**，为您的角色输入一个名称。

   角色名称在您的角色中必须是唯一的 AWS 账户。它们不区分大小写。

1. （可选）对于**角色描述**，输入新角色的描述。

1. 检查该角色，然后选择**创建角色**。

## [IAM.19] 应为所有 IAM 用户启用 MFA
<a name="iam-19"></a>

**相关要求：** NIST.800-53.r5 AC-2(1)、(15)、(1)、(2)、 NIST.800-53.r5 AC-3 (6)、(8)、 NIST.800-53.r5 IA-2 nist.800-171.r2 3.8、 NIST.800-53.r5 IA-2 nist.800-171.r2 3.5.3、 NIST.800-53.r5 IA-2 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.3.1、PCI DSS v4.0.1/8.3.1 4.2， NIST.800-53.r5 IA-2

**类别：**保护 > 安全访问管理

**严重性：**中

**资源类型：**`AWS::IAM::User`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/iam-user-mfa-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-user-mfa-enabled.html)

**计划类型：**定期

**参数：**无

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

**注意**  
AWS Config 应在您使用 Security Hub CSPM 的所有区域中启用。但是，可以在单个区域启用全局资源记录。如果您仅在一个区域中记录全局资源，则可以在所有区域（记录全局资源的区域除外）中禁用此控件。

### 修复
<a name="iam-19-remediation"></a>

要为 IAM 用户添加 MFA，请参阅 *IAM 用户指南*中的[为用户启用 AWS中 MFA 设备](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_enable.html)。

## [IAM.20] 避免使用根用户
<a name="iam-20"></a>

**重要**  
Security Hub CSPM 于 2024 年 4 月取消了该控制权。有关更多信息，请参阅 [Security Hub CSPM 控件的更改日志](controls-change-log.md)。

**相关要求：**独联体 AWS 基金会基准 v1.2.0/1.1

**类别：**保护 > 安全访问管理

**严重性：**低

**资源类型：**`AWS::IAM::User`

**AWS Config 规则:**`use-of-root-account-test`（自定义 Security Hub CSPM 规则）

**计划类型：**定期

**参数：**无

此控件检查是否对 root 用户的使用有限制。 AWS 账户 该控件评估以下资源：
+ Amazon Simple Notification Service（Amazon SNS）主题
+ AWS 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 主题发送消息的限制](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html)。
+ SNS 主题没有至少一个订阅用户。

如果以下一条或多条陈述为真，则此检查的控件状态为 `NO_DATA`：
+ 多区域跟踪基于不同区域。Security Hub CSPM 只能在跟踪所在的区域生成调查结果。
+ 多区域跟踪属于不同的账户。Security Hub CSPM 只能为拥有跟踪的账户生成调查结果。

如果以下一条或多条陈述为真，则此检查的控件状态为 `WARNING`：
+ 当前账号不拥有 CloudWatch 警报中提及的 SNS 话题。
+ 调用 `ListSubscriptionsByTopic` SNS API 时，当前账号无权访问 SNS 主题。

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

作为最佳实践，仅在需要[执行账户和服务管理任务](https://docs.aws.amazon.com/general/latest/gr/aws_tasks-that-require-root.html)时才使用根用户凭证。将 IAM policy 直接应用于组和角色，但不应用于用户。有关设置日常使用管理员的说明，请参阅 *IAM 用户指南*中的[创建第一个 IAM 管理员用户和组](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html)。

### 修复
<a name="iam-20-remediation"></a>

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

**创建 Amazon SNS 主题**

1. [在 v3/home 上打开亚马逊 SNS 控制台。https://console.aws.amazon.com/sns/](https://console.aws.amazon.com/sns/v3/home)

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

   为该主题创建至少一个订阅者。有关更多信息，请参阅 *Amazon Simple Notification Service 开发人员指南*中的 [Amazon SNS 入门](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html#CreateTopic)。

接下来，设置 CloudTrail 一个适用于所有地区的活动。为此，请按照[[CloudTrail.1] CloudTrail 应启用并配置至少一条包含读写管理事件的多区域跟踪](cloudtrail-controls.md#cloudtrail-1)中的修复步骤进行操作。

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

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

**创建指标筛选条件和警报**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航窗格中，选择**日志组**。

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

1. 从**操作**中，选择**创建指标筛选条件**。

1. 在**定义模式**下，请执行以下操作：

   1. 复制以下模式，然后将其粘贴到**筛选模式**字段中。

      ```
      {$.userIdentity.type="Root" && $.userIdentity.invokedBy NOT EXISTS && $.eventType !="AwsServiceEvent"}
      ```

   1. 选择**下一步**。

1. 在**分配指标**下，执行以下操作：

   1. 在**筛选条件名称**中，输入指标筛选条件的名称。

   1. 对于**指标命名空间**，输入 **LogMetrics**。

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

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

   1. 对于 **Metric value（指标值）**，输入 **1**。

   1. 选择**下一步**。

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

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

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

1. 在**指定指标和条件**下，执行以下操作：

   1. 在**条件**下，对于**阈值**，选择**静态**。

   1. 对于**定义警报条件**，选择**大于/等于**。

   1. **在定义阈值**中输入 **1**。

   1. 选择**下一步**。

1. 在**配置操作**下，执行以下操作：

   1. 在**警报状态**触发下，选择**在警报中**。

   1. 在**选择 SNS 主题**下，选择**选择现有的 SNS 主题**。

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

   1. 选择**下一步**。

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

1. 在**预览并创建**下，查看警报配置。然后选择**创建警报**。

## [IAM.21] 您创建的 IAM 客户托管策略不应允许对服务执行通配符操作
<a name="iam-21"></a>

**相关要求：** NIST.800-53.r5 AC-2、 NIST.800-53.r5 AC-2 (1)、(15)、(7)、、、(10)、(2)、 NIST.800-53.r5 AC-3 (3) NIST.800-53.r5 AC-3、nist.800-171.r2 3.1.1、 NIST.800-53.r5 AC-3 nist.800-171.r2 3.1.2 NIST.800-53.r5 AC-5、nist.800-171.r2 3.1.5 NIST.800-53.r5 AC-6、 NIST.800-53.r5 AC-6 nist.800-171.r2 3.1.5、 NIST.800-53.r5 AC-6 nist.800-171.r2 3.8、 NIST.800-53.r5 AC-6 nist.800-171.r2 3.8、nist.800-171.r2 3.8、nist.800-171.r2 3.8、nist.800-171.r2 3.800 -171.r2 3.9、nist.800-171.r2 3.13.3、nist.800-171.r2 3.13.4

**类别：**检测 > 安全访问管理 

**严重性：**低

**资源类型：**`AWS::IAM::Policy`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/iam-policy-no-statements-with-full-access.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-policy-no-statements-with-full-access.html)

**计划类型：**已触发变更

**参数：**
+ `excludePermissionBoundaryPolicy`：`True`（不可自定义）

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

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

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

如果 `"Effect": "Allow"` 与 `"NotAction": "service:*"` 配合使用，控制也会失败。在这种情况下，`NotAction`元素提供对中所有操作的访问权限 AWS 服务，中指定的操作除外`NotAction`。

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

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

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

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

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

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

**注意**  
AWS Config 应在您使用 Security Hub CSPM 的所有区域中启用。但是，可以在单个区域启用全局资源记录。如果您仅在一个区域中记录全局资源，则可以在所有区域（记录全局资源的区域除外）中禁用此控件。

### 修复
<a name="iam-21-remediation"></a>

要修复此问题，请更新 IAM policy，使其不允许完全的 "\$1" 管理权限。有关如何编辑 IAM policy 的详细信息，请参阅 *IAM 用户指南*中的[编辑 IAM policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html)。

## [IAM.22] 应移除在 45 天内未使用的 IAM 用户凭证
<a name="iam-22"></a>

**相关要求：**独联体 AWS 基金会基准 v5.0.0/1.11、独联体基金会基准 v3.0.0/1.12、独联体 AWS 基金会基准 v1.4.0/1.12、nist.800-171.r2 3.1.2 AWS 

**类别：**保护 > 安全访问管理

**严重性：**中

**资源类型：**`AWS::IAM::User`

**AWS Config 规则：[https://docs.aws.amazon.com/config/latest/developerguide/iam-user-unused-credentials-check.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-user-unused-credentials-check.html)**

**计划类型：**定期

**参数：**无

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

用户可以使用不同类型的凭证（例如密码或访问密钥）访问 AWS 资源。

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

此控件的 AWS Config 规则使用[https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetCredentialReport.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetCredentialReport.html)和 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateCredentialReport.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateCredentialReport.html)API 操作，它们仅每四小时更新一次。对 IAM 用户的更改最多可能需要四小时才能对此控件显示。

**注意**  
AWS Config 应在您使用 Security Hub CSPM 的所有区域中启用。但是，您可以启用在单个区域中记录全局资源。如果您仅在一个区域中记录全局资源，则可以在所有区域（记录全局资源的区域除外）中禁用此控件。

### 修复
<a name="iam-22-remediation"></a>

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

您还可以使用[凭证报告](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html#getting-credential-reports-console)来监控用户并识别那些连续 45 天或以上没有活动的用户。您可以从 IAM 控制台下载 `.csv` 格式的凭证报告。

确定非活动账户或未使用的凭证后，将其停用。有关说明，请参阅 *IAM 用户指南*中的[创建、变更或删除 IAM 用户密码（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_admin-change-user.html#id_credentials_passwords_admin-change-user_console)。

## [IAM.23] 应标记 IAM Access Analyzer 分析器
<a name="iam-23"></a>

**类别：**识别 > 清单 > 标记

**严重性：**低

**资源类型：**`AWS::AccessAnalyzer::Analyzer`

**AWS Config 规则:**`tagged-accessanalyzer-analyzer`（自定义 Security Hub CSPM 规则）

**计划类型：**已触发变更

**参数：**


| 参数 | 说明 | Type | 允许的自定义值 | Security Hub CSPM 默认值 | 
| --- | --- | --- | --- | --- | 
|  requiredTagKeys  | 被评估资源必须包含的非系统标签键列表。标签键区分大小写。 | StringList （最多 6 件商品）  | 1-6 个符合 [AWS 要求](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions)的标签键。 |  No default value  | 

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

标签是您分配给 AWS 资源的标签，它由密钥和可选值组成。您可以创建标签，以按用途、所有者、环境或其他标准对资源进行分类。标签可帮助您识别、组织、搜索和筛选资源。使用标签进行标记还可以帮助您跟踪负责操作和通知的资源所有者。使用标签进行标记时，可以将基于属性的访问权限控制（ABAC）作为授权策略实施，该策略根据标签来定义权限。您可以向 IAM 实体（用户或角色）和 AWS 资源附加标签。您可以为 IAM 主体创建单个 ABAC 策略或者一组单独的策略。您可以将这些 ABAC 策略设计为允许在主体的标签与资源标签匹配时进行操作。有关更多信息，请参阅 [ABAC 有什么用 AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)？ 在 *IAM 用户指南*中。

**注意**  
请勿在标签中添加个人身份信息（PII）或者其他机密或敏感信息。许多人都可以访问标签 AWS 服务，包括 AWS Billing。有关更多标记最佳做法，请参阅中的为[AWS 资源添加标签](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices)。*AWS 一般参考*

### 修复
<a name="iam-23-remediation"></a>

要向分析器添加标签，请参阅《AWS IAM Access Analyzer API Reference》**中的 [https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_TagResource.html](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_TagResource.html)。

## [IAM.24] 应标记 IAM 角色
<a name="iam-24"></a>

**类别：**识别 > 清单 > 标记

**严重性：**低

**资源类型：**`AWS::IAM::Role`

**AWS Config 规则:**`tagged-iam-role`（自定义 Security Hub CSPM 规则）

**计划类型：**已触发变更

**参数：**


| 参数 | 说明 | Type | 允许的自定义值 | Security Hub CSPM 默认值 | 
| --- | --- | --- | --- | --- | 
|  requiredTagKeys  | 被评估资源必须包含的非系统标签键列表。标签键区分大小写。 | StringList （最多 6 件商品）  | 1-6 个符合 [AWS 要求](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions)的标签键。 |  No default value  | 

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

标签是您分配给 AWS 资源的标签，它由密钥和可选值组成。您可以创建标签，以按用途、所有者、环境或其他标准对资源进行分类。标签可帮助您识别、组织、搜索和筛选资源。使用标签进行标记还可以帮助您跟踪负责操作和通知的资源所有者。使用标签进行标记时，可以将基于属性的访问权限控制（ABAC）作为授权策略实施，该策略根据标签来定义权限。您可以向 IAM 实体（用户或角色）和 AWS 资源附加标签。您可以为 IAM 主体创建单个 ABAC 策略或者一组单独的策略。您可以将这些 ABAC 策略设计为允许在主体的标签与资源标签匹配时进行操作。有关更多信息，请参阅 [ABAC 有什么用 AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)？ 在 *IAM 用户指南*中。

**注意**  
请勿在标签中添加个人身份信息（PII）或者其他机密或敏感信息。许多人都可以访问标签 AWS 服务，包括 AWS Billing。有关更多标记最佳做法，请参阅中的为[AWS 资源添加标签](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices)。*AWS 一般参考*

### 修复
<a name="iam-24-remediation"></a>

要向 IAM 角色添加标签，请参阅《IAM 用户指南》**中的[为 IAM 资源添加标签](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)。

## [IAM.25] 应标记 IAM 用户
<a name="iam-25"></a>

**类别：**识别 > 清单 > 标记

**严重性：**低

**资源类型：**`AWS::IAM::User`

**AWS Config 规则:**`tagged-iam-user`（自定义 Security Hub CSPM 规则）

**计划类型：**已触发变更

**参数：**


| 参数 | 说明 | Type | 允许的自定义值 | Security Hub CSPM 默认值 | 
| --- | --- | --- | --- | --- | 
|  requiredTagKeys  | 被评估资源必须包含的非系统标签键列表。标签键区分大小写。 | StringList （最多 6 件商品）  | 1-6 个符合 [AWS 要求](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions)的标签键。 |  No default value  | 

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

标签是您分配给 AWS 资源的标签，它由密钥和可选值组成。您可以创建标签，以按用途、所有者、环境或其他标准对资源进行分类。标签可帮助您识别、组织、搜索和筛选资源。使用标签进行标记还可以帮助您跟踪负责操作和通知的资源所有者。使用标签进行标记时，可以将基于属性的访问权限控制（ABAC）作为授权策略实施，该策略根据标签来定义权限。您可以向 IAM 实体（用户或角色）和 AWS 资源附加标签。您可以为 IAM 主体创建单个 ABAC 策略或者一组单独的策略。您可以将这些 ABAC 策略设计为允许在主体的标签与资源标签匹配时进行操作。有关更多信息，请参阅 [ABAC 有什么用 AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)？ 在 *IAM 用户指南*中。

**注意**  
请勿在标签中添加个人身份信息（PII）或者其他机密或敏感信息。许多人都可以访问标签 AWS 服务，包括 AWS Billing。有关更多标记最佳做法，请参阅中的为[AWS 资源添加标签](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices)。*AWS 一般参考*

### 修复
<a name="iam-25-remediation"></a>

要向 IAM 用户添加标签，请参阅《IAM 用户指南》**中的[为 IAM 资源添加标签](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)。

## [IAM.26] 应移除 IAM 中管理的过期 SSL/TLS 证书
<a name="iam-26"></a>

**相关要求：**独联体 AWS 基金会基准 v5.0.0/1.18、独联体基金会基准 v3.0.0/1.19 AWS 

**类别：**标识 > 合规性

**严重性：**中

**资源类型：**`AWS::IAM::ServerCertificate`

**AWS Config 规则：[https://docs.aws.amazon.com/config/latest/developerguide/iam-server-certificate-expiration-check.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-server-certificate-expiration-check.html)**

**计划类型：**定期

**参数：**无

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

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

### 修复
<a name="iam-26-remediation"></a>

要从 IAM 中删除服务器证书，请参阅《IAM 用户指南》**中的[在 IAM 中管理服务器证书](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)。

## [IAM.27] IAM 身份不应附加策略 AWSCloud ShellFullAccess
<a name="iam-27"></a>

**相关要求：**独联体 AWS 基金会基准 v5.0.0/1.21、CIS 基金会基准 v3.0.0/1.22 AWS 

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

**严重性：**中

**资源类型：**`AWS::IAM::Role`、`AWS::IAM::User`、`AWS::IAM::Group`

**AWS Config 规则：[https://docs.aws.amazon.com/config/latest/developerguide/iam-policy-blacklisted-check.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-policy-blacklisted-check.html)**

**计划类型：**已触发变更

**参数：**
+ “policyarns”：“arn: aws: iam:: aws:” policy/AWSCloudShellFullAccess,arn:aws-cn:iam::aws:policy/AWSCloudShellFullAccess, arn:aws-us-gov:iam::aws:policy/AWSCloudShellFullAccess

此控件检查 IAM 身份（用户、角色或群组）是否`AWSCloudShellFullAccess`附加了 AWS 托管策略。如果 IAM 身份附加了 `AWSCloudShellFullAccess` 策略，则此控件将失败。

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

### 修复
<a name="iam-27-remediation"></a>

要将 `AWSCloudShellFullAccess` 策略与 IAM 身份分离，请参阅《IAM 用户指南》**中的[添加和删除 IAM 身份权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。

## [IAM.28] 应启用 IAM Access Analyzer 外部访问分析器
<a name="iam-28"></a>

**相关要求：**独联体 AWS 基金会基准 v5.0.0/1.19、CIS 基金会基准 v3.0.0/1.20 AWS 

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

**严重性：**高

**资源类型：**`AWS::AccessAnalyzer::Analyzer`

**AWS Config 规则：[https://docs.aws.amazon.com/config/latest/developerguide/iam-external-access-analyzer-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-external-access-analyzer-enabled.html)**

**计划类型：**定期

**参数：**无

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

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

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

### 修复
<a name="iam-28-remediation"></a>

有关在特定区域启用外部访问分析器的信息，请参阅《IAM 用户指南》**中的[开始使用 IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html)。您必须在要监控资源访问情况的每个区域中启用一个分析器。