

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

# 声明式策略
<a name="orgs_manage_policies_declarative"></a>

声明式策略允许您在整个组织中大规模地集中声明和强制执行所需的配置。 Amazon Web Services 服务 连接后，当服务添加新功能或时，配置将始终保持不变 APIs。使用声明性策略来防止不合规操作。例如，您可以屏蔽整个组织中对 Amazon VPC 资源的公共互联网访问权限。

使用声明性策略的主要优势在于：
+ **易用性**：您可以通过 Amazon Organizations 和 Amazon Control Tower 控制台中的几个选项或使用 Amazon CLI & 使用几个命令来强制执行基本配置 Amazon SDKs。 Amazon Web Services 服务 
+ **设置一次就算了**：的基准配置始终保持 Amazon Web Services 服务 不变，即使服务引入了新功能或 APIs。当向组织添加新账户或创建新的主体和资源时，也会保持基准配置。
+ **透明度**：账户状态报告允许您查看范围内账户的声明性策略支持的所有属性的当前状态。您还可以创建可自定义的错误消息，这可以帮助管理员将终端用户重定向到内部 Wiki 页面，或者提供描述性消息，帮助终端用户了解操作失败的原因。

 有关支持的属 Amazon Web Services 服务 性和属性的完整列表，请参阅[支持 Amazon Web Services 服务 和属性](#orgs_manage_policies_declarative-supported-controls)。

**Topics**
+ [声明性策略的工作原理](#orgs_manage_policies_declarative-how-work)
+ [自定义错误消息](#orgs_manage_policies_declarative-custom-message)
+ [账户状态报告](#orgs_manage_policies_declarative-account-status-report)
+ [受支持的服务](#orgs_manage_policies_declarative-supported-controls)
+ [开始使用](orgs_manage_policies-declarative_getting-started.md)
+ [最佳实践](orgs_manage_policies_declarative_best-practices.md)
+ [生成账户状态报告](orgs_manage_policies_declarative_status-report.md)
+ [声明性策略语法和示例](orgs_manage_policies_declarative_syntax.md)

## 声明性策略的工作原理
<a name="orgs_manage_policies_declarative-how-work"></a>

声明式策略是在服务的控制平面中强制执行的，这与[诸如服务控制策略 (SCPs) 和资源控制策略 () 之类的授权策略](https://docs.amazonaws.cn/organizations/latest/userguide/orgs_manage_policies_authorization_policies.html)有重要区别。RCPs虽然授权策略规范访问权限 APIs，但声明性策略直接应用于服务级别，以强制执行持久意图。这样可以确保始终强制执行基准配置，即使服务引入了新功能或新功能 APIs 也是如此。

下表有助于说明这种区别，表中还提供了一些使用案例。


****  

|  | 服务控制策略 | 资源控制策略 | 声明式策略 | 
| --- | --- | --- | --- | 
| 为什么？ |  集中定义并大规模强制执行对主体（例如 IAM 用户和 IAM 角色）的一致访问控制。  |  集中定义并大规模强制执行对资源的一致访问控制  |  集中定义并大规模强制执行 Amazon 服务的基准配置。  | 
| 操作方法 |  在 API 级别控制主体的最大可用访问权限。  |  在 API 级别控制资源的最大可用访问权限。  |  通过在 Amazon Web Services 服务 不使用 API 操作的情况下强制执行所需的配置。  | 
| 是否管理服务关联角色？ | 否 | 否 | 是 | 
| 反馈机制 | 不可自定义的访问被拒绝的 SCP 错误。 | 不可自定义的访问被拒绝的 RCP 错误。 | 可自定义的错误消息。有关更多信息，请参阅 [声明性策略的自定义错误消息](#orgs_manage_policies_declarative-custom-message)。 | 
|  策略示例 | [拒绝成员账户退出组织](https://github.com/aws-samples/service-control-policy-examples/blob/main/Privileged-access-controls/Deny-member-accounts-from-leaving-your-AWS-organization.json) | [限制仅通过 HTTPS 连接访问您的资源](https://github.com/aws-samples/resource-control-policy-examples/blob/main/Restrict-resource-access-patterns/Restrict-access-to-only-HTTPS-connections-to-your-resources.json) | [允许的映像设置](orgs_manage_policies_declarative_syntax.md#declarative-policy-ec2-ami-allowed-images) | 

在您[创建](https://docs.amazonaws.cn/organizations/latest/userguide/orgs_policies_create.html#create-declarative-policy-procedure)并[附加](https://docs.amazonaws.cn/organizations/latest/userguide/orgs_policies_attach.html)声明性策略后，将在整个组织中应用和强制执行该策略。声明式策略可以应用于整个组织、组织单位 (OUs) 或帐户。加入组织的账户将自动继承组织中的声明性策略。有关更多信息，请参阅 [了解管理策略继承](orgs_manage_policies_inheritance_mgmt.md)。

*有效的策略*是从组织根目录继承的一组规则， OUs 以及直接关联到账户的规则。有效策略指定适用于账户的最终规则集。有关更多信息，请参阅 [查看有效管理策略](orgs_manage_policies_effective.md)。

如果[分离](https://docs.amazonaws.cn/organizations/latest/userguide/orgs_policies_detach.html)了声明性策略，则属性状态将回滚到附加该声明性策略之前的状态。

## 声明性策略的自定义错误消息
<a name="orgs_manage_policies_declarative-custom-message"></a>

声明性策略允许您创建自定义错误消息。例如，如果由于声明性策略而导致 API 操作失败，则可以设置错误消息或提供自定义 URL，例如指向内部 Wiki 的链接或描述该失败的消息的链接。如果您未指定自定义错误消息，则会 Amazon Organizations 提供以下默认错误消息：`Example: This action is denied due to an organizational policy in effect`。

您还可以使用审核创建声明性策略、更新声明性策略和删除声明性策略的过程。 Amazon CloudTrail CloudTrail 可以标记由于声明式策略而导致的 API 操作失败。有关更多信息，请参阅[日志记录和监控](https://docs.amazonaws.cn/organizations/latest/userguide/orgs_security_incident-response.html)。

**重要**  
请勿在自定义错误消息中包含*个人身份信息（PII）*或其他敏感信息。PII 包括可用于识别或定位个人的一般信息，涵盖财务、医疗、教育或就业等记录。PII 示例包括地址、银行账号和电话号码。

## 声明性策略的账户状态报告
<a name="orgs_manage_policies_declarative-account-status-report"></a>

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

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

图 1 中生成了一份账户状态报告，其中显示了以下属性的账户间一致性：VPC 屏蔽公共访问权限和映像屏蔽公共访问权限。这意味着，对于每个属性，范围内的所有账户对该属性的配置都相同。

生成的账户状态报告显示了以下属性的不一致账户：允许的映像设置、实例元数据默认值、Serial Console 访问权限和快照屏蔽公共访问权限。在此示例中，不一致账户的每个属性都是因为存在一个账户具有不同的配置值。

如果存在最常见值，则会显示在相应的列中。有关每个属性所控制内容的更多详细信息，请参阅[声明性策略语法和示例策略](orgs_manage_policies_declarative_syntax.md)。

您也可以展开属性查看区域明细。在此示例中，展开了“映像屏蔽公共访问权限”项，在每个区域中，您都可以看到具备账户间的统一性。

是否选择附加声明性策略来强制执行基准配置，取决于具体的使用案例。在附加声明性策略之前，使用账户状态报告来帮助评测就绪情况。

有关更多信息，请参阅[生成账户状态报告](orgs_manage_policies_declarative_status-report.md)。

![\[VPC 屏蔽公共访问权限和映像屏蔽公共访问权限具备跨账户一致性的示例账户状态报告\]](http://docs.amazonaws.cn/organizations/latest/userguide/images/declarative-status-report.png)


*图 1：VPC 屏蔽公共访问权限和映像屏蔽公共访问权限具备跨账户一致性的示例账户状态报告。*

## 支持 Amazon Web Services 服务 和属性
<a name="orgs_manage_policies_declarative-supported-controls"></a>

### EC2 的声明性策略支持的属性
<a name="orgs_manage_policies_declarative-supported-controls-ec2"></a>

下表显示了 Amazon EC2 相关服务支持的属性。


**EC2 的声明性策略**  
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/organizations/latest/userguide/orgs_manage_policies_declarative.html)