

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS Control Tower 如何與角色搭配使用來建立和管理帳戶
<a name="roles-how"></a>

一般而言，角色是 中身分和存取管理 (IAM) 的一部分 AWS。如需 IAM 和 中角色的一般資訊 AWS，請參閱[《IAM *AWS 使用者指南》中的 IAM* 角色主題](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。

## 角色和帳戶建立
<a name="roles-and-account-creation"></a>

AWS Control Tower 會透過呼叫 的 `CreateAccount` API 來建立客戶的帳戶 AWS Organizations。當 AWS Organizations 建立此帳戶時，它會在該帳戶中建立角色，透過將參數傳遞至 API 來讓 AWS Control Tower 命名。角色的名稱是 `AWSControlTowerExecution`。

AWS Control Tower 接管 Account Factory 建立的所有帳戶`AWSControlTowerExecution`的角色。使用此角色時，AWS Control Tower 會為帳戶*建立基準*，並套用強制性 （和任何其他啟用的） 控制項，這會導致建立其他角色。這些角色會由其他服務使用，例如 AWS Config。

**注意**  
若要*基準*化帳戶，請設定其資源，其中包含 [Account Factory 範本](https://docs.aws.amazon.com//controltower/latest/userguide/account-factory-considerations.html)，有時稱為*藍圖*和控制項。基本程序也會在 帳戶上設定集中式記錄和安全性稽核角色，做為部署範本的一部分。AWS Control Tower 基準包含在您套用至每個已註冊帳戶的角色中。

如需帳戶和資源的詳細資訊，請參閱 [關於 AWS Control Tower AWS 帳戶 中的](accounts.md)。

## AWS Control Tower 如何彙總未受管 OUs和帳戶中的 AWS Config 規則
<a name="config-role-for-organizations"></a>
+  AWS Control Tower 管理帳戶會建立組織層級彙總工具，協助偵測外部 AWS Config 規則，因此 AWS Control Tower 不需要存取未受管帳戶。AWS Control Tower 主控台會顯示您為指定帳戶建立的外部 AWS Config 規則數量。您可以在帳戶詳細資訊頁面的外部 **Config 規則合規索引標籤中檢視這些外部**規則**的詳細資訊**。
+  若要建立彙總工具，AWS Control Tower 會新增具有描述組織和列出其下帳戶所需許可的角色。此`AWSControlTowerConfigAggregatorRoleForOrganizations`角色需要 `AWSConfigRoleForOrganizations`受管政策和與 的信任關係`config.amazonaws.com`。

**注意**  
 * 使用登陸區域 4.0 版的客戶不需要此角色，因為 AWS Control Tower 已從現有的組織層級組態彙總工具遷移至服務連結組態彙總工具 * 

**注意**  
 當您在包含登陸區域的組織中啟用受信任存取時，AWS Control Tower 可以為組織中的所有帳戶建立角色、管理資源和讀取資料。透過受信任的存取，AWS Control Tower 可以使用組織中的任何帳戶或 OU，無論已註冊和已註冊*或未*註冊**。

以下是連接到角色的 IAM 政策 (JSON 成品）：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
      "Statement": [
       {
        "Effect": "Allow",
        "Action": [
          "organizations:ListAccounts",
          "organizations:DescribeOrganization",
          "organizations:ListAWSServiceAccessForOrganization"
         ],
       "Resource": "*"
      }
    ]
  }
```

------

以下是`AWSControlTowerConfigAggregatorRoleForOrganizations`信任關係：

```
{
    "Version": "2012-10-17",		 	 	 
      "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
        "Service": "config.amazonaws.com"
        },
        "Action": "sts:AssumeRole"
      }
    ]
  }
}
```

若要在管理帳戶中部署此功能，下列許可會新增至 受管政策 中`AWSControlTowerServiceRolePolicy`，該政策會在`AWSControlTowerAdmin`角色建立 AWS Config 彙總工具時使用：

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "config:PutConfigurationAggregator",
          "config:DeleteConfigurationAggregator",
          "iam:PassRole"
          ],
        "Resource": [
          "arn:aws:iam::123456789012:role/service-role/AWSControlTowerConfigAggregatorRoleForOrganizations",
          "arn:aws:config:us-east-1:123456789012:config-aggregator/"
          ]
        },
      {
        "Effect": "Allow",
        "Action": "organizations:EnableAWSServiceAccess",
        "Resource": "*"
      }
    ]
}
```

------

新建立的資源： `AWSControlTowerConfigAggregatorRoleForOrganizations`和 `aws-controltower-ConfigAggregatorForOrganizations`

當您準備好時，您可以個別註冊帳戶，或透過註冊 OU 將其註冊為群組。當您註冊帳戶後，如果您在 中建立規則 AWS Config，AWS Control Tower 會偵測新的規則。彙整工具會顯示外部規則的數量，並提供 AWS Config 主控台的連結，您可以在其中檢視您帳戶的每個外部規則的詳細資訊。使用 主控台和 AWS Control Tower 主控台中 AWS Config 的資訊，判斷您是否為帳戶啟用適當的控制項。

## AWS Control Tower 稽核帳戶的程式設計角色和信任關係
<a name="stacksets-and-roles"></a>

您可以登入稽核帳戶，並擔任角色以程式設計方式檢閱其他帳戶。稽核帳戶不允許您手動登入其他帳戶。

稽核帳戶可讓您透過僅授予 AWS Lambda 函數的某些角色，以程式設計方式存取其他帳戶。基於安全考量，這些角色與其他角色具有*信任關係*，這表示嚴格定義可使用角色的條件。

AWS Control Tower 堆疊會在稽核帳戶中`StackSet-AWSControlTowerBP-BASELINE-ROLES`建立這些僅限程式設計的跨帳戶 IAM 角色：
+ **aws-controltower-AdministratorExecutionRole**
+ **aws-controltower-ReadOnlyExecutionRole**

AWS Control Tower 堆疊會在稽核帳戶中`StackSet-AWSControlTowerSecurityResources`建立這些僅限程式設計的跨帳戶 IAM 角色：
+ **aws-controltower-AuditAdministratorRole**
+ **aws-controltower-AuditReadOnlyRole**

`ReadOnlyExecutionRole:` 請注意，此角色允許稽核帳戶在整個組織中讀取 Amazon S3 儲存貯體中的物件 （與僅允許中繼資料存取`SecurityAudit`的政策相反）。

**aws-controltower-AdministratorExecutionRole：**
+ 具有管理員許可
+ 無法從主控台擔任
+ 只能由稽核帳戶中的角色擔任 – `aws-controltower-AuditAdministratorRole` 

下列成品顯示 的信任關係`aws-controltower-AdministratorExecutionRole`。預留位置號碼`012345678901`將由您稽核帳戶的`Audit_acct_ID`號碼取代。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::012345678901:role/aws-controltower-AuditAdministratorRole"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

**aws-controltower-AuditAdministratorRole：**
+ 只能由 AWS Lambda 服務擔任 
+ 具有許可，可在名稱開頭為字串**日誌**的 Amazon S3 物件上執行讀取 （取得） 和寫入 （提取） 操作

**連接的政策：**

1. **AWSLambdaExecute** – AWS 受管政策

2. **AssumeRole-aws-controltower-AuditAdministratorRole** – 內嵌政策 – 由 AWS Control Tower 建立，成品如下。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
	{
	"Action": [
		 "sts:AssumeRole"
		 ],
	"Resource": [
		 "arn:aws:iam::*:role/aws-controltower-AdministratorExecutionRole"
		 ],
	"Effect": "Allow"
	}
   ]
}
```

------

下列成品顯示 的信任關係`aws-controltower-AuditAdministratorRole`：

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

**aws-controltower-ReadOnlyExecutionRole：**
+ 無法從主控台擔任
+ 只能由稽核帳戶中的另一個角色擔任 – `AuditReadOnlyRole`

下列成品顯示 的信任關係`aws-controltower-ReadOnlyExecutionRole`。預留位置號碼`012345678901`將由您稽核帳戶的`Audit_acct_ID`號碼取代。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::012345678901:role/aws-controltower-AuditReadOnlyRole "
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

**aws-controltower-AuditReadOnlyRole：**
+ 只能由 AWS Lambda 服務擔任
+ 具有在名稱開頭為字串**日誌**的 Amazon S3 物件上執行讀取 （取得） 和寫入 （提取） 操作的許可

**連接的政策：**

1. **AWSLambdaExecute** – AWS 受管政策

2. **AssumeRole-aws-controltower-AuditReadOnlyRole** – 內嵌政策 – 由 AWS Control Tower 建立，成品如下。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
	{
	"Action": [
		"sts:AssumeRole"
	],
	"Resource": [
		"arn:aws:iam::*:role/aws-controltower-ReadOnlyExecutionRole"
	],
	"Effect": "Allow"
   }
  ]
}
```

------

下列成品顯示 的信任關係`aws-controltower-AuditAdministratorRole`：

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

## 使用 IAM 角色自動帳戶佈建
<a name="automated-provisioning"></a>

若要以更自動化的方式設定 Account Factory 帳戶，您可以在 AWS Control Tower 管理帳戶中建立 Lambda 函數，該帳戶會在成員帳戶中[擔任 **AWSControlTowerExecution** 角色](https://aws.amazon.com/premiumsupport/knowledge-center/lambda-function-assume-iam-role/)。然後，使用 角色，管理帳戶會在每個成員帳戶中執行所需的組態步驟。

 如果您使用 Lambda 函數佈建帳戶，則將執行此工作的身分除了 之外，還必須具有下列 IAM 許可政策`AWSServiceCatalogEndUserFullAccess`。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSControlTowerAccountFactoryAccess",
            "Effect": "Allow",
            "Action": [
                "sso:GetProfile",
                "sso:CreateProfile",
                "sso:UpdateProfile",
                "sso:AssociateProfile",
                "sso:CreateApplicationInstance",
                "sso:GetSSOStatus",
                "sso:GetTrust",
                "sso:CreateTrust",
                "sso:UpdateTrust",
                "sso:GetPeregrineStatus",
                "sso:GetApplicationInstance",
                "sso:ListDirectoryAssociations",
                "sso:ListPermissionSets",
                "sso:GetPermissionSet",
                "sso:ProvisionApplicationInstanceForAWSAccount",
                "sso:ProvisionApplicationProfileForAWSAccountInstance",
                "sso:ProvisionSAMLProvider",
                "sso:ListProfileAssociations",
                "sso-directory:ListMembersInGroup",
                "sso-directory:AddMemberToGroup",
                "sso-directory:SearchGroups",
                "sso-directory:SearchUsers",
                "sso-directory:CreateUser",
                "sso-directory:DescribeGroups",
                "sso-directory:DescribeDirectory",
                "sso-directory:GetUserPoolInfo",
                "controltower:CreateManagedAccount",
                "controltower:DescribeManagedAccount",
                "controltower:DeregisterManagedAccount",
                "s3:GetObject",
                "organizations:describeOrganization",
                "sso:DescribeRegisteredRegions"
            ],
            "Resource": "*"
        }
    ]
}
```

------

AWS Control Tower 帳戶工廠`sso:ProvisionSAMLProvide`需要 `sso:GetPeregrineStatus``sso:ProvisionApplicationInstanceForAWSAccount`、`sso:ProvisionApplicationProfileForAWSAccountInstance`、 和 許可，才能與 IAM Identity Center AWS 互動。