本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
声明式策略
声明式策略允许您在整个组织中大规模地集中声明和强制执行所需的配置。 AWS 服务 连接后,当服务添加新功能或时,配置将始终保持不变 APIs。使用声明性策略来防止不合规操作。例如,您可以屏蔽整个组织中对 Amazon VPC 资源的公共互联网访问权限。
使用声明性策略的主要优势在于:
-
易用性:您可以通过 AWS Organizations 和 AWS Control Tower 控制台中的几个选项或使用 AWS CLI & 使用几个命令来强制执行基本配置 AWS SDKs。 AWS 服务
-
设置一次就算了:的基准配置始终保持 AWS 服务 不变,即使服务引入了新功能或 APIs。当向组织添加新账户或创建新的主体和资源时,也会保持基准配置。
-
透明度:账户状态报告允许您查看范围内账户的声明性策略支持的所有属性的当前状态。您还可以创建可自定义的错误消息,这可以帮助管理员将终端用户重定向到内部 Wiki 页面,或者提供描述性消息,帮助终端用户了解操作失败的原因。
有关支持的属 AWS 服务 性和属性的完整列表,请参阅支持的 AWS 服务 和属性。
声明性策略的工作原理
声明式策略是在服务的控制平面中强制执行的,这与诸如服务控制策略 (SCPs) 和资源控制策略 () 之类的授权策略有重要区别。RCPs虽然授权策略规范访问权限 APIs,但声明性策略直接应用于服务级别,以强制执行持久意图。这样可以确保始终强制执行基准配置,即使服务引入了新功能或新功能 APIs 也是如此。
下表有助于说明这种区别,表中还提供了一些使用案例。
| 服务控制策略 | 资源控制策略 | 声明式策略 | |
|---|---|---|---|
| 为什么? |
集中定义并大规模强制执行对主体(例如 IAM 用户和 IAM 角色)的一致访问控制。 |
集中定义并大规模强制执行对资源的一致访问控制 |
集中定义并大规模强制执行 AWS 服务的基准配置。 |
| 操作方法 |
在 API 级别控制主体的最大可用访问权限。 |
在 API 级别控制资源的最大可用访问权限。 |
通过在 AWS 服务 不使用 API 操作的情况下强制执行所需的配置。 |
| 是否管理服务关联角色? | 否 | 否 | 是 |
| 反馈机制 | 不可自定义的访问被拒绝的 SCP 错误。 | 不可自定义的访问被拒绝的 RCP 错误。 | 可自定义的错误消息。有关更多信息,请参阅 声明性策略的自定义错误消息。 |
| 策略示例 | 根据请求的AWS 区域拒绝访问AWS | 仅限通过 HTTPS 连接访问您的资源 | 允许的映像设置 |
在您创建并附加声明性策略后,将在整个组织中应用和强制执行该策略。声明式策略可以应用于整个组织、组织单位 (OUs) 或帐户。加入组织的账户将自动继承组织中的声明性策略。有关更多信息,请参阅 了解管理策略继承。
有效的策略是从组织根目录继承的一组规则, OUs 以及直接关联到账户的规则。有效策略指定适用于账户的最终规则集。有关更多信息,请参阅 查看有效管理策略。
如果分离了声明性策略,则属性状态将回滚到附加该声明性策略之前的状态。
声明性策略的自定义错误消息
声明性策略允许您创建自定义错误消息。例如,如果由于声明性策略而导致 API 操作失败,则可以设置错误消息或提供自定义 URL,例如指向内部 Wiki 的链接或描述该失败的消息的链接。如果您未指定自定义错误消息,则会 AWS Organizations 提供以下默认错误消息:Example: This action is denied due to an organizational
policy in effect。
您还可以使用审核创建声明性策略、更新声明性策略和删除声明性策略的过程。 AWS CloudTrail CloudTrail 可以标记由于声明式策略而导致的 API 操作失败。有关更多信息,请参阅日志记录和监控。
重要
请勿在自定义错误消息中包含个人身份信息(PII)或其他敏感信息。PII 包括可用于识别或定位个人的一般信息,涵盖财务、医疗、教育或就业等记录。PII 示例包括地址、银行账号和电话号码。
声明性策略的账户状态报告
账户状态报告允许您查看范围内账户的声明性策略支持的所有属性的当前状态。您可以选择要包含在报告范围内的账户和组织单位 (OUs),也可以通过选择根目录来选择整个组织。
此报告提供区域细分来帮助您评估就绪情况,并评测属性的当前状态是跨账户统一(通过 numberOfMatchedAccounts)还是不一致(通过 numberOfUnmatchedAccounts)。您还可以看到最常见值,即该属性中最常观察到的配置值。
图 1 中生成了一份账户状态报告,其中显示了以下属性的账户间一致性:VPC 屏蔽公共访问权限和映像屏蔽公共访问权限。这意味着,对于每个属性,范围内的所有账户对该属性的配置都相同。
生成的账户状态报告显示了以下属性的不一致账户:允许的映像设置、实例元数据默认值、Serial Console 访问权限和快照屏蔽公共访问权限。在此示例中,不一致账户的每个属性都是因为存在一个账户具有不同的配置值。
如果存在最常见值,则会显示在相应的列中。有关每个属性所控制内容的更多详细信息,请参阅声明性策略语法和示例策略。
您也可以展开属性查看区域明细。在此示例中,展开了“映像屏蔽公共访问权限”项,在每个区域中,您都可以看到具备账户间的统一性。
是否选择附加声明性策略来强制执行基准配置,取决于具体的使用案例。在附加声明性策略之前,使用账户状态报告来帮助评测就绪情况。
有关更多信息,请参阅生成账户状态报告。
图 1:VPC 屏蔽公共访问权限和映像屏蔽公共访问权限具备跨账户一致性的示例账户状态报告。
支持的 AWS 服务 和属性
的声明式策略支持的属性 EC2
下表显示了 Amazon EC2 相关服务支持的属性。
| AWS 服务 | 属性 | 策略效果 | 策略内容 | 更多信息 |
|---|---|---|---|---|
| Amazon VPC | VPC 屏蔽公共访问权限 | 控制 Amazon VPCs 和子网中的资源能否通过互联网网关访问互联网(IGWs)。 | 查看策略 | 有关更多信息,请参阅 A mazon VPC 用户指南中的阻止对子网的公有访问。 VPCs |
| Amazon EC2 | Serial Console 访问权限 | 控制是否可以访问 EC2 串行控制台。 | 查看策略 | 有关更多信息,请参阅 Amazon 弹性计算云用户指南中的配置 EC2 串行控制台访问权限。 |
| 映像屏蔽公共访问权限 | 控制 Amazon 机器映像 (AMIs) 是否可公开共享。 | 查看策略 | 有关更多信息,请参阅《Amazon 弹性计算云用户指南》 AMIs中的 “了解封锁公共访问”。 | |
| 允许的映像设置 | 使用 “允许” 控制亚马逊系统映像 (AMI) 的发现 EC2 和使用 AMIs。 | 查看策略 | 有关更多信息,请参阅《亚马逊弹性计算云用户指南》中的亚马逊系统映像 (AMIs)。 | |
| 实例元数据默认值 | 控制所有新 EC2 实例启动的 IMDS 默认值。 | 查看策略 | 有关更多信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的为新实例配置实例元数据选项。 | |
| Amazon EBS | 快照屏蔽公共访问权限 | 控制 Amazon EBS 快照是否可以公开访问。 | 查看策略 | 有关更多信息,请参阅《Amazon Elastic Block Store User Guide》中的 Block public access for Amazon EBS snapshots。 |