自定义 IAM 访问分析器未使用访问分析的范围

作者: 斯蒂芬妮·姆巴佩, Mathangi Ramesh, Reke Jarikre |

Amazon Identity and Access Management Access Analyzer 简化了对未使用访问权限的检查,以指导您获得最低权限。您可以使用未使用的访问发现来识别向您的账户或组织中的 Amazon Identity and Access Management (IAM) 角色和用户授予的过度许可访问权限。通过 IAM Access Analyzer 的委托管理员账户,您可以使用控制面板查看组织中未使用的访问调查结果,并根据调查结果的数量和类型对要检查的账户进行优先级排序。调查结果重点介绍了未使用的角色、IAM 用户未使用的访问密钥以及 IAM 用户未使用的密码。对于活跃的 IAM 用户和角色,这些发现可让您了解未使用的服务和操作。最近,IAM Access Analyzer 推出了新的配置功能,您可以使用这些功能来自定义分析。您可以选择要排除的帐户、角色和用户,并专注于对您最重要的领域。您可以使用账户 ID 等标识符或使用标签进行规模配置。通过将 IAM Access Analyzer 的范围限定为监控一部分账户和角色,您可以减少不必要的发现所产生的噪音。可以在需要时更新配置以更改分析范围。借助这项新产品,IAM Access Analyzer 提供了增强的控制功能,可帮助您根据组织的安全需求更紧密地定制分析。

在这篇文章中,我们将向您介绍一个示例场景。想象一下,你是一家使用亚马逊云科技的公司的云管理员。您可以使用 Amazon Organizations 将工作负载组织成多个组织单位 (OU) 和账户。您有专门的账户用于在整个组织中测试和试验名为沙盒账户的新亚马逊云科技功能。沙盒账户可以由贵公司中的任何人创建,并集中记录。您在 IAM 资源上使用标签,并且在标记亚马逊云科技资源时遵循了亚马逊云科技优秀实践和策略。标签应用于您的团队创建的 IAM 角色。

为确保您的团队遵循最低权限原则,并且仅使用访问亚马逊云科技账户所需的权限,您可以使用 IAM Access Analyzer。您在组织级别创建了一个未使用的访问分析器,因此它将监控您组织中的亚马逊云科技账户。您注意到您发现了多个未使用的访问权限。经过分析,您的安全团队建议排除一些亚马逊云科技账户、IAM 角色和用户,这样他们就可以专注于相关调查结果。他们希望将沙盒账户及其用于安全目的(例如审计、事件响应)的 IAM 角色排除在未使用的访问分析之外。

在创建新的分析器或稍后更新分析器时,您可以选择要排除的帐户和角色。在这篇文章中,我们将向您展示如何配置 IAM Access Analyzer 未使用访问权限查找结果,以便在设置分析器后排除组织中的特定账户和特定委托人(IAM 角色和 IAM 用户)。启用未使用访问调查结果后,使用规范性建议无需额外付费。

先决条件

以下是配置 IAM Access Analyzer 以进行未使用访问分析的先决条件:

  • 在组织级别创建的未使用的访问分析器
  • 对 IAM Access Analyzer 委托管理员账户的管理级别访问权限
  • 您要排除的账户 ID 列表
  • 带标签的 IAM 角色

在以下部分中,您将学习如何自定义 IAM Access Analyzer 以更好地满足组织的需求。这包括以下内容:

  1. 探索如何从分析器的未使用访问调查结果中排除特定亚马逊云科技账户。
  2. 了解如何从分析中排除带标签的 IAM 角色,使您可以专注于最相关的安全见解,并了解如何在分析器上查看排除项以根据需要对其进行修改。
  3. 最后,您将拥有量身定制的未使用访问分析器,为您的组织提供更有意义和更可操作的结果。

排除组织中的特定账户

在本节中,您将看到如何通过亚马逊云科技管理控制台和亚马逊云科技命令行界面 (亚马逊云科技 CLI) 在组织层面更新现有的未使用访问分析器,以便从分析中排除特定亚马逊云科技账户 ID。

如果组织中没有未使用的访问分析器,请参阅这篇文章,了解如何创建访问分析器。

使用控制台更新未使用的访问分析器:

  1. 连接到您的 IAM Access Analyzer 委托管理员账户(默认情况下,您的组织管理账户)。
  2. 在您的管理账户中打开 IAM Access Analyzer 控制台。通过选择右上角您选择的分析器,您将看到包含当前发现结果的仪表板。在此示例中,分析器有 251 个有效结果。
    图 1:未使用访问调查结果仪表板(不包含排除项)

    图 1:未使用访问调查结果仪表板(不包含排除项)

  3. 您可以查看每个账户的活跃搜索结果拆分。该示例账户有 57 个活跃的搜索结果,您希望将其排除在外。
    图 2:每个账户的未使用访问权限调查结果

    图 2:每个账户的未使用访问权限调查结果

  4. 在该导航窗格中,选择"访问分析器"下的"分析器设置"。
  5. 分析器设置页面显示您的亚马逊云科技区域中的分析器及其状态。
  6. 根据其名称在列表中选择未使用的访问分析器。
    图 3:主动访问分析器

    图 3:主动访问分析器

  7. 分析器页面上,您可以看到分析器设置和一个名为"排除"的新选项卡。由于您没有排除的亚马逊云科技账户,因此排除的亚马逊云科技账户数为 0,并且不显示任何账户。
    图 4:未使用的访问分析器排除选项卡

    图 4:未使用的访问分析器排除选项卡

  8. 在"排除的亚马逊云科技账户"部分选择管理
  9. 选择"从组织和层次结构中选择",然后在要排除的沙盒帐户旁边选择"排除"。
    图 5:排除沙盒账户

    图 5:排除沙盒账户

  10. 在您为沙盒账户选择"排除"后,该账户将被取消选择,并将显示在亚马逊云科技账户中进行排除。要排除的账户数已从 0 更改为 1。完成后,选择"保存更改"。
    图 6:验证该账户是否已排除并保存更改

    图 6:验证该账户是否已排除并保存更改

  11. 该页面将根据您的更改自动更新。然后,您可以查看排除的亚马逊云科技账户并验证您的排除账户配置是否正确。
    图 7:使用排除的账户更新了分析器配置

    图 7:使用排除的账户更新了分析器配置

  12. 您可以返回控制台仪表板查看结果。在此示例中,排除沙盒账户导致活跃发现的总数从 251 个减少到 194 个。
    图 8:显示活跃发现减少的仪表板

    图 8:显示活跃发现减少的仪表板

使用亚马逊云科技 CLI 更新未使用的访问分析器:

您可以使用亚马逊云科技 CLI 命令更新现有分析器 aws accessanalyzer update-analyzer。使用以下命令,<YOUR-ANALYZER-NAME> 替换为分析器的名称。

aws accessanalyzer update-analyzer 
--analyzer-name <YOUR-ANALYZER-NAME>
--configuration '{
  "unusedAccess": {
    "analysisRule": {
      "exclusions": [
        {
          "accountIds": [
            "222222222222"
          ]
        }
      ]
    }
  }
}'

您将获得与以下内容类似的结果:

{
    "revisionId": "<UNIQUE-REVISION-NUMBER>", 
    "configuration": {
        "unusedAccess": {
            "analysisRule": {
                "exclusions": [
                    {
                        "accountIds": [
                            "222222222222"
                        ]
                    }
                ]
            }, 
            "unusedAccessAge": 90
        }
    }

您已成功将沙盒账户从未使用的访问分析中排除。现在,您将排除安全团队根据标签审计账户时使用的 IAM 角色。

使用标签排除组织中的特定负责人

在本节中,您将看到如何使用控制台和亚马逊云科技 CLI 排除组织中带标签的 IAM 角色来更新现有的未使用访问分析器。

使用控制台更新未使用的访问分析器:

  1. 打开 IAM Access Analyzer 控制台。
  2. 查看包含未使用结果的摘要控制面板。选择屏幕顶部的分析器设置
    图 9:IAM Access Analyzer 摘要仪表板

    图 9:IAM Access Analyzer 摘要仪表板

  3. 您将看到在该地区的账户中创建的分析器列表。选择要更新的分析器。
  4. 查看分析器页面。在"排除"选项卡上,您将看到"排除标签数为 0 的 IAM 用户和角色"。
    图 10:使用标签配置 IAM 角色排除

    图 10:使用标签配置 IAM 角色排除

  5. 在"排除的 IAM 用户和带标签的角色"部分中选择管理
  6. 添加附加到要从分析中排除的角色的标签,然后选择保存更改
    图 11:添加要排除的标签

    图 11:添加要排除的标签

  7. 现在,您可以看到排除的 IAM 用户和带有标签的角色现在的计数为 1,并且可以在列表中看到这些标签。
    图 12:排除标签列表

    图 12:排除标签列表

使用亚马逊云科技 CLI 更新未使用的访问分析器:

您还可以使用亚马逊云科技 CLI 命令更新现有分析器 aws accessanalyzer update-analyzer。使用以下命令,<YOUR-ANALYZER-NAME> 替换为分析器的名称。

aws accessanalyzer update-analyzer 
--analyzer-name <YOUR-ANALYZER-NAME> 
--configuration '{
  "unusedAccess": {
    "analysisRule": {
      "exclusions": [
        {
          "accountIds": [
            "222222222222"
          ]
        },
        {
          "resourceTags": [
            {
              "team": "security"
            }
          ]
        }
      ]
    }
  }
}'

成功的响应将如下所示:

{
    "revisionId": "<UNIQUE-REVISION-NUMBER>", 
    "configuration": {
        "unusedAccess": {
            "analysisRule": {
                "exclusions": [
                    {
                        "accountIds": [
                            "222222222222"
                        ]
                    }, 
                    {
                        "resourceTags": [
                            {
                                "team": "security"
                            }
                        ]
                    }
                ]
            }, 
            "unusedAccessAge": 90
        }
    }
}

在分析器上查看排除项

您可以使用控制台或亚马逊云科技 CLI 查看、删除或更新分析器上配置的排除项。例如,作为管理多个账户的安全管理员,您最初可能会将带有该标签的 IAM 角色排除在分析 security 之外。但是,如果您的政策发生变化,需要分析某些安全角色或完全删除排除项,则可能需要查看这些排除项。通过调整排除项,您可以确保分析师的结果与组织的需求和账户结构保持相关。

使用控制台查看未使用访问分析器的排除情况:

在本节中,查看已从分析器中排除的标签。

  1. 打开 IAM 控制台。
  2. 选择"访问分析器",在"访问报告"下,您将看到分析器发现的摘要仪表板。
    1. 活动发现部分显示未使用角色的活动发现的数量、未使用凭证的有效发现数量以及未使用权限的活跃发现结果的数量。
    2. 调查结果概述部分包括活跃发现的细目。
    3. "调查结果状态"部分显示调查结果的状态(无论是活动、已存档还是已解决)。
      图 13:未使用的访问分析器仪表板

      图 13:未使用的访问分析器仪表板

  3. 选择屏幕顶部的分析器设置
  4. 选择要查看的分析器以查看排除标签。
    图 14:查看未使用的访问分析器排除项

    图 14:查看未使用的访问分析器排除项

  1. 应用标签后,更新后的仪表板将在下次扫描后显示。
    图 15:仪表板显示排除后的调查结果有所减少

    图 15:仪表板显示排除后的调查结果有所减少

使用亚马逊云科技 CLI 查看未使用的访问分析器上的排除情况:

使用分析器的名称,您可以运行命令 get-analyzer 来查看配置的排除项。使用以下命令,<YOUR-ANALYZER-NAME> 替换为分析器的名称:

aws accessanalyzer get-analyzer --analyzer-name <YOUR-ANALYZER-NAME>

您将获得类似于以下内容的回复:

{
  "analyzer": {
    "status": "ACTIVE",
    "name": "<YOUR-ANALYZER-NAME>",
    "tags": {},
    "revisionId": "<UNIQUE-REVISION-NUMBER>",
    "arn": "arn:aws:access-analyzer:<REGION>:111111111111:analyzer/<YOUR-ANALYZER-NAME>",
    "configuration": {
      "unusedAccess": {
        "analysisRule": {
          "exclusions": [
            {
              "accountIds": [
                "222222222222"
              ]
            },
            {
              "resourceTags": [
                {
                  "team": "security"
                }
              ]
            }
          ]
        },
        "unusedAccessAge": 90
      }
    },
    "type": "ORGANIZATION_UNUSED_ACCESS",
    "createdAt": "2024-10-11T22:26:57Z"
  }
}

结论

在这篇文章中,您学习了如何通过排除特定账户和 IAM 角色来定制未使用的访问分析器,以满足您的需求。要将组织中的账户排除在 IAM Access Analyzer 的监控范围之外,您可以使用账户 ID 列表或从组织结构的分层视图中进行选择。您可以根据标签排除 IAM 角色和 IAM 用户。通过在未使用访问分析器上自定义排除项,您可以看到活跃的调查结果数量有所下降,从而帮助您专注于最重要的发现。借助这项新产品,IAM Access Analyzer 提供了增强的控制功能,可帮助您根据组织的安全需求更紧密地定制分析。

  • 要了解有关 IAM Access Analyzer 未使用访问权限的更多信息,请参阅外部和未使用访问权限的调查结果。
  • 要了解未使用访问权限的创建情况,请参阅 IAM Access Analyzer 简化对组织中未使用访问权限的检查。
  • 了解如何使用 IAM Access Analyzer 建议优化未使用的访问权限。
  • 要了解大规模实现最低权限的策略,请参阅大规模实现最低权限的策略第 1 部分和第 2 部分。

如果你对这篇文章有反馈,请在下面的评论部分提交评论。

斯蒂芬妮·姆巴佩

P. Stephanie Mbappe

斯蒂芬妮是亚马逊云科技的安全顾问。她乐于在客户安全旅程的任何阶段为他们提供帮助。Stéphanie 喜欢学习、设计新的解决方案以及与他人分享她的知识。

Mathangi Ramesh

Mathangi Ramesh

Mathangi 是 Amazon Identity and Access Management 的产品经理。她喜欢与客户交谈和使用数据来解决问题。工作之余,马坦吉是一名健身爱好者,也是一名巴拉塔纳蒂亚姆舞者。她拥有卡内基梅隆大学的工商管理硕士学位。

Reke Jarikre

Reke Jarikre

Reke 是亚马逊云科技的助理安全顾问。她热衷于保护客户基础设施和制定强大的安全措施。工作之余,她喜欢探索新技术、公开演讲和为开源项目做出贡献。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。