

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

# 生成声明性策略的账户状态报告
<a name="orgs_manage_policies_declarative_status-report"></a>

*账户状态报告*允许您查看范围内账户的声明性策略支持的所有属性的当前状态。您可以选择要包含在报告范围内的账户和组织单位 (OUs)，也可以通过选择根目录来选择整个组织。

此报告提供区域细分来帮助您评估就绪情况，并评测属性的当前状态是*跨账户统一*（通过 `numberOfMatchedAccounts`）还是*不一致*（通过 `numberOfUnmatchedAccounts`）。您还可以看到*最常见值*，即该属性中最常观察到的配置值。

是否选择附加声明性策略来强制执行基准配置，取决于具体的使用案例。

有关更多信息以及说明性示例，请参阅[声明性策略的账户状态报告](orgs_manage_policies_declarative.md#orgs_manage_policies_declarative-account-status-report)。

## 先决条件
<a name="orgs_manage_policies_declarative_accessing-status-report-prerequisites"></a>

在生成账户状态报告前，必须先执行下列步骤

1. 只有组织的管理账户或委派管理员才能调用 `StartDeclarativePoliciesReport` API。

1. 您必须拥有 S3 存储桶才能生成报告（创建新存储桶或使用现有存储桶），该存储桶必须位于发出请求的同一区域中，并且必须具有相应的 S3 存储桶策略。有关示例 S3 策略，请参阅《Amazon EC2 API Reference》**中 [Examples](https://docs.amazonaws.cn/AWSEC2/latest/APIReference/API_StartDeclarativePoliciesReport.html#API_StartDeclarativePoliciesReport_Examples) 下的 *Sample Amazon S3 policy* 

1. 您必须为声明性策略将在其中强制执行基准配置的服务，启用可信访问权限。这将创建一个只读的服务关联角色，用于生成组织内账户现有配置的账户状态报告。

   **使用控制台**

   对于 Organizations 控制台，此步骤属于启用声明性策略过程的一部分。

   **使用 Amazon CLI**

   对于 Amazon CLI，请使用[启用AWSService访问权限](https://docs.amazonaws.cn/organizations/latest/APIReference/API_EnableAWSServiceAccess.html) API。

   有关如何为特定服务启用可信访问权限的更多信息， Amazon CLI 请参阅 [Amazon Web Services 服务 ，您可以与一起使用 Amazon Organizations](https://docs.amazonaws.cn/organizations/latest/userguide/orgs_integrate_services_list.html)。

1. 每个组织一次只能生成一个报告。如果在生成一个报告的同时尝试生成另一个报告，将会导致错误。

## 访问合规性状态报告
<a name="orgs_manage_policies_declarative_accessing-status-report"></a>

**最小权限**  
要生成合规性状态报告，您需要具有运行以下操作的权限：  
`ec2:StartDeclarativePoliciesReport`
`ec2:DescribeDeclarativePoliciesReports`
`ec2:GetDeclarativePoliciesReportSummary`
`ec2:CancelDeclarativePoliciesReport`
`organizations:DescribeAccount`
`organizations:DescribeOrganization`
`organizations:DescribeOrganizationalUnit`
`organizations:ListAccounts`
`organizations:ListDelegatedAdministrators`
`organizations:ListAWSServiceAccessForOrganization`
`s3:PutObject`

**注意**  
如果您的 Amazon S3 存储桶使用 SSE-KMS 加密，您还必须在策略中包含 `kms:GenerateDataKey` 权限。

------
#### [ Amazon Web Services 管理控制台 ]

使用以下步骤来生成账户状态报告。

**生成账户状态报告**

1. 登录 [Amazon Organizations 控制台](https://console.amazonaws.cn/organizations/v2)。您必须以 IAM 用户的身份登录，担任 IAM 角色；或在组织的管理账户中以根用户的身份登录（[不推荐](https://docs.amazonaws.cn/IAM/latest/UserGuide/best-practices.html#lock-away-credentials)）。

1. 在**策略**页面上，选择 **EC2 的声明性策略**。

1. 在 **EC2 的声明性策略**页面上，从**操作**下拉菜单中选择**查看账户状态报告**。

1. 在**查看账户状态报告**页面上，选择**生成状态报告**。

1. 在 “**组织结构**” 控件中，指定要在报告中包含哪些组织单位 (OUs)。

1. 选择**提交**。

------
#### [ Amazon CLI & Amazon SDKs ]

**生成账户状态报告**

使用以下操作生成合规性状态报告、检查其状态并查看报告：
+ `ec2:start-declarative-policies-report`：生成账户状态报告。报告并非同步生成，可能需要几个小时才能完成。有关更多信息，请参阅 *Amazon EC2 API 参考*中的 [StartDeclarativePoliciesReport](https://docs.amazonaws.cn/AWSEC2/latest/APIReference/API_StartDeclarativePoliciesReport.html)。
+ `ec2:describe-declarative-policies-report`：描述账户状态报告的元数据，包括报告的状态。有关更多信息，请参阅 *Amazon EC2 API 参考*中的 [DescribeDeclarativePoliciesReports](https://docs.amazonaws.cn/AWSEC2/latest/APIReference/API_DescribeDeclarativePoliciesReports.html)。
+ `ec2:get-declarative-policies-report-summary`：检索账户状态报告摘要。有关更多信息，请参阅 *Amazon EC2 API 参考*中的 [GetDeclarativePoliciesReportSummary](https://docs.amazonaws.cn/AWSEC2/latest/APIReference/API_GetDeclarativePoliciesReportSummary.html)。
+ `ec2:cancel-declarative-policies-report`：取消生成账户状态报告。有关更多信息，请参阅 *Amazon EC2 API 参考*中的 [CancelDeclarativePoliciesReport](https://docs.amazonaws.cn/AWSEC2/latest/APIReference/API_CancelDeclarativePoliciesReport.html)。

在生成报告之前，请授予 EC2 声明性策略主体对将存储该报告的 Amazon S3 存储桶的访问权限。要执行该操作，请将以下策略附加到该存储桶。将 `amzn-s3-demo-bucket` 替换为实际的 Amazon S3 存储桶名称，并将 `identity_ARN` 替换为用于调用 `StartDeclarativePoliciesReport` API 的 IAM 身份。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DeclarativePoliciesReportDelivery",
            "Effect": "Allow",
            "Principal": {
                "AWS": "identity_ARN"
            },
            "Action": [
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringEquals": {
                    "aws:CalledViaLast": "organizations.amazonaws.com"
                }
            }
        }
    ]
}
```

------

------