

# 为您的 AWS 账户 生成凭证报告
<a name="id_credentials_getting-report"></a>

您可以生成和下载列出您账户中所有用户及其各个凭证状态（包括密码、访问密钥和 MFA 设备）的*凭证报告*。您可以从 AWS 管理控制台、[AWS 开发工具包](https://aws.amazon.com/tools)和[命令行工具](https://aws.amazon.com/tools/#Command_Line_Tools)或 IAM API 获取凭证报告。

**注意**  
IAM 凭证报告仅包含以下 IAM 管理的凭证：密码、每个用户的前两个访问密钥、MFA 设备和 X.509 签名证书。该报告不包括服务特定的凭证（例如 CodeCommit 密码、Amazon Bedrock 长期 API 密钥或 Amazon CloudWatch Logs 长期 API 密钥）或除前两个以外的任何其他用户访问密钥。要查看完整的凭证，请使用 [ListServiceSpecificCredentials](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServiceSpecificCredentials.html) 和 [ListAccessKeys](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html) API。

您可以使用凭证报告帮助您进行审核和合规性工作。您可以使用该报告来审计凭证生命周期要求的效果，如密码和访问密钥更新要求。您可以向外部审核员提供报告，或向审核员授予权限，以便他或她可以直接下载报告。

您可以按每四小时一次的频率生成凭证报告。请求报告时，IAM 先检查在过去四小时内是否生成了 AWS 账户 的报告。如果是，则下载最新的报告。如果账户的最新报告是四小时前生成的，或者账户以前没有报告，则 IAM 将生成并下载新报告。

**Topics**
+ [所需的权限](#id_credentials_required_permissions)
+ [了解报告格式](#id_credentials_understanding_the_report_format)
+ [获取凭证报告（控制台）](#getting-credential-reports-console)
+ [获取凭证报告 (AWS CLI)](#getting-credential-reports-cliapi)
+ [获取凭证报告 (AWS API)](#getting-credential-reports-api)

## 所需的权限
<a name="id_credentials_required_permissions"></a>

创建和下载报告需要以下权限：
+ 创建凭证报告：`iam:GenerateCredentialReport`
+ 下载报告：`iam:GetCredentialReport`

## 了解报告格式
<a name="id_credentials_understanding_the_report_format"></a>

凭证报告采用逗号分隔值 (CSV) 文件格式。您可以使用常用电子表格软件打开 CSV 文件以执行分析，也可以构建应用程序以编程方式使用 CSV 文件并执行自定义分析。

CSV 文件包含以下列：

**用户**  
用户的友好名称。

**arn**  
用户的 Amazon Resource Name (ARN)。有关 ARN 的更多信息，请参阅 [IAM ARN](reference_identifiers.md#identifiers-arns)。

**user\$1creation\$1time**  
创建用户的日期和时间，[ISO 8601 日期时间格式](https://en.wikipedia.org/wiki/ISO_8601)。

**password\$1enabled**  
如果用户有密码，则该值为 `TRUE`。否则为 `FALSE`。对于作为组织一部分创建的新成员账户，此值为 `FALSE`，因为默认情况下，这些账户没有根用户凭证。

**password\$1last\$1used**  
AWS 账户根用户 或用户的密码上次用于登录 AWS 网站的日期和时间，采用 [ISO 8601 日期时间格式](http://www.iso.org/iso/iso8601)。捕获用户上次登录时间的 AWS 网站是 AWS 管理控制台、AWS 论坛和 AWS Marketplace。如果密码在 5 分钟的时间范围内多次使用，则仅在此字段中记录第一次使用。  
+ 此字段的值在以下情况下为 `no_information`：
  + 用户的密码从未使用过。
  + 没有与密码关联的登录数据，例如，当用户的密码在 IAM 于 2014 年 10 月 20 日开始跟踪此信息后尚未使用时。
+ 如果用户没有密码，此字段中的值为 `N/A` (不适用)。

**重要**  
由于服务问题，上次使用密码的数据不包括从 2018 年 5 月 3 日 22:50（太平洋时间）到 2018 年 5 月 23 日 14:08（太平洋时间）之间的密码使用。这会影响 IAM 控制台中显示的[上次登录](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_finding-unused.html)日期和 [IAM 凭证报告](https://docs.aws.amazon.com/IAM/latest/UserGuide/SupportedTypes.xmlid_credentials_getting-report.html)中以及 [GetUser API 操作](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html)返回的上次使用密码的日期。如果用户在受影响的时间内登录，则返回的上次使用密码的日期是用户在 2018 年 5 月 3 日之前最后一次登录的日期。对于在 2018 年 5 月 23 日 14:08（太平洋时间）之后登录的用户，所返回的上次使用密码的日期准确无误。  
如果您使用上次使用密码的信息来识别未使用的凭证以将其删除（如删除在过去 90 天内未登录过 AWS 的用户），建议您调整评估时段以纳入 2018 年 5 月 23 日之后的日期。或者，如果您的用户使用访问密钥以编程方式访问 AWS，则您可以参阅上次使用访问密钥的信息，因为其中的所有日期都准确无误。

**password\$1last\$1changed**  
上次设置用户密码的日期和时间，[ISO 8601 日期时间格式](https://en.wikipedia.org/wiki/ISO_8601)。如果用户没有密码，则此字段中的值为 `N/A` (不适用)。

**password\$1next\$1rotation**  
如果账户的[密码策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html)要求密码轮换，则此字段包含用户需要设置新密码的日期和时间，[ISO 8601 日期时间格式](https://en.wikipedia.org/wiki/ISO_8601)。AWS 账户（根）的值始终是 `not_supported`。

**mfa\$1active**  
如果对用户启用了[多重验证](id_credentials_mfa.md) (MFA) 设备，则此值为 `TRUE`。否则为 `FALSE`。

**access\$1key\$11\$1active**  
如果用户有访问密钥且访问密钥状态为 `Active`，则该值为 `TRUE`。否则为 `FALSE`。适用于账户根用户和 IAM 用户。

**access\$1key\$11\$1last\$1rotated**  
创建或上次更改用户访问密钥的日期和时间，[ISO 8601 日期时间格式](https://en.wikipedia.org/wiki/ISO_8601)。如果用户没有活动的访问密钥，则此字段中的值为 `N/A` (不适用)。适用于账户根用户和 IAM 用户。

**access\$1key\$11\$1last\$1used\$1date**  
最近使用用户的访问密钥签署 AWS API 请求的日期和时间（采用 [ISO 8601 日期时间格式](https://en.wikipedia.org/wiki/ISO_8601)）。如果访问密钥在 15 分钟的时间范围内多次使用，则仅在此字段中记录第一次使用。适用于账户根用户和 IAM 用户。  
此字段的值在这些情况下为 `N/A`（不适用）：  
+ 用户没有访问密钥。
+ 访问密钥从未使用过。
+ 访问密钥在 IAM 于 2015 年 4 月 22 日开始跟踪此信息后尚未使用。

**access\$1key\$11\$1last\$1used\$1region**  
最近在其中使用访问密钥的 [AWS 区域](https://docs.aws.amazon.com/general/latest/gr/rande.html)。如果访问密钥在 15 分钟的时间范围内多次使用，则仅在此字段中记录第一次使用。适用于账户根用户和 IAM 用户。  
此字段的值在这些情况下为 `N/A`（不适用）：  
+ 用户没有访问密钥。
+ 访问密钥从未使用过。
+ 上次使用访问密钥是在 IAM 于 2015 年 4 月 22 日开始跟踪此信息之前。
+ 上次使用的服务不是区域特定的服务，如 Amazon S3。

**access\$1key\$11\$1last\$1used\$1service**  
最近使用访问密钥访问的 AWS 服务。此字段的值使用服务的命名空间，例如 `s3` 表示 Amazon S3，`ec2` 表示 Amazon EC2。如果访问密钥在 15 分钟的时间范围内多次使用，则仅在此字段中记录第一次使用。适用于账户根用户和 IAM 用户。  
此字段的值在这些情况下为 `N/A`（不适用）：  
+ 用户没有访问密钥。
+ 访问密钥从未使用过。
+ 上次使用访问密钥是在 IAM 于 2015 年 4 月 22 日开始跟踪此信息之前。

**access\$1key\$12\$1active**  
如果用户有第二个访问密钥且第二个键的状态为 `Active`，则该值为 `TRUE`。否则为 `FALSE`。适用于账户根用户和 IAM 用户。  
用户最多可以有两个访问密钥，为方便轮换，可以首先更新密钥，然后再删除之前的密钥。有关更新访问密钥的更多信息，请参阅 [更新访问密钥](id-credentials-access-keys-update.md)。

**access\$1key\$12\$1last\$1rotated**  
创建或上次更改用户第二个访问密钥的日期和时间，采用 [ISO 8601 日期时间格式](https://en.wikipedia.org/wiki/ISO_8601)。如果用户没有第二个活动的访问密钥，则此字段中的值为 `N/A` (不适用)。适用于账户根用户和 IAM 用户。

**access\$1key\$12\$1last\$1used\$1date**  
最近使用用户的第二个访问密钥签署 AWS API 请求的日期和时间（采用 [ISO 8601 日期时间格式](https://en.wikipedia.org/wiki/ISO_8601)）。如果访问密钥在 15 分钟的时间范围内多次使用，则仅在此字段中记录第一次使用。适用于账户根用户和 IAM 用户。  
此字段的值在这些情况下为 `N/A`（不适用）：  
+ 用户没有第二个访问密钥。
+ 用户的第二个访问密钥从未使用过。
+ 上次使用用户的第二个访问密钥是在 IAM 于 2015 年 4 月 22 日开始跟踪此信息之前。

**access\$1key\$12\$1last\$1used\$1region**  
最近在其中使用用户的第二个访问密钥的 [AWS 区域](https://docs.aws.amazon.com/general/latest/gr/rande.html)。如果访问密钥在 15 分钟的时间范围内多次使用，则仅在此字段中记录第一次使用。适用于账户根用户和 IAM 用户。此字段的值在这些情况下为 `N/A`（不适用）：  
+ 用户没有第二个访问密钥。
+ 用户的第二个访问密钥从未使用过。
+ 上次使用用户的第二个访问密钥是在 IAM 于 2015 年 4 月 22 日开始跟踪此信息之前。
+ 上次使用的服务不是区域特定的服务，如 Amazon S3。

**access\$1key\$12\$1last\$1used\$1service**  
最近使用用户的第二个访问密钥访问的 AWS 服务。此字段的值使用服务的命名空间，例如 `s3` 表示 Amazon S3，`ec2` 表示 Amazon EC2。如果访问密钥在 15 分钟的时间范围内多次使用，则仅在此字段中记录第一次使用。适用于账户根用户和 IAM 用户。此字段的值在这些情况下为 `N/A`（不适用）：  
+ 用户没有第二个访问密钥。
+ 用户的第二个访问密钥从未使用过。
+ 上次使用用户的第二个访问密钥是在 IAM 于 2015 年 4 月 22 日开始跟踪此信息之前。

**cert\$11\$1active**  
如果用户有 X.509 签名证书且证书状态为 `Active`，则该值为 `TRUE`。否则为 `FALSE`。

**cert\$11\$1last\$1rotated**  
创建或上次更改用户签名证书的日期和时间，[ISO 8601 日期时间格式](https://en.wikipedia.org/wiki/ISO_8601)。如果用户没有活动的签名证书，则此字段中的值为 `N/A` (不适用)。

**cert\$12\$1active**  
如果用户有第二个 X.509 签名证书且证书状态为 `Active`，则该值为 `TRUE`。否则为 `FALSE`。  
用户最多可以有两个 X.509 签名证书，以便于进行证书轮换。

**cert\$12\$1last\$1rotated**  
创建或上次更改用户第二个签名证书的日期和时间，[ISO 8601 日期时间格式](https://en.wikipedia.org/wiki/ISO_8601)。如果用户没有第二个活动的签名证书，则此字段中的值为 `N/A` (不适用)。

**additional\$1credentials\$1info**  
当用户拥有两个以上的访问密钥或证书时，该值是其他访问密钥或证书的数量，以及可用于列出与该用户关联的访问密钥或证书的操作。

## 获取凭证报告（控制台）
<a name="getting-credential-reports-console"></a>

您可以使用 AWS 管理控制台下载逗号分隔值 (CSV) 文件形式的凭证报告。

**下载凭证报告（控制台）**

1. 登录 AWS 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择**凭证报告**。

1. 选择**下载报告**。

## 获取凭证报告 (AWS CLI)
<a name="getting-credential-reports-cliapi"></a>

**下载凭证报告 (AWS CLI)**

1. 生成凭证报告。AWS 存储单个报告。如果存在报告，生成凭证报告将覆盖以前的报告。[https://docs.aws.amazon.com/cli/latest/reference/iam/generate-credential-report.html](https://docs.aws.amazon.com/cli/latest/reference/iam/generate-credential-report.html)

1. 查看上次生成的报告：[https://docs.aws.amazon.com/cli/latest/reference/iam/get-credential-report.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-credential-report.html)

## 获取凭证报告 (AWS API)
<a name="getting-credential-reports-api"></a>

**下载凭证报告 (AWS API)**

1. 生成凭证报告。AWS 存储单个报告。如果存在报告，生成凭证报告将覆盖以前的报告。[https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateCredentialReport.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateCredentialReport.html)

1. 查看上次生成的报告：[https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetCredentialReport.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetCredentialReport.html)