有关使用 SCP 的策略
您可以将组织中的服务控制策略(SCP)配置为用作以下任一项:
提示
您可以使用 IAM 中服务上次访问的数据来更新您的 SCP,以限制仅访问您需要的Amazon服务。有关更多信息,请参阅《IAM 用户指南》中的查看 Organizations 的 Organizations 服务上次访问的数据。
将 SCP 用作拒绝列表
Amazon Organizations 的默认配置支持将 SCP 用作拒绝列表。利用拒绝列表策略,账户管理员可以委派所有服务和操作,直到您创建并附加一个 SCP,它将拒绝一项特定服务或一组操作。拒绝语句需要较少的维护,因为在 Amazon 添加新服务时不需要更新它们。拒绝语句通常使用较少的空间,因此更容易保持在 SCP 的最大大小内. 在 Effect
元素具有值 Deny
的语句中,您还可以限制对特定资源的访问,或者定义 SCP 何时生效的条件。
为了支持此操作,在创建每个根和 OU 时,Amazon Organizations 会将一个名为 FullAWSAccess
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
该策略使账户管理员可以委派任何服务或操作的权限,直到您创建并附加拒绝访问的 SCP 为止。您可以附加一个 SCP,该 SCP 显式禁止您不希望某些账户中的用户和角色执行的操作。
此类策略可能与以下示例类似,可阻止受影响账户中的用户对 Amazon DynamoDB 服务执行任何操作。组织管理员可以分离 FullAWSAccess
策略并改为附加此策略。此 SCP 仍允许所有其他服务及其操作。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowsAllActions", "Effect": "Allow", "Action": "*", "Resource": "*" }, { "Sid": "DenyDynamoDB", "Effect": "Deny", "Action": "dynamodb:*", "Resource": "*" } ] }
受影响账户中的用户无法执行 DynamoDB 操作,因为第二个语句中的显式 Deny
元素将覆盖第一个语句中的显式 Allow
。您也可以通过以下方式配置此设置:保留 FullAWSAccess
策略,然后附加另一个仅包含 Deny
语句的策略,如下所示。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "dynamodb:*", "Resource": "*" } ] }
应用于根或 OU 的上一个 DynamoDB 策略中的 FullAWSAccess
策略和 Deny
语句的组合拥有与同时包含这两个语句的单个策略相同的作用。将会合并在指定级别应用的所有策略。每个语句,无论源自哪个策略,都将根据前面讨论的规则进行评估(即,显式 Deny
覆盖显式 Allow
,后者覆盖默认的隐式 Deny
)。
将 SCP 用作允许列表
要将 SCP 用作允许列表,您必须将 Amazon 托管 FullAWSAccess
SCP 替换为一个仅明确允许您希望允许的服务和操作的 SCP。一旦删除默认 FullAWSAccess
SCP,现在将隐式拒绝所有服务的所有操作。随后,仅对于您希望允许的操作,您的自定义 SCP 将使用显式 Deny
覆盖隐式 Allow
。对于要为指定账户启用的某个权限,通过每个 OU 使用账户的直接路径从根提供的每个 SCP 甚至是附加到账户的 SCP 都必须允许该权限。
注意
-
SCP 中的
Allow
语句允许Resource
元素仅包含一个"*"
条目。 -
SCP 中的
Allow
语句完全不能有Condition
元素。
允许列表策略可能与以下示例类似,可允许账户用户为 Amazon Elastic Compute Cloud(Amazon EC2)和 Amazon CloudWatch 而非其他服务执行操作。父 OU 和根中的所有 SCP 还必须明确允许以下权限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "cloudwatch:*" ], "Resource": "*" } ] }