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

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

SCP 评估

注意

此部分中的信息适用于管理策略类型,包括 AI 服务选择退出策略、备份策略或标签策略。有关更多信息,请参阅了解管理策略继承

由于您可以在 Amazon Organizations 中的不同级别附加多个服务控制策略 (SCP),因此了解 SCP 的评估方式可以帮助您编写产生正确结果的 SCP。

SCP 如何与“允许”配合使用

允许特定账户获得权限,在从根到账户直接路径中的每个 OU(包括目标账户本身),每个级别都必须有显式Allow语句。这就是为什么在您启用 SCP 时,Amazon Organizations 会附加一个名为 FullAWSAccess 的 Amazon 托管 SCP 策略,该策略允许所有服务和操作。如果该策略在组织的任何级别被删除而未被替换,那么该级别下的所有 OU 和账户都将被阻止采取任何行动。

例如,我们来看一下图 1 和图 2 所示的场景。要允许账户 B 获得权限或服务,应将允许该权限或服务的 SCP 附加到根、生产 OU 和账户 B 本身。

SCP 评估遵循“默认拒绝”模式,这意味着 SCP 中未明确允许的任何权限都将被拒绝。如果在任何级别(例如根、生产 OU 或账户 B)的 SCP 中不存在允许语句,则访问将被拒绝。

注意
  • SCP 中的 Allow 语句允许 Resource 元素仅包含一个 "*" 条目。

  • SCP 中的 Allow 语句完全不能有 Condition 元素。

图 1:在根、生产 OU 和账户 B 处附加 Allow 语句的组织结构示例

图 2:生产 OU 中缺少 Allow 语句的组织结构示例及其对账户 B 的影响

SCP 如何使用“拒绝”

拒绝特定账户获得权限,在从根到账户直接路径中的每个 OU(包括目标账户本身),任何 SCP 都可以拒绝该权限。

例如,假设有一个 SCP 附加到生产 OU,它为给定服务指定了显式 Deny 语句。碰巧还有另一个 SCP 附加到根和账户 B,它显式允许访问相同的服务,如图 3 所示。因此,账户 A 和账户 B 都将被拒绝访问该服务,因为附加到组织中任何级别的拒绝策略都会针对其下的所有 OU 和成员账户进行评估。

图 3:生产 OU 中附加了 Deny 语句的组织结构示例及其对账户 B 的影响

使用 SCP 的策略

在编写 SCP 时,您可以结合使用 AllowDeny 语句来允许在组织中执行预期操作和服务。Deny 语句是实施限制的一种强大方式,应该适用于组织或 OU 更广泛的部分,因为当它们应用于根级或 OU 级别时,会影响其下的所有账户。

例如,您可以使用 阻止成员账户退出组织 在根级别实施策略,该策略将对组织中的所有账户有效。拒绝语句还支持条件元素,这有助于创建例外情况。

提示

您可以使用 IAM服务上次访问的数据来更新您的 SCP,以限制仅访问您需要的Amazon服务。有关更多信息,请参阅《IAM 用户指南》中的查看 Organizations 的 Organizations 服务上次访问的数据

在创建每个根、OU 和账户时,Amazon Organizations 会将名为 FullAWSAccess 的 Amazon 托管 SCP 附加到该根、OU 和账户。此策略允许所有服务和操作。您可以将 FullAWSAccess 替换为仅允许一组服务的策略,这样除非通过更新 SCP 来显式允许使用新的 Amazon 服务,否则不允许使用这些服务。例如,如果您的组织只想允许在您的环境中使用部分服务,则可以使用 Allow 语句来仅允许特定服务。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "cloudwatch:*", "organizations:*" ], "Resource": "*" } ] }

将两个语句组合在一起的策略可能与以下示例类似,它阻止成员账户离开组织并允许使用所需的 Amazon 服务。组织管理员可以分离 FullAWSAccess 策略并改为附加此策略。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "cloudwatch:*", "organizations:*" ], "Resource": "*" }, { "Effect": "Deny", "Action":"organizations:LeaveOrganization", "Resource": "*" } ] }

现在,考虑以下示例组织结构,以了解如何在组织的不同级别应用多个 SCP。

下表显示了沙盒 OU 中的有效策略。

情况 处的 SCP 沙盒 OU 处的 SCP 账户 A 处的 SCP 账户 A 处生成的策略 账户 B账户 C 处生成的策略
1 完全 Amazon 访问 完全 Amazon 访问 + 拒绝 S3 访问 完全 Amazon 访问 + 拒绝 EC2 访问 没有 S3,没有 EC2 访问 没有 S3 访问
2 完全 Amazon 访问 允许 Amazon Elastic Compute Cloud (Amazon EC2) 访问 允许 EC2 访问 仅允许 EC2 访问 仅允许 EC2 访问
3 拒绝 S3 访问 允许 S3 访问 完全 Amazon 访问 无服务访问 无服务访问

下表显示了工作负载 OU 中的有效策略。

情况 处的 SCP 工作负载 OU 处的 SCP 测试 OU 处的 SCP 账户 D 处生成的策略 生产 OU、账户 E账户 F 处生成的策略
1 完全 Amazon 访问 完全 Amazon 访问 完全 Amazon 访问 + 拒绝 EC2 访问 没有 EC2 访问 完全 Amazon 访问
2 完全 Amazon 访问 完全 Amazon 访问 允许 EC2 访问 允许 EC2 访问 完全 Amazon 访问
3 拒绝 S3 访问 完全 Amazon 访问 允许 S3 访问 无服务访问 无服务访问