修复 IAM 用户的暴露 - AmazonSecurity Hub
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

修复 IAM 用户的暴露

AmazonSecurity Hub 可以为 Amazon Identity and Access Management (IAM) 用户生成曝光结果。

在 Security Hub 控制台上,暴露调查发现中涉及的 IAM 用户及其识别信息列在调查发现详细信息的资源部分中。通过编程方式,您可以通过 Security Hub CSP GetFindingsV2M API 的操作来检索资源详细信息。

在确定暴露调查发现中涉及的资源后,如果不需要该资源,您可以将其删除。删除不必要的资源可以减少您的曝光概况和Amazon成本。如果资源至关重要,请按照这些建议的修复步骤进行操作以帮助降低风险。修复主题根据特征的类型进行划分。

单个暴露调查发现包含在多个修复主题中发现的问题。相反,您只需解决一个修复主题即可解决暴露调查发现并降低其严重性级别。您的风险修复方法取决于您的组织要求和工作负载。

注意

本主题中提供的补救指南可能需要在其他Amazon资源中进行进一步的咨询。

IAM 最佳实践建议您创建 IAM 角色或使用与身份提供商的联合身份验证,以便使用临时凭证访问 Amazon,而不是创建单独的 IAM 用户。如果这对您的组织和使用案例来说是一个选择,我们建议您切换到角色或联合身份验证,而不是使用 IAM 用户。有关更多信息,请参阅 IAM 用户指南中的 IAM 用户

IAM 用户的错误配置特征

以下是 IAM 用户的错误配置特征和建议的修复步骤。

IAM 用户拥有具有管理访问权限的策略

IAM 策略在 IAM 用户访问资源时会向其授予一组权限。管理策略为 IAM 用户提供了访问Amazon服务和资源的广泛权限。如果凭证遭到泄露,提供完整的管理权限而不是用户所需的最低权限,可能会扩大攻击范围。根据标准安全原则,Amazon 建议您授予最低权限,这意味着您仅授予执行任务所需的权限。

  1. 查看和识别管理策略 – 在资源 ID 中,识别 IAM 角色名称。前往 IAM 控制面板,然后选择已识别的角色。查看附加到 IAM 用户的权限策略。如果该策略是Amazon托管策略,请查找AdministratorAccessIAMFullAccess。否则,在策略文档中,查找包含具有 "Action": "*" 而不是 "Resource": "*""Effect": "Allow" 语句的语句。

  2. 实施最低权限访问 – 将服务管理策略替换为仅授予用户运行所需的特定权限的策略。有关 IAM 策略的安全最佳实践的更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的应用最低权限许可。要识别不必要的权限,您可以使用 IAM Access Analyzer 来了解如何基于访问历史记录修改策略。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的外部和未使用的访问的调查发现

  3. 安全配置注意事项 – 如果实例需要服务管理权限,请考虑实施以下额外安全控制措施来降低风险:

    • 多重身份验证(MFA)– MFA 通过要求其他形式的身份验证来增加额外安全保障。即使凭证遭到泄露,这也有助于防止未经授权的访问。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的需要多重身份验证(MFA)

    • IAM 条件 – 通过设置条件元素,您可以基于源 IP 或 MFA 期限等因素限制何时以及如何使用管理权限。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的使用 IAM 策略中的条件进一步限制访问权限

    • 权限边界 – 权限边界规定了角色可以拥有的最大权限,为具有管理访问权限的角色提供防护。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的使用权限边界在账户内委派权限管理

IAM 用户未启用 MFA

多重身份验证(MFA)在用户名和密码之上增加了一层额外的防护。启用 MFA 并且 IAM 用户登录Amazon网站后,系统会提示他们输入用户名、密码和来自其 MFA Amazon 设备的身份验证码。身份验证委托人必须拥有发放具有时效性的密钥的设备,并且必须知道凭证。如果没有 MFA,如果用户的密码被泄露,攻击者就会获得对用户权限的Amazon完全访问权限。按照标准安全原则,Amazon建议为所有具有Amazon Web Services 管理控制台访问权限的账户和用户启用 MFA。

查看 MFA 类型

Amazon支持以下 MFA 类型

  • 密钥和安全密钥

  • 虚拟身份验证器应用程序

  • 硬件 TOTP 令牌

虽然使用物理设备进行身份验证通常能提供更严格的安全保护,但使用任何类型的 MFA 比禁用 MFA 更安全。

启用 MFA

要启用符合您要求的 MFA 类型,请参阅《IAM 用户指南》中的 IAM 中的 Amazon 多重身份验证。请按照要实施的特定 MFA 类型的步骤进行操作。对于管理许多用户的组织,您可能需要强制使用 MFA,要求访问敏感资源时必须进行 MFA 验证。

IAM 用户拥有拥有管理权限的策略 Amazon Web Services 服务

服务管理员策略为 IAM 用户提供了在特定Amazon服务中执行所有操作的权限。这些策略通常包含用户履行其工作职能不需要的权限。如果向 IAM 用户提供服务管理员权限,而不是所需的最低权限集,一旦凭证遭到泄露,就会扩大攻击范围。根据标准安全原则,Amazon 建议您授予最低权限,这意味着您仅授予执行任务所需的权限。

查看和识别服务管理员策略

资源 ID 中,识别 IAM 角色名称。前往 IAM 控制面板,然后选择已识别的角色。查看附加到 IAM 用户的权限策略。如果策略是 AWS 托管式策略,请查找 AdministratorAccessIAMFullAccess。否则,在策略文档中,查找包含 "Effect": "Allow" with "Action": "*" over "Resource": "*" 语句的语句。

实施最低权限访问

将服务管理策略替换为仅授予用户运行所需的特定权限的策略。要识别不必要的权限,您可以使用 IAM Access Analyzer 来了解如何基于访问历史记录修改策略。

安全配置注意事项

如果实例需要服务管理权限,请考虑实施以下额外安全控制措施来降低风险:

  • MFA 通过要求其他形式的身份验证来增加额外安全保障。即使凭证遭到泄露,这也有助于防止未经授权的访问。

  • 使用条件元素基于源 IP 或 MFA 期限等因素限制何时以及如何使用管理权限。

  • 使用权限边界规定角色可以拥有的最大权限,为具有管理访问权限的角色提供防护。

IAM 用户的Amazon账户的密码策略较弱

密码策略通过强制执行 IAM 用户密码的最低复杂度要求,帮助防止未经授权的访问。如果没有严格的密码策略,用户账户可能因密码猜测或暴力攻击而遭到入侵的风险就会增加。遵循标准的安全原则,Amazon建议实施严格的密码策略,以确保用户创建难以猜测的复杂密码。

配置严格的密码策略

前往 IAM 控制面板并导航到“账户设置”。查看账户的当前密码策略设置,包括最小长度、所需的字符类型以及密码过期设置。

在设置密码策略时,Amazon建议至少遵循以下最佳实践:

  • 至少需要一个大写字符。

  • 至少需要一个小写字符。

  • 至少需要一个符号。

  • 至少需要一个数字。

  • 至少需要八个字符。

其它安全注意事项

除了严格的密码策略外,请考虑以下其他安全措施:

  • MFA 通过要求其他形式的身份验证来增加额外安全保障。即使凭证遭到泄露,这也有助于防止未经授权的访问。

  • 设置条件元素基于源 IP 或 MFA 期限等因素限制何时以及如何使用管理权限。

IAM 用户拥有未使用的凭证

未使用的证书,包括在 90 天或更长时间内处于非活动状态的密码和访问密钥,会对您的Amazon环境构成安全风险。这些未使用的凭证会为攻击者创造潜在攻击向量,并增加您组织的整体攻击面。按照安全最佳实践,Amazon建议停用或删除 90 天或更长时间内未使用的凭证,以减少攻击面。

停用或移除未使用的凭证

在暴露调查发现中,打开资源。这将打开用户详细信息窗口。在对未使用的凭证采取行动之前,请评测其对您的环境可能造成的影响。未经适当评测而移除凭证可能会扰乱后台进程、计划的作业等。请考虑在永久移除之前设定一个短暂停用期,以验证移除未使用的凭证的影响。

请根据凭证类型采取适当的措施:

  • 对于未使用的控制台密码,请考虑先更改密码并暂时停用该密码。如果没有出现问题,请继续永久停用或删除。

  • 对于未使用的访问密钥,请先考虑停用该密钥。确认所有系统均未受到影响后,请继续永久停用或删除。

  • 对于未使用的用户,在完全删除之前,请考虑通过附加限制性策略来暂时停用该用户。

IAM 用户拥有未轮换的访问密钥

访问密钥由访问密钥 ID 和允许以编程方式访问Amazon资源的私有访问密钥组成。如果访问密钥长时间保持不变,一旦遭到泄露,就会增加未经授权访问的风险。遵循安全最佳实践,Amazon建议每 90 天轮换一次访问密钥,以最大限度地减少攻击者使用受损凭证的机会。

轮换访问密钥

在暴露调查发现中,打开资源。这将打开用户详细信息窗口。要轮换访问密钥,请参阅《IAM 用户指南》中的管理 IAM 用户的访问密钥

IAM 用户有一个策略允许不受限制地访问 KMS 密钥解密

Amazon KMS使您能够创建和管理用于保护数据的加密密钥。如果 IAM 用户的证书遭到泄Amazon KMS露,则允许对所有 KMS 密钥拥有不受限制的解密权限(例如kms:Decryptkms:ReEncryptFrom)的 IAM 策略可能会导致未经授权的数据访问。如果攻击者获得对这些凭证的访问权限,他们就有可能解密您环境中的任何加密数据,其中可能包括敏感数据。遵循安全最佳实践,Amazon建议通过将Amazon KMS解密权限限制为仅限用户履行其工作职能所需的特定密钥来实现最低权限。

实施最低权限访问

在暴露调查发现中,打开资源。此时将打开 IAM 策略窗口。在 KMS 中查找允许 kms:解密或kms:ReEncryptFrom或的权限KMS:*,资源规格为。"*"更新政策,将Amazon KMS解密权限限制为仅限所需的特定密钥。修改策略,将"*"资源替换为所需的特定 ARNs Amazon KMS密钥。

安全配置注意事项

请考虑添加条件来进一步限制何时可以使用这些权限。例如,您可以将解密操作限制在特定 VPC 端点或源 IP 范围。您还可以配置密钥策略,进一步限制哪些人可以使用特定的 KMS 密钥。