选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

使用 Amazon 可视化所有AWS账户的IAM凭证报告 QuickSight - AWS Prescriptive Guidance

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

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

使用 Amazon 可视化所有AWS账户的IAM凭证报告 QuickSight

由 Parag Nagwekar (AWS) 和 Arun Chandapillai () 创作 AWS

摘要

警告

IAM用户拥有长期凭证,这会带来安全风险。为帮助减轻这种风险,我们建议仅向这些用户提供执行任务所需的权限,并在不再需要这些用户时将其移除。

您可以使用 AWS Identity and Access Management (IAM) 凭证报告来帮助您满足组织的安全、审计和合规要求。凭据报告提供您AWS账户中所有用户的列表,并显示其凭据的状态,例如密码、访问密钥和多重身份验证 (MFA) 设备。您可以为由 Organizations 管理的多个AWS账户使用凭证报告AWS。

此模式包括帮助您使用 Amazon QuickSight 控制面板创建和共享组织中所有AWS账户的IAM证书报告的步骤和代码。您可以与组织中的利益相关者共享控制面板。这些报告可帮助您的组织实现以下目标业务成果:

  • 识别与IAM用户相关的安全事件

  • 跟踪IAM用户向单点登录 (SSO) 身份验证的实时迁移

  • 追踪IAM用户访问的AWS区域

  • 保持合规

  • 与其他利益相关者共享信息

先决条件和限制

先决条件

架构

技术堆栈

  • Amazon Athena

  • Amazon EventBridge

  • Amazon QuickSight

  • Amazon Simple Storage Service(Amazon S3)

  • AWS Glue

  • AWSIdentity and Access Management (IAM)

  • AWS Lambda

  • AWS Organizations

目标架构

下图显示了一种架构,用于设置从多个AWS账户捕获IAM凭证报告数据的工作流程。

下面的屏幕截图阐明了架构图
  1. EventBridge 每天调用 Lambda 函数。

  2. Lambda 函数在整个组织的每个AWS账户中IAM扮演一个角色。然后,该函数创建IAM凭证报告并将报告数据存储在集中的 S3 存储桶中。必须在 S3 存储桶上启用加密,并停用公共访问。

  3. AWSGlue 爬虫每天都会爬取 S3 存储桶,并相应地更新 Athena 表。

  4. QuickSight 导入和分析证书报告中的数据,并构建一个可由利益相关者可视化并与其共享的仪表板。

工具

AWS 服务

  • Amazon Athena 是一项交互式查询服务,可使用标准工具轻松分析 Amazon S3 中的数据。SQL

  • Amazon EventBridge 是一项无服务器事件总线服务,可帮助您将应用程序与来自各种来源的实时数据连接起来。例如,Lambda 函数、使用API目标的HTTP调用终端节点或其他账户中的事件总线。AWS

  • Amazon QuickSight 是一项云规模的商业智能 (BI) 服务,可帮助您在单个控制面板中可视化、分析和报告数据。

  • AWSIdentity and Access Management (IAM) 通过控制谁经过身份验证并有权使用AWS资源,从而帮助您安全地管理对资源的访问权限。

  • AWSLambda 是一项计算服务,可帮助您运行代码,而无需预置或管理服务器。它仅在需要时运行您的代码,并且能自动扩缩,因此您只需为使用的计算时间付费。

代码

此模式的代码可在 GitHub getiamcredsreport-allaccounts-org存储库中找到。您可以使用此存储库中的代码在 Organizations 中跨AWS账户创建IAM凭证报告,并将其存储在中央位置。

操作说明

任务描述所需技能

设置亚马逊 QuickSight 企业版。

  1. 在您的AWS账户中激活亚马逊 QuickSight 企业版。有关更多信息,请参阅 QuickSight 文档 QuickSight中的在 Amazon 内部管理用户访问权限

  2. 要授予控制面板权限,请获取 QuickSight 用户的 Amazon 资源名称 (ARN)。

AWS管理员、AWS DevOps、云管理员、云架构师

将亚马逊 QuickSight 与亚马逊 S3 和 Athena 集成。

在部署堆栈之前,您必须授权QuickSight 才能使用 Amazon S3 和 Athena。AWS CloudFormation

AWS管理员、AWS DevOps、云管理员、云架构师

设置基础设施

任务描述所需技能

设置亚马逊 QuickSight 企业版。

  1. 在您的AWS账户中激活亚马逊 QuickSight 企业版。有关更多信息,请参阅 QuickSight 文档 QuickSight中的在 Amazon 内部管理用户访问权限

  2. 要授予控制面板权限,请获取 QuickSight 用户的 Amazon 资源名称 (ARN)。

AWS管理员、AWS DevOps、云管理员、云架构师

将亚马逊 QuickSight 与亚马逊 S3 和 Athena 集成。

在部署堆栈之前,您必须授权QuickSight 才能使用 Amazon S3 和 Athena。AWS CloudFormation

AWS管理员、AWS DevOps、云管理员、云架构师
任务描述所需技能

克隆 GitHub 存储库。

  1. 通过运行以下命令将 GitHub getiamcredsreport-allaccounts-org存储库克隆到本地计算机:git clone https://github.com/aws-samples/getiamcredsreport-allaccounts-org

AWS 管理员

部署基础设施。

  1. 登录 AWS 管理控制台,打开 CloudFormation 控制台

  2. 在导航窗格中,选择创建堆栈,然后选择使用新资源(标准)

  3. 标识资源页面上,选择下一步

  4. 指定模板页面,对于模板来源选择上传模板文件

  5. 选择 “选择文件”,从克隆的 GitHub 存储库中选择Cloudformation-createcredrepo.yaml文件,然后选择 “下一步”。

  6. 在 “参数” 中,IAMRoleName使用您的IAM角色进行更新。 这应该是您希望 Lambda 在组织的每个账户中担任的IAM角色。此角色创建凭证报告。注意:在创建堆栈时,该角色不必出现在所有账户中。

  7. 参数中,将 S3BucketName 更新为 Lambda 存储所有账户凭证的 S3 存储桶名称。

  8. 堆栈名称中,输入堆栈名称。

  9. 选择提交

  10. 记下 Lambda 函数角色名称。

AWS 管理员

创建IAM权限策略。

为组织中的每个AWS账户@@ 创建具有以下权限的IAM策略

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:GenerateCredentialReport", "iam:GetCredentialReport" ], "Resource": "*" } ] }
AWS DevOps、云管理员、云架构师、数据工程师

使用信任策略创建IAM角色。

  1. 为AWS账户@@ 创建IAM角色并附加您在上一步中创建的权限策略。

  2. 将以下信任策略附加到该IAM角色:

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":[ "arn:aws:iam::<MasterAccountID>:role/<LambdaRole>" ] }, "Action":"sts:AssumeRole" } ] }
重要

arn:aws:iam::<MasterAccountID>:role/<LambdaRole>替换为您之前ARN记下的 Lambda 角色中的角色。

注意

Organizations 通常使用自动化来为其AWS账户创建IAM角色。建议您使用此自动化技术(如有)。或者,您可以使用代码存储库中的 CreateRoleforOrg.py 脚本。该脚本需要现有的管理角色或任何其他IAM有权在每个AWS账户中创建IAM策略和角色的角色。

云管理员、云架构师、AWS管理员

将 Amazon 配置 QuickSight 为可视化数据。

  1. 使用您的 QuickSight凭据登录。

  2. 使用 Athena 创建数据集(使用 iamcredreportdb 数据库和 “cfn_iamcredreport” 表),然后自动刷新数据集

  3. 在中创建分析 QuickSight

  4. 创建 QuickSight 仪表板

AWS DevOps、云管理员、云架构师、数据工程师

部署基础设施

任务描述所需技能

克隆 GitHub 存储库。

  1. 通过运行以下命令将 GitHub getiamcredsreport-allaccounts-org存储库克隆到本地计算机:git clone https://github.com/aws-samples/getiamcredsreport-allaccounts-org

AWS 管理员

部署基础设施。

  1. 登录 AWS 管理控制台,打开 CloudFormation 控制台

  2. 在导航窗格中,选择创建堆栈,然后选择使用新资源(标准)

  3. 标识资源页面上,选择下一步

  4. 指定模板页面,对于模板来源选择上传模板文件

  5. 选择 “选择文件”,从克隆的 GitHub 存储库中选择Cloudformation-createcredrepo.yaml文件,然后选择 “下一步”。

  6. 在 “参数” 中,IAMRoleName使用您的IAM角色进行更新。 这应该是您希望 Lambda 在组织的每个账户中担任的IAM角色。此角色创建凭证报告。注意:在创建堆栈时,该角色不必出现在所有账户中。

  7. 参数中,将 S3BucketName 更新为 Lambda 存储所有账户凭证的 S3 存储桶名称。

  8. 堆栈名称中,输入堆栈名称。

  9. 选择提交

  10. 记下 Lambda 函数角色名称。

AWS 管理员

创建IAM权限策略。

为组织中的每个AWS账户@@ 创建具有以下权限的IAM策略

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:GenerateCredentialReport", "iam:GetCredentialReport" ], "Resource": "*" } ] }
AWS DevOps、云管理员、云架构师、数据工程师

使用信任策略创建IAM角色。

  1. 为AWS账户@@ 创建IAM角色并附加您在上一步中创建的权限策略。

  2. 将以下信任策略附加到该IAM角色:

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":[ "arn:aws:iam::<MasterAccountID>:role/<LambdaRole>" ] }, "Action":"sts:AssumeRole" } ] }
重要

arn:aws:iam::<MasterAccountID>:role/<LambdaRole>替换为您之前ARN记下的 Lambda 角色中的角色。

注意

Organizations 通常使用自动化来为其AWS账户创建IAM角色。建议您使用此自动化技术(如有)。或者,您可以使用代码存储库中的 CreateRoleforOrg.py 脚本。该脚本需要现有的管理角色或任何其他IAM有权在每个AWS账户中创建IAM策略和角色的角色。

云管理员、云架构师、AWS管理员

将 Amazon 配置 QuickSight 为可视化数据。

  1. 使用您的 QuickSight凭据登录。

  2. 使用 Athena 创建数据集(使用 iamcredreportdb 数据库和 “cfn_iamcredreport” 表),然后自动刷新数据集

  3. 在中创建分析 QuickSight

  4. 创建 QuickSight 仪表板

AWS DevOps、云管理员、云架构师、数据工程师

其他信息

其他注意事项

请考虑以下事项:

  • 使用 CloudFormation 部署基础设施后,您可以等待在 Amazon S3 中创建并由 Athena 分析的报告,直到 AWS Lambda 和 Glue 按计划运行。或者,您可以手动运行 Lambda 在 Amazon S3 中获取报告,然后运行 G AWS lue 爬虫以获取根据数据创建的 Athena 表。

  • QuickSight 是一款根据您的业务需求分析和可视化数据的强大工具。您可以使用中的参数根据您选择的数据字段 QuickSight 来控制小组件数据。此外,您还可以使用 QuickSight 分析从数据集中创建参数(例如,账户、日期和用户字段,user分别为partition_0partition_1、和),以添加帐户、日期和用户的参数控件。

  • 要创建自己的 QuickSight 仪表板,请参阅 Works QuickSight h op Studio 网站上的AWS研讨会。

  • 要查看示例 QuickSight 仪表板,请参阅 GitHub getiamcredsreport-allaccounts-org代码存储库。

目标业务成果

您可以使用此模式来实现以下目标业务成果:

  • 识别与IAM用户相关的安全事件 — 使用单一管理面板调查组织中每个AWS账户的每个用户。您可以跟踪IAM用户最近访问的各个AWS区域的趋势以及他们使用的服务。

  • 跟踪IAM用户向SSO身份验证的实时迁移-通过使用SSO,用户可以使用单个凭据登录一次并访问多个AWS帐户和应用程序。如果您计划将IAM用户迁移到SSO,则此模式可以帮助您过渡到SSO并跟踪所有AWS账户的所有IAM用户凭据使用情况(例如访问AWS管理控制台或访问密钥的使用情况)。

  • 跟踪IAM用户访问的AWS区域-您可以出于各种目的控制IAM用户对区域的访问权限,例如数据主权和成本控制。您还可以跟踪任何IAM用户对区域的使用情况。

  • 保持合规性-遵循最低权限原则,您只能授予执行特定任务所需的特定IAM权限。此外,您还可以跟踪对AWS服务的访问权限、AWS管理控制台以及证书的长期使用情况。

  • 与其他利益相关者共享信息-您可以与其他利益相关者共享精心策划的仪表板,而无需授予他们访问IAM凭证报告或AWS帐户的权限。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。