

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

# 使用 Amazon Quick Sight 可视化所有 AWS 账户的 IAM 凭证报告
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight"></a>

*Parag Nagwekar 和 Arun Chandapillai，Amazon Web Services*

## Summary
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-summary"></a>


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

您可以使用 AWS Identity and Access Management（IAM）凭证报告，帮助您满足贵组织的安全、审计和合规要求。[凭证报告](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html)提供您 AWS 账户中所有用户的列表，并显示他们的凭证状态，如密码、访问密钥和多重身份验证（MFA）设备。您可以为由 [AWS Organizations](https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/core-concepts.html) 管理的多个 AWS 账户使用凭证报告。

此模式包括步骤和代码，可帮助您使用 Amazon Quick Sight 控制面板为组织中的所有 AWS 账户创建和共享 IAM 证书报告。您可以与组织中的利益相关者共享控制面板。这些报告可帮助您的组织实现以下目标业务成果：
+ 识别与 IAM 用户相关的安全事件
+ 追踪 IAM 用户向单点登录（SSO）身份验证的实时迁移
+ 追踪 IAM 用户访问的 AWS 区域
+ 保持合规
+ 与其他利益相关者共享信息

## 先决条件和限制
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-prereqs"></a>

**先决条件**
+ 一个活跃的 AWS 账户
+ 具有成员账户的[组织](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tutorials_basic.html)。
+ 有权访问 Organizations 中账户的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html)
+ 已[安装](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html#getting-started-install-instructions)和[配置](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) AWS 命令行界面（AWS CLI）版本 2。
+ [订阅](https://docs.aws.amazon.com/quicksight/latest/user/signing-up.html) A [mazon Quick 企业版](https://docs.aws.amazon.com/quicksight/latest/user/editions.html)

## 架构
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-architecture"></a>

**技术堆栈**
+ Amazon Athena
+ Amazon EventBridge
+ Amazon Quick Sight
+ Amazon Simple Storage Service（Amazon S3）
+ AWS Glue
+ AWS Identity and Access Management（IAM）
+ AWS Lambda
+ AWS Organizations

**目标架构**

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

![下面的屏幕截图阐明了架构图](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/8724ff28-40f6-4c43-9c65-fbd18bbbfd0f/images/e780916a-4ab7-4fdc-8ecc-c837c7d90d13.png)


1. EventBridge 每天调用 Lambda 函数。

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

1. AWS Glue 爬网程序每天都会爬取 S3 存储桶，并相应地更新 Athena 表。

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

## 工具
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-tools"></a>

**Amazon Web Services**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) 是一种交互式查询服务，方便使用标准 SQL 分析 Amazon S3 的数据。
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) 是一项无服务器事件总线服务，可帮助您将应用程序与来自各种来源的实时数据连接起来。例如，Lambda 函数、使用 API 目标的 HTTP 调用端点或其他 AWS 账户中的事件总线。
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) 是一种云级商业智能（BI）服务，可用于在单独的控制面板中可视化、分析和报告数据。Quick Sight 是 Amazon Quick 的核心组件，提供交互式数据可视化、SPICE 内存分析、嵌入式分析和仪表板共享。
+ [AWS Identity and Access Management (AWS IAM) ](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)通过控制验证和授权使用您 AWS 资源的用户，帮助您安全地管理对您 AWS 资源的访问。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 是一项计算服务，可帮助您运行代码，而无需预置或管理服务器。它仅在需要时运行您的代码，并且能自动扩缩，因此您只需为使用的计算时间付费。

**代码**

此模式的代码可在 GitHub [getiamcredsreport-allaccounts-org](https://github.com/aws-samples/getiamcredsreport-allaccounts-org)存储库中找到。您可以使用此存储库中的代码在 Organizations 的 AWS 账户中创建 IAM 凭证报告，并将其存储至中心位置。

## 操作说明
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-epics"></a>

### 设置基础设施
<a name="set-up-the-infrastructure"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 设置 Amazon Quick 企业版。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.html) | AWS 管理员、AWS DevOps、云管理员、云架构师 | 
| 将 Amazon Quick Sight 与亚马逊 S3 和 Athena 集成。 | 在部署 AWS 堆栈之前，您必须[授权](https://docs.aws.amazon.com/quicksight/latest/user/troubleshoot-connect-to-datasources.html) Quick Sight 使用 Amazon S3 和 Athena。 CloudFormation  | AWS 管理员、AWS DevOps、云管理员、云架构师 | 

### 部署基础设施
<a name="deploy-the-infrastructure"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 克隆 GitHub 存储库。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.html) | AWS 管理员 | 
| 部署基础设施。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.html) | AWS 管理员 | 
| 创建 IAM 权限策略。 | 使用以下权限，为组织中的每个 AWS 账户[创建 IAM 策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)：<pre>{<br />  "Version": "2012-10-17",		 	 	 <br />  "Statement": [<br />    {<br />      "Effect": "Allow",<br />      "Action": [<br />        "iam:GenerateCredentialReport",<br />        "iam:GetCredentialReport"<br />        ],<br />      "Resource": "*"<br />    }<br />  ]<br />}</pre> | AWS DevOps、云管理员、云架构师、数据工程师 | 
| 创建带有信任策略的 IAM 角色。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.html)<pre>{<br />   "Version": "2012-10-17",		 	 	 <br />   "Statement":[<br />      {<br />         "Effect":"Allow",<br />         "Principal":{<br />            "AWS":[<br />               "arn:aws:iam::<MasterAccountID>:role/<LambdaRole>"<br />            ]<br />         },<br />         "Action":"sts:AssumeRole"<br />      }<br />   ]<br />}</pre>请将 `arn:aws:iam::<MasterAccountID>:role/<LambdaRole>` 替换为您之前记下的 Lambda 角色的 ARN。各个组织通常使用自动化技术，为他们的 AWS 账户创建 IAM 角色。建议您使用此自动化技术（如果有）。或者，您可以使用****代码存储库中的 `CreateRoleforOrg.py` 脚本。该脚本需要现有的管理角色，或任何其他有权在每个 AWS 账户中创建 IAM 策略和角色的 IAM 角色。 | 云管理员、云架构师、AWS 管理员 | 
| 配置 Amazon Quick Sight 以可视化数据。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.html) | AWS DevOps、云管理员、云架构师、数据工程师 | 

## 附加信息
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-additional"></a>

**其他注意事项**

请考虑以下事项：
+ 使用 CloudFormation 部署基础设施后，您可以等待在 Amazon S3 中创建并由 Athena 分析的报告，直到 Lambda 和 AWS Glue 按计划运行。或者，您可手动运行 Lambda 在 Amazon S3 中获取报告，然后运行 AWS Glue 爬网程序，以获取根据数据创建的 Athena 表。
+ Quick 是一款强大的工具，可根据您的业务需求分析和可视化数据。您可以使用 Quick 中的[参数](https://docs.aws.amazon.com/quicksight/latest/user/parameters-in-quicksight.html)根据您选择的数据字段来控制控件数据。此外，您还可以使用快速分析从数据集中创建参数（例如，账户、日期和用户字段，`user`分别为`partition_0``partition_1`、和），以添加帐户、日期和用户的参数控件。
+ 要构建您自己的 Quick Sight 控制面板，请参阅 AWS Workshop Studio 网站上的[快速研讨会](https://catalog.workshops.aws/quicksight/en-US)。
+ 要查看 Quick Sight 仪表板示例，请参阅 GitHub [getiamcredsreport-allaccounts-org](https://github.com/aws-samples/getiamcredsreport-allaccounts-org)代码存储库。

**目标业务成果**

您可以使用此模式来实现以下目标业务成果：
+ **识别与 IAM 用户相关的安全事件** — 使用单一控制面板调查组织每个 AWS 账户的每个用户。您可跟踪 IAM 用户最近访问的各个 AWS 区域及其使用的服务的趋势。
+ **跟踪 IAM 用户向 SSO 身份验证的实时迁移** — 通过使用 SSO，用户可使用单个凭证登录一次并访问多个 AWS 账户和应用程序。如果您计划将 IAM 用户迁移至 SSO，此模式可以帮助您过渡到 SSO，并追踪所有 AWS 账户中的所有 IAM 用户凭证使用情况（例如访问 AWS 管理控制台或访问密钥的使用情况）。
+ **追踪 IAM 用户访问的 AWS 区域** — 您可出于各种目的控制 IAM 用户对区域的访问权限，例如数据主权和成本控制。您还可追踪任何 IAM 用户对区域的使用情况。
+ **保持合规** — 遵循最低权限原则，您只能授予执行特定任务所需 IAM 权限。此外，您还可以跟踪对 Amazon Web Services 的访问权限、AWS 管理控制台以及长期凭证的使用情况。
+ **与其他利益相关者共享信息** — 您可以与其他利益相关者共享精心策划的控制面板，无需授予他们访问 IAM 凭证报告或 AWS 账户的权限。