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

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

将基于身份的策略(IAM 策略)用于Amazon Organizations

作为组织管理账户的管理员,您可以控制对Amazon资源,方法是将权限策略附加到Amazon Identity and Access Management(IAM) 身份 (用户、组和角色)。在授予权限时,您要决定谁获得权限,获得对哪些资源的权限,以及您允许对这些资源执行的具体操作。如果将权限授予了角色,则组织中其他账户的用户可以担任该角色。

默认情况下,用户没有任何类型的权限。所有权限都必须通过策略明确授予。如果未明确授予某个权限,则默示拒绝该权限。如果明确拒绝了某个权限,则其优于任何其他可能允许该权限的策略。换而言之,用户仅具有明确授予和未明确拒绝的权限。

除了本主题中介绍的基本技术之外,您还可以使用应用于组织中资源的标签来控制对组织的访问:组织根目录、组织单位 (OU)、帐户和策略。有关更多信息,请参阅基于属性的访问控制,包含标签和Amazon Organizations

向用户授予完全管理员权限

您可以创建一个 IAM 策略来授予完整的Amazon Organizations管理员权限授予组织中的 IAM 用户。您可以使用 IAM 控制台中的 JSON 策略编辑器来执行此操作。

使用 JSON 策略编辑器创建策略

  1. 登录 Amazon Web Services Management Console,单击 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

  2. 在左侧导航栏中,选择策略

    如果这是您首次选择 Policies,则会显示 Welcome to Managed Policies 页面。选择 Get Started

  3. 在页面的顶部,选择 Create policy (创建策略)

  4. 选择 JSON 选项卡。

  5. 输入以下 JSON 策略文档:

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "organizations:*", "Resource": "*" } }
  6. 选择查看策略

    注意

    您可以随时在可视化编辑器JSON 选项卡之间切换。但是,如果您进行更改或选择查看策略中的可视化编辑器选项卡上,IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息,请参阅 。调整策略结构中的IAM 用户指南

  7. 在存储库的查看策略页面上,输入名称和可选说明对于您正在创建的策略。查看策略摘要以查看您的策略授予的权限。然后,选择创建策略以保存您的工作。

要了解有关创建 IAM 策略的更多信息,请参阅。创建 IAM 策略中的IAM 用户指南

通过操作授予受限访问权限

如果只是授予有限权限而非完全访问权限,则可以创建一个策略,从中列出您打算在Action元素。如以下示例中所示,您可以使用通配符 (*) 字符来仅授予 Describe*List* 权限,这实际上提供对组织的只读访问权限。

注意

在服务控制策略 (SCP) 中,Action 元素中的通配符 (*) 字符只能由自身使用或用在字符串结尾处。它不能出现在字符串的开头或中间部分。因此,"servicename:action*" 是有效的,但 "servicename:*action""servicename:some*action" 在 SCP 中都是无效的。

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

有关可在 IAM 策略中分配的所有权限的列表,请参阅定义的操作Amazon Organizations中的IAM 用户指南

授予对特定资源的访问权限

除了限制对特定操作的访问权之外,您还可以限制对组织中特定实体的访问权。前面部分示例中的 Resource 元素均指定通配符(“*”),这意味着“操作可以访问的任意资源”。不过,您可以使用希望允许访问的特定实体的 Amazon 资源名称 (ARN) 替换 "*"。

例如:向单个 OU 授予权限

以下策略中的第一条语句允许 IAM 用户对整个组织的读取访问权限,但第二条语句允许用户执行Amazon Organizations管理操作仅在单个指定组织单位 (OU) 中进行。这不会扩展到任何子 OU。未授予账单访问权。请注意,这不会授予您对 Amazon Web Services 账户 在 OU 中。它只授予执行Amazon Organizations对指定 OU 中的账户进行操作:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "organizations:Describe*", "organizations:List*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "organizations:*", "Resource": "arn:aws:organizations::<masterAccountId>:ou/o-<organizationId>/ou-<organizationalUnitId>" } ] }

您可以从 Amazon Organizations 控制台或调用 List* API 来获取 OU 和组织的 ID。您应用了此策略的用户或组可以执行任何操作 ("organizations:*")上直接包含在指定 OU 中的任何实体。OU 由 Amazon 资源名称 (ARN) 来标识。

有关各种资源的 ARN 的更多信息,请参阅。定义的资源Amazon Organizations中的IAM 用户指南

授予对有限服务委托人允许可信访问的能力

您可以使用策略语句的 Condition 元素对策略语句匹配的情况做进一步限制。

例如:授予对一个指定服务允许可信访问的权限

以下语句显示如何将允许可信访问的功能局限于您指定的哪些服务。如果用户尝试调用的 API 与用于 Amazon Web Services Single Sign On 的 API 拥有不同的服务委托人,则此策略不匹配并拒绝请求:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "organizations:EnableAWSServiceAccess", "Resource": "*", "Condition": { "StringEquals" : { "organizations:ServicePrincipal" : "sso.amazonaws.com" } } } ] }

有关各种资源的 ARN 的更多信息,请参阅。定义的资源Amazon Organizations中的IAM 用户指南