服务控制策略 (SCP)
服务控制策略 (SCP) 是一种组织策略,可用于管理组织中的权限。SCP 让您能够集中控制组织中 IAM 用户和 IAM 角色的最大可用权限。SCP 可帮助确保您的账户符合组织的访问控制准则。SCP 仅在启用所有功能的组织中可用。如果您的组织只启用了整合账单功能,则不能使用 SCP。有关启用 SCP 的说明,请参阅启用策略类型。
SCP 不会向组织中的 IAM 用户和 IAM 角色授予任何权限。SCP 不授予任何权限。SCP 针对组织中的 IAM 用户和 IAM 角色可以执行的操作定义了权限护栏或设置了限制。要授予权限,管理员必须附加相关策略来控制访问权限,例如,将基于身份的策略附加到 IAM 用户和 IAM 角色,以及将基于资源的策略附加到您账户中的资源。有效权限是 SCP 允许的权限与该身份和基于资源的策略允许的权限之间的逻辑交集。
重要
SCP 不会影响管理账户中的用户或角色。它们仅影响组织中的成员账户。
主题
测试 SCP 的影响
AWS 强烈建议您不要在没有彻底测试策略对账户的影响的情况下将 SCP 附加到组织的根。您可以改为创建一个 OU,并将您的账户一次移入一个,或至少每次以少量移入,以确保您不会无意中阻止用户使用关键服务。确定账户是否使用服务的一种方法是检查 IAM 中服务上次访问的数据。另一种方法是使用 AWS CloudTrail 记录 API 级别的服务使用情况。
注意
除非您修改 FullAWSAccess 策略或将其替换为具有允许操作的单独策略,否则不应删除该策略,否则成员账户的所有 AWS 操作都将失败。
SCP 的最大大小
SCP 中的所有字符将计入其最大大小。本指南中的示例演示了使用额外空格编排格式的 SCP,以提高其可读性。但是,在您的策略大小接近最大大小时,可以删除任何空格(例如,引号之外的空格字符和换行符)来节省空间。
提示
使用可视化编辑器构建您的 SCP。它会自动删除额外的空格。
将 SCP 附加到组织中的不同级别
有关 SCP 如何工作的详细说明,请参阅 SCP 评估。
SCP 对权限的影响
SCP 类似于 AWS Identity and Access Management(IAM)权限策略,使用几乎相同的语法。但是,SCP 永远不会授予权限。相反,SCP 属于 JSON 策略,用于指定组织中 IAM 用户和 IAM 角色的最大权限。有关更多信息,请参阅《IAM 用户指南》中的策略评估逻辑。
-
SCP 只影响 IAM 用户和角色,此类用户和角色由属于组织的账户进行管理。SCP 不会直接影响基于资源的策略,也不会影响组织外的账户的用户或角色。例如,请考虑一个 Amazon S3 存储桶,它由组织中的账户“A”所有。存储桶策略(一种基于资源的策略)会向来自组织外账户 B 的用户授予访问权限。账户 A 附加了一个 SCP。SCP 不适用于账户 B 中的那些外部用户。SCP 仅适用于由该组织内的账户 A 所管理的用户。
-
SCP 会限制成员账户中的 IAM 用户和角色的权限,包括成员账户的根用户。任何账户都只有上方的每个 父级允许的那些权限。如果权限在账户上面的任何级别被隐式阻止(通过不包括在
Allow
策略语句中)或明确阻止(通过包括在Deny
策略语句中),则受影响账户中的用户或角色不能使用该权限,即使账户管理员将带有 */* 权限的AdministratorAccess
IAM policy 附加到用户也是如此。 -
SCP 仅影响组织中的成员账户。它们对管理账户中的用户或角色没有任何影响。
-
仍然必须通过适当的 IAM 权限策略将权限授予用户和角色。没有任何 IAM 权限策略的用户没有访问权,即使适用的 SCP 允许所有服务和所有操作也是如此。
-
如果用户或角色具有 IAM 权限策略,而该策略允许访问适用的 SCP 也允许的操作,则用户或角色可以执行该操作。
-
如果用户或角色具有 IAM 权限策略,而该策略允许访问不允许或被相应的 SCP 明确拒绝的操作,则用户或角色不能执行该操作。
-
SCP 会影响附加账户中的所有用户和角色,包括根用户。唯一例外在 不受 SCP 限制的任务和实体中介绍。
-
SCP 不会 影响任何服务相关角色。服务相关角色让其他 AWS 服务能够与 AWS Organizations 集成且不受 SCP 的限制。
-
当您在根用户中禁用 SCP 策略类型时,所有 SCP 都会自动从该根用户中的所有 AWS Organizations 实体剥离。AWS Organizations 实体包括组织单位、组织和账户。如果在根中重新启用 SCP,该根将仅恢复为自动附加到根中所有实体的默认
FullAWSAccess
策略。在禁用 SCP 之前附加到 AWS Organizations 实体的任何 SCP 都将丢失,并且不能自动恢复,不过您可以手动重新附加它们。 -
如果权限边界(高级 IAM 功能)和 SCP 同时存在,则边界、SCP 以及基于身份的策略必须全部允许操作。
使用访问数据改进 SCP
使用管理账户凭证登录时,您可以在 IAM 控制台中的 AWS Organizations 部分查看 AWS Organizations 实体或策略的服务上次访问的数据。您还可在 IAM 中使用 AWS Command Line Interface(AWS CLI)或 AWS API 检索服务上次访问的相关数据。此数据包含相关信息,说明AWS Organizations中的 IAM 用户和角色上次尝试访问了哪些允许的服务以及访问这些服务的时间。您可以使用此信息确定不必要的权限,从而优化 SCP 以更好地遵循最小特权原则。
例如,您可能有一个拒绝列表 SCP,禁止访问三个 AWS 服务。SCP 的 Deny
语句中未列出的所有服务均允许访问。借助 IAM 中的服务上次访问数据,您可以了解哪些 AWS 服务是 SCP 允许的但从未被使用。借助该信息,您可以更新 SCP 以拒绝对不需要服务的访问权限。
有关更多信息,请参阅 IAM 用户指南中的以下主题:
不受 SCP 限制的任务和实体
您无法使用 SCP 来限制以下任务:
-
管理账户执行的任何操作
-
使用附加到服务相关角色的权限执行的任何操作
-
以根用户身份注册企业支持计划
-
以根用户身份更改 AWS Support 级别
-
为 CloudFront 私有内容提供可信签署人功能
-
以根用户身份为 Amazon Lightsail 电子邮件服务器和 Amazon EC2 实例配置反向 DNS
-
某些AWS相关服务的任务:
-
Alexa Top Sites
-
Alexa Web Information Service
-
Amazon Mechanical Turk
-
Amazon Product Marketing API
-