

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

# 使用管理组织的访问权限 AWS Organizations
<a name="orgs_permissions_overview"></a>

所有 AWS 资源，包括组织中的根 OUs、账户和策略，均归属于 AWS 账户，创建或访问资源的权限受权限策略的约束。对于一个组织，其管理账户拥有所有资源。账户管理员可以通过向 IAM 身份（用户、群组和角色）附加权限策略来控制对 AWS 资源的访问权限。

**注意**  
*账户管理员* (或管理员用户) 是具有管理员权限的用户。有关更多信息，请参阅《AWS 账户管理 用户指南》**中的 [IAM 的安全防御最佳实操](https://docs.aws.amazon.com/accounts/latest/reference/getting-started-step4.html)。

在授予权限时，您要决定谁获得权限，获得对哪些资源的权限，以及您允许对这些资源执行的具体操作。

默认情况下，IAM 用户、组和角色没有权限。作为组织管理账户的管理员，您可以执行管理任务或将管理员权限委派给管理账户中的其他 IAM 用户或角色。为此，您可以将 IAM 权限策略附加到 IAM 用户、组或角色。默认情况下，用户没有权限；这有时称为*隐式拒绝*。该策略将使用*显式允许* 覆盖隐式拒绝，这将指定用户可以执行哪些操作以及可对哪些资源执行这些操作。如果将权限授予了角色，则组织中其他账户的用户可以代入该角色。

## AWS Organizations 资源和运营
<a name="orgs-access-control-resources-and-operations"></a>

本节讨论 AWS Organizations 概念如何映射到其等同于 IAM 的概念。

### 资源
<a name="orgs_permissions_resources"></a>

在中 AWS Organizations，您可以控制对以下资源的访问权限：
+ 组织层次结构 OUs 的根源和构成组织层次结构的根源
+ 组织的成员账户
+ 您附加到组织中实体的账户
+ 用于更改组织状态的握手

其中，每种资源均有一个与之关联的唯一 Amazon 资源名称 (ARN)。您可以通过在 IAM 权限策略的 `Resource` 元素中指定资源的 ARN 来控制对资源的访问。有关中使用的资源的 ARN 格式的完整列表 AWS Organizations，请参阅《*服务授权*参考》 AWS Organizations中[定义的资源类型](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsorganizations.html#awsorganizations-resources-for-iam-policies)。

### 操作
<a name="orgs_permissions_operations"></a>

AWS 提供了一组操作来使用组织中的资源。利用这些操作，您可以对资源进行创建、列出、修改、访问其内容以及删除。可在 IAM policy 的 `Action` 元素中引用大多数操作来控制可使用操作的人员。有关可在 IAM 策略中用作权限的 AWS Organizations 操作列表，请参阅《服务授权参考》中的 [Actions defined by organizations](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-actions-as-permissions)**。

在将 `Action` 和 `Resource` 组合到一个权限策略 `Statement` 中后，可以准确控制可对哪些资源执行该组特定操作。

### 条件键
<a name="orgs_permissions_conditionkeys"></a>

AWS 提供了条件键，您可以通过查询这些条件键来对某些操作进行更精细的控制。您可以在 IAM policy 的 `Condition` 元素中参考这些条件密钥，以指定将语句视为匹配必须满足的其他条件。

以下条件键在以下情况下特别有用 AWS Organizations：
+ `aws:PrincipalOrgID` – 简化在基于资源的策略中指定 `Principal` 元素的过程。此全局密钥提供了一种替代方法，而不是列出组织 AWS 账户 中所有人的所有账户 IDs 。您可以在 [ 元素中指定](orgs_manage_org.md)组织 ID`Condition`，而不是列出作为组织成员的所有账户。
**注意**  
此全局条件也适用于组织的管理账户。

  有关更多信息，请参阅《IAM 用户指南》**中的[AWS 全局条件上下文键](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)中对 `PrincipalOrgID` 的说明。
+ `aws:PrincipalOrgPaths` – 使用此条件键可以匹配特定组织根、OU 或其子项的成员。当发出请求的委托人（根用户、IAM 用户或角色）位于指定的组织路径中时，`aws:PrincipalOrgPaths` 条件键返回 true。路径是 AWS Organizations 实体结构的文本表示形式。有关路径的更多信息，请参阅 *IAM 用户指南*中的[了解 AWS Organizations 实体路径](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor-view-data-orgs.html#access_policies_access-advisor-viewing-orgs-entity-path)。有关使用此条件键的更多信息，请参阅 I [A *M 用户指南PrincipalOrgPaths*中的 aws:](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principal-org-paths)。

  例如，以下条件元素匹配同一组织 OUs 中两个成员中任一的成员。

  ```
              "Condition": {
                  "ForAnyValue:StringLike": {
                      "aws:PrincipalOrgPaths": [
                          "o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-def0-awsbbbbb/",
                          "o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-jkl0-awsddddd/"
                      ]
                  }
              }
  ```
+ `organizations:PolicyType` – 您可以使用此条件键限制与 Organizations 策略相关的 API 操作以仅处理指定类型的 Organizations 策略。您可以将此条件键应用于任何包含与 Organizations 策略交互的操作的策略语句。

  可以将以下值与此条件键结合使用：
  + `SERVICE_CONTROL_POLICY`
  + `RESOURCE_CONTROL_POLICY`
  + `DECLARATIVE_POLICY_EC2`
  + `BACKUP_POLICY`
  + `TAG_POLICY`
  + `CHATBOT_POLICY`
  + `AISERVICES_OPT_OUT_POLICY`

  例如，以下示例策略允许用户执行任何 Organizations 操作。但是，如果用户执行采用策略参数的操作，则仅当指定的策略是标记策略时才允许该操作。如果用户指定任何其他类型的策略，则该操作将失败。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "IfTaggingAPIThenAllowOnOnlyTaggingPolicies",
              "Effect": "Allow",
              "Action": "organizations:*",
              "Resource": "*",
              "Condition": { 
                  "StringLikeIfExists": {
                      "organizations:PolicyType": [ "TAG_POLICY" ]
                  }
              }
          }
      ]
  }
  ```

------
+ `organizations:ServicePrincipal`— 如果您使用 “[启用AWSService访问” 或 “禁用访问” 操作启用](https://docs.aws.amazon.com/organizations/latest/APIReference/API_EnableAWSServiceAccess.html)或[禁用AWSService](https://docs.aws.amazon.com/organizations/latest/APIReference/API_DisableAWSServiceAccess.html)对其他 AWS 服务的[可信访问](orgs_integrate_services.md)，则可用作条件。您可以使用 `organizations:ServicePrincipal` 来将这些操作发出的请求限制为已批准的服务委托人名称列表。

  例如，以下策略允许用户仅在启用和禁用可信访问 AWS Firewall Manager 时进行指定 AWS Organizations。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AllowOnlyAWSFirewallIntegration",
              "Effect": "Allow",
              "Action": [
                  "organizations:EnableAWSServiceAccess",
                  "organizations:DisableAWSServiceAccess"
              ],
              "Resource": "*",
              "Condition": { 
                  "StringLikeIfExists": {
                      "organizations:ServicePrincipal": [ "fms.amazonaws.com" ]
                  }
              }
          }
      ]
  }
  ```

------

有关可在 IAM 策略中用作权限的所有 AWS Organizations特定条件密钥的列表，请参阅《*服务授权参考*》 AWS Organizations中的[条件密钥](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-policy-keys)。

## 了解资源所有权
<a name="orgs-access-control-resource-ownership"></a>

 AWS 账户 拥有在账户中创建的资源，无论谁创建了这些资源。具体而言，资源所有者是 AWS 账户 对资源创建请求进行身份验证的[委托人实体](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)（即根用户、IAM 用户或 IAM 角色）。对于组织，***始终***为管理账户。您无法从成员账户调用大多数创建或访问组织资源的操作。以下示例说明了它的工作原理：
+ 如果您使用管理账户的根账户凭证创建 OU，您的管理账户即为该资源的拥有者。（在中 AWS Organizations，资源是 OU）。
+ 如果您在管理账户中创建 IAM 用户并向其授予创建 OU 的权限，则该用户可以创建 OU。但是，管理账户（即该用户所属的账户）拥有 OU 资源。
+ 如果您在管理账户中创建的 IAM 角色具有创建 OU 的权限，则能够代入该角色的任何人都可以创建 OU。管理账户（即该角色而非代入用户所属的账户）拥有 OU 资源。

## 管理对 资源的访问
<a name="orgs-access-control-manage-access-to-resources"></a>

*权限策略*规定谁可以访问哪些内容。下一节介绍创建权限策略时的可用选项。

**注意**  
本节讨论在的上下文中使用 IAM AWS Organizations。这里不提供有关 IAM 服务的详细信息。有关完整的 IAM 文档，请参阅 [IAM 用户指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)。有关 IAM 策略语法和描述的信息，请参阅《IAM 用户指南》中的 [IAM JSON 策略参考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)**。

附加到 IAM 身份的策略称作*基于身份的*策略 (IAM policy)。附加到资源的策略称作*基于资源的* 策略。

**Topics**
+ [基于身份的权限策略 (IAM policy)](#orgs-access-control-iam-policies)

### 基于身份的权限策略 (IAM policy)
<a name="orgs-access-control-iam-policies"></a>

您可以将策略附加到 IAM 身份，以允许这些身份对 AWS 资源执行操作。例如，您可以执行以下操作：
+ 将@@ **权限策略附加到您账户中的用户或群组**-要向用户授予创建 AWS Organizations 资源（例如[服务控制策略 (SCP) 或 OU）](orgs_manage_policies_scps.md)的权限，您可以将权限策略附加到该用户所属的用户或群组。用户或组必须位于组织的管理账户中。
+ **向角色附加权限策略（授予跨账户权限）** – 您可以向 IAM 角色附加基于身份的权限策略以向组织授予跨账户访问权。例如，管理账户中的管理员可以创建一个角色来向成员账户中的用户授予跨账户权限，如下所示：

  1. 管理账户管理员创建一个 IAM 角色，并向该角色附加一个权限策略以授予对组织资源的权限。

  1. 管理账户管理员向将成员账户 ID 标识为能够担任该角色的 `Principal` 的角色附加信任策略。

  1. 随后，成员账户管理员可以委派权限以将角色代入成员账户中的任何用户。通过执行此操作，成员账户中的用户将能够在管理账户和组织中创建和访问资源。如果您想向 AWS 服务授予担任该角色的权限，则信任策略中的委托人也可以是 AWS 服务委托人。

  有关使用 IAM 委托权限的更多信息，请参阅《IAM 用户指南》**中的[访问权限管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)。

以下是允许用户在您的组织中执行 `CreateAccount` 操作的策略示例。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"Stmt1OrgPermissions",
         "Effect":"Allow",
         "Action":[
            "organizations:CreateAccount"
         ],
         "Resource":"*"
      }
   ]
}
```

------

您还可以在策略的 `Resource` 元素中提供部分 ARN 以指示资源类型。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowCreatingAccountsOnResource",
         "Effect":"Allow",
         "Action":"organizations:CreateAccount",
         "Resource":"arn:aws:organizations::*:account/*"
      }
   ]
}
```

------

您也可以拒绝创建不包含所创建账户的特定标签的账户。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"DenyCreatingAccountsOnResourceBasedOnTag",
         "Effect":"Deny",
         "Action":"organizations:CreateAccount",
         "Resource":"*",
         "Condition":{
            "StringEquals":{
               "aws:ResourceTag/key":"value"
            }
         }
      }
   ]
}
```

------

有关用户、组、角色和权限的更多信息，请参阅《IAM 用户指南》中的 [IAM 身份（用户、用户组和角色）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)**。

## 指定策略元素：操作、条件、效果和资源
<a name="orgs-access-control-policy-elements"></a>

对于每种 AWS Organizations 资源，该服务都定义了一组 API 操作或操作，这些操作或操作可以以某种方式与该资源交互或操纵该资源。要授予这些操作的权限，请 AWS Organizations 定义一组可以在策略中指定的操作。例如，对于 OU 资源， AWS Organizations 定义如下所示的操作：
+ `AttachPolicy` 和 `DetachPolicy`
+ `CreateOrganizationalUnit` 和 `DeleteOrganizationalUnit`
+ `ListOrganizationalUnits` 和 `DescribeOrganizationalUnit`

在有些情况下，执行 API 操作可能需要多个操作的权限，并且可能需要多个资源的权限。

以下是可在 IAM 权限策略中使用的最基本元素：
+ **Action** – 使用此关键字标识要允许或拒绝的操作。例如，根据指定的`Effect`，`organizations:CreateAccount`允许或拒绝用户执行 AWS Organizations `CreateAccount`操作的权限。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素：操作](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_action.html)。
+ **Resource** – 使用此关键字指定策略语句适用于的资源的 ARN。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素：资源](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html)。
+ **Condition** – 使用此关键字指定要应用策略语句必须满足的条件。`Condition` 通常指定为使策略匹配必须存在的额外情况。有关更多信息，请参阅*《IAM 用户指南》*中的 [IAM JSON 策略元素：条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。
+ **Effect** – 使用此关键字指定策略语句是允许还是拒绝对资源进行的操作。如果没有明确授予 (或允许) 对资源的访问权，则隐式拒绝访问。您也可以明确拒绝对资源的访问权，这样做可确保用户无法对指定资源执行指定操作，即使其他策略授予了访问权也是如此。有关更多信息，请参阅《IAM 用户指南》[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_effect.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_effect.html)中的 *IAM JSON 策略元素：影响*。
+ **Principal** – 在基于身份的策略 (IAM policy) 中，附加了策略的用户会自动成为隐式委托人。对于基于资源的策略，您可以指定要接收权限的用户、账户、服务或其他实体（仅适用于基于资源的策略）。

有关 IAM 策略语法和描述的信息，请参阅《IAM 用户指南》中的 [IAM JSON 策略参考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)**。