服务控制策略的继承 - Amazon Organizations
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

服务控制策略的继承

重要

此部分中的信息适用于管理策略类型,包括 AI 服务选择退出策略、备份策略或标签策略。请参阅下一部分:管理策略类型的策略语法和继承

服务控制策略 (SCP)

服务控制策略的继承的行为就像一个筛选器,权限通过该筛选器流到下面的树的所有部分。想象一下,组织的倒立树结构由多个分支构成,这些分支从根连接到所有 OU,并在账户处结束。所有 Amazon 权限都会流入树的根。然后,这些权限必须流经附加到根、OU 和账户的 SCP,才能转到发出请求的委托人(IAM 角色或用户)。每个 SCP 均可筛选传递到其下方级别的权限。如果某个操作被 Deny 语句阻止,则所有受该 SCP 影响的 OU 和账户对该操作的访问都将被拒绝。如果某个权限被较高级别的 SCP 阻止,则较低级别的 SCP 将无法添加该权限。SCP 能筛选;它们绝不会添加权限。

SCP 不支持更改子 OU 和账户继承策略元素的方式的继承运算符。

下图说明了 SCP 的工作方式。

在此图中,假定左侧的椭圆表示附加到组织根的 SCP。它允许权限 A、B 和 C。根包含一个组织部门(OU),并附加了第二个 SCP(由右侧的椭圆表示)。第二个 SCP 允许权限 C、D 和 E。由于附加到根的 SCP 不允许 D 或 E,因此组织中的任何 OU 或账户都不能使用它们。即使附加到 OU 的 SCP 明确允许 D 和 E,它们最终仍然会被阻止,因为它们被附加到根的 SCP 阻止。由于 OU 的 SCP 不允许 A 或 B,因此,已为 OU 及其任何子 OU 或账户阻止这些权限。但是,根下可能存在的其他 OU 仍可以允许 A 和 B。

当您将 OU 的层次结构向下遍历到账户时,上一段中的过程将在每个 OU 上重复,最后在该账户上重复。在每个级别上,父级的评估结果将成为图左侧的策略,并与附加到子 OU 的 SCP 进行比较。

例如,如果要将树向下移动到某个名为 X 的子 OU,请假设左侧的椭圆表示继承的、有效的权限,这些权限由层次结构中 OU X 上方所有 SCP 允许。右侧的椭圆表示附加到 OU 或 OU X 中包含的Amazon Web Services 账户的 SCP。同样,这些权限的交集是可用于右侧实体的权限适用范围。如果该实体是Amazon Web Services 账户,则交集是可以授予该账户中的用户和角色的权限组。如果实体是 OU,则交集是可由该 OU 子代继承的权限集。对 OU 层次结构下的每个级别重复此过程,直到您到达账户本身。最终有效策略是该账户上方每个 SCP 允许并附加到该账户的权限列表。

这意味着,要在成员账户级别允许Amazon服务 API,则必须在成员账户和组织的根之间的每个级别上允许 API。您必须将 SCP 附加到从组织的根到允许给定Amazon服务 API(如 ec2:RunInstances)的成员账户的每个级别。您可以使用下列任一策略执行此操作:

  • 拒绝列表策略使用默认附加到每个 OU 和账户的 FullAWSAccess SCP。此 SCP 将覆盖默认的隐式拒绝,并明确允许所有权限从根传递到每个账户,除非您使用您创建并附加到相应 OU 或账户的其他 SCP 明确拒绝权限。此策略之所以有效,是因为在策略中的显式 deny 总是覆盖任何类型的 allow。具有拒绝策略的 OU 级别以下的任何账户都不能使用被拒绝的 API,也无法将权限添加回层次结构中的较低位置。有关更多信息,请参阅 将 SCP 用作拒绝列表

  • 允许列表策略会删除默认附加到每个 OU 和账户的 FullAWSAccess SCP。这意味着除非您明确允许,否则任何位置都不允许任何 API。要允许服务 API 在Amazon Web Services 账户中运作,您必须创建自己的 SCP 并将它们附加到账户及其之上的每个 OU,直至附加到根为止(包括根)。层次结构中的每个 SCP(从根开始)必须明确允许您希望在 OU 及其下面的账户中使用的 API。此策略之所以有效,是因为 SCP 中的显式 allow 会覆盖隐式 deny。有关更多信息,请参阅 将 SCP 用作允许列表

要查看如何根据隐式与显式允许和拒绝来评估策略,以及覆盖的具体内容,请参阅确定是允许还是拒绝账户内的请求

仍将使用已附加到用户和角色或组的 Amazon Identity and Access Management(IAM)权限策略向账户内的用户和角色授予权限。SCP 只确定这些策略会授予哪些可用权限。用户无法执行适用 SCP 不允许的任何操作。如果一个或多个 IAM 权限策略向用户或角色授予 SCP 所允许的操作的权限,则可使用这些操作。

如果您将 SCP 附加到组织根或 OU,或将 SCP 直接附加到账户,则将使用控制 IAM 权限策略的相同规则来评估影响给定账户的所有策略:

  • 受影响账户中的用户和角色无法执行 SCP 的 Deny 语句中列出的任何操作。显式 Deny 语句将覆盖其他 SCP 可能授予的任何 Allow

  • 可向受影响账户中的用户和角色委派在 SCP (例如,默认“*”SCP 或调用特定服务或操作的任何其他 SCP) 中具有显式 Allow 的任何操作。

  • SCP 未明确允许的任何操作将被隐式拒绝,且无法委派给受影响账户中的用户或角色。

默认情况下,名为 FullAWSAccess 的 SCP 将附加到每个组织根、OU 和账户。此默认 SCP 允许所有操作和所有服务。因此,在新的组织中,在您开始创建或处理 SCP 之前,所有现有的 IAM 权限仍会继续像以往一样运行。只要您将新的或修改后的 SCP 应用于包含账户的组织根或 OU,您的用户在该账户中拥有的权限将由 SCP 筛选。现在,如果层次结构的每个层到指定账户的 SCP 拒绝用于工作的权限,则这些权限可能被拒绝。

如果您在组织根上禁用 SCP 策略类型,则所有 SCP 都将自动从该组织根中的所有实体分离。如果您在组织根上重新启用 SCP,则所有原始附加对象将丢失,并且所有实体将重置为仅附加到默认 FullAWSAccess SCP。

有关 SCP 的语法的详细信息,请参阅 SCP 语法

您可以看到应用于账户的所有策略及其来源的列表。为此,请在 Amazon Organizations 控制台中选择一个账户。在账户详细信息页面上,选择 Policies (策略),然后在右侧详细信息窗格中选择 Service Control Policies (服务控制策略)。同一策略可多次应用于账户,因为该策略可附加到账户的任意或所有父容器。应用于账户的有效策略是所有适用策略的允许权限的交集。

有关如何使用 SCP 的更多信息,请参阅服务控制策略 (SCP)