

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

# 通过以下方式与 AWS Control Tower 账户互动 AWS Service Catalog
<a name="handle-accounts-with-service-catalog"></a>

本节介绍如何使用以下功能来处理您的 AWS Control Tower 账户 AWS Service Catalog。

**Topics**
+ [使用 Account Factory 在 Service Catalog 控制台中预置账户](provision-as-end-user.md)
+ [通过 Service Catalog 在 AWS Control Tower 中自动配置账户 APIs](automated-provisioning-walkthrough.md)
+ [在 Service Catalog 中更新预置产品](update-provisioned-product.md)
+ [在 Service Catalog 中取消注册账户](unenroll-with-sc.md)

# 使用 Account Factory 在 Service Catalog 控制台中预置账户
<a name="provision-as-end-user"></a>

 以下过程介绍如何通过在 IAM Identity Center 中以用户身份创建和配置账户 AWS Service Catalog。此过程也称为*高级账户预置*或*手动账户预置*。或者，您可以通过编程方式配置 AWS Control Tower 账户，也可以使用 AWS CLI、Service Catalog APIs 或 AWS Control Tower Account Factory for Terraform (AFT) 进行配置。如果您之前设置了自定义蓝图，则可以在控制台中预置自定义账户。有关自定义的更多信息，请参阅[使用 Account Factory Customization（AFC）功能自定义账户](af-customization-page.md)。

**以用户身份在 Account Factory 中逐个配置账户**

1. 从您的用户门户 URL 登录。

1. 从**您的应用程序**中，选择 **AWS 账户**。

1. 从账户列表中，选择管理账户的账户 ID。此 ID 可能也有一个标签，例如 **(Management)**。

1. 从**AWSServiceCatalogEndUserAccess**中选择**管理控制台**。这将在此账户中 AWS 管理控制台 为该用户打开。

1. 确保您选择的账户配置正确 AWS 区域 ，该区域应该是您的 AWS Control Tower 区域。

1. 搜索并选择**Service Catalog** 以打开 Service Catalog 控制台。

1. 在导航窗格中，选择**产品**。

1. 选择 **AWS Control Tower Account Factory**，然后选择**启动产品**按钮。这一选择将启动向导以预置新账户。

1. 填写信息，并记住以下几点：
   + **SSOUser电子邮件**可以是新的电子邮件地址，也可以是与现有 IAM Identity Center 用户关联的电子邮件地址。无论您选择哪一个，此用户都将拥有您正在预置的账户的管理访问权。
   + **AccountEmail**必须是尚未与关联的电子邮件地址 AWS 账户。如果您在电子邮件中使用了新的**SSOUser电子邮件**地址，则可以在此处使用该电子邮件地址。

1. 请勿定义**TagOptions**和启用**通知**，否则可能会无法配置账户。完成后，选择**启动产品**。

1. 检查您的账户设置，然后选择**启动**。不要创建资源计划，否则将无法预置该账户。

1. 您的账户现在正在预置中。这可能需要几分钟才能完成。您可以刷新页面以更新显示的状态信息。
**注意**  
一次最多可预置五个账户。

# 通过 Service Catalog 在 AWS Control Tower 中自动配置账户 APIs
<a name="automated-provisioning-walkthrough"></a>

AWS Control Tower 与其他几项 AWS 服务集成，例如 AWS Service Catalog。您可以使用在 AWS Control Tower 中创建和配置您的成员账户，或者注册现有成员账户。 APIs 

**注意**  
如果您在 landing zone 设置中选择退出 IAM Identity Center，则不会使用您在 AWS Service Catalog APIs 或控制台配置账户期间提供的值。

该视频向您展示了如何通过调用，以自动批量方式配置帐户 AWS Service Catalog APIs。要进行配置，您需要从 AWS 命令行界面 (CLI) 调用 [https://docs.aws.amazon.com//servicecatalog/latest/dg/API_ProvisionProduct.html](https://docs.aws.amazon.com//servicecatalog/latest/dg/API_ProvisionProduct.html)API，然后指定一个 JSON 文件，其中包含您要设置的每个账户的参数。该视频演示如何安装和使用 [AWS Cloud9](https://docs.aws.amazon.com//cloud9/latest/user-guide/welcome.html) 开发环境来执行此项工作。如果你使用 Clouds AWS hell 而不是 Cloud AWS 9，CLI 命令将是一样的。

**注意**  
您还可以通过为每个账户调用的 [https://docs.aws.amazon.com//servicecatalog/latest/dg/API_UpdateProvisionedProduct.html](https://docs.aws.amazon.com//servicecatalog/latest/dg/API_UpdateProvisionedProduct.html)API 来调整这种方法 AWS Service Catalog 以实现账户自动更新。您可以编写一个脚本来逐个更新账户。

作为一种完全不同的自动化方法，如果您熟悉 Terraform，则可以使用 [AWS Control Tower Account Factory for Terraform（AFT）预置账户](taf-account-provisioning.md)。

**自动化管理角色示例**

以下是一个示例模板，可帮助配置您的管理账户中的自动化管理角色。您需要在管理账户中配置这个角色，这样它就可以在目标账户中使用管理员访问权限执行自动化。

```
AWSTemplateFormatVersion: 2010-09-09
Description: Configure the SampleAutoAdminRole

Resources:
  AdministrationRole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: SampleAutoAdminRole
      AssumeRolePolicyDocument:
        Version: 2012-10-17		 	 	 
        Statement:
          - Effect: Allow
            Principal:
              Service: cloudformation.amazonaws.com
            Action:
              - sts:AssumeRole
      Path: /
      Policies:
        - PolicyName: AssumeSampleAutoAdminRole
          PolicyDocument:
            Version: 2012-10-17		 	 	 
            Statement:
              - Effect: Allow
                Action:
                  - sts:AssumeRole
                Resource:
                  - "arn:aws:iam::*:role/SampleAutomationExecutionRole"
```

**自动化执行角色示例**

以下是一个示例模板，可帮助您设置自动化执行角色。您将在目标账户中配置此角色。

```
AWSTemplateFormatVersion: "2010-09-09"
Description: "Create automation execution role for creating Sample Additional Role."

Parameters:
  AdminAccountId:
    Type: "String"
    Description: "Account ID for the administrator account (typically management, security or shared services)."
  AdminRoleName:
    Type: "String"
    Description: "Role name for automation administrator access."
    Default: "SampleAutomationAdministrationRole"
  ExecutionRoleName:
    Type: "String"
    Description: "Role name for automation execution."
    Default: "SampleAutomationExecutionRole"
  SessionDurationInSecs:
    Type: "Number"
    Description: "Maximum session duration in seconds."
    Default: 14400

Resources:
  # This needs to run after AdminRoleName exists.
  ExecutionRole:
    Type: "AWS::IAM::Role"
    Properties:
      RoleName: !Ref ExecutionRoleName
      MaxSessionDuration: !Ref SessionDurationInSecs
      AssumeRolePolicyDocument:
        Version: "2012-10-17"		 	 	 
        Statement:
          - Effect: "Allow"
            Principal:
              AWS:
                - !Sub "arn:aws:iam::${AdminAccountId}:role/${AdminRoleName}"
            Action:
              - "sts:AssumeRole"
      Path: "/"
      ManagedPolicyArns:
        - "arn:aws:iam::aws:policy/AdministratorAccess"
```

配置这些角色后，您可以调用 AWS Service Catalog APIs 来执行自动任务。视频中给出了 CLI 命令。

## Service Catalog API 的预置输入示例
<a name="sample-sc-api-input"></a>

以下是您在使用 Service Catalog `ProvisionProduct` API 配置新的 AWS Control Tower 账户或注册现有成员账户时可以向该服务目录 API 提供的输入示例：

**注意**  
要使用 API 注册现有成员账户，在调用 `ProvisionProduct` API 之前，目标账户上必须存在 I `AWSControlTowerExecution` AM 角色。您可以为新账户配置和现有账户注册使用以下示例中显示的相同输入参数。

```
{
  pathId: "lpv2-7n2o3nudljh4e",
  productId: "prod-y422ydgjge2rs",
  provisionedProductName: "Example product 1",
  provisioningArtifactId: "pa-2mmz36cfpj2p4",
  provisioningParameters: [
    {
      key: "AccountEmail",
      value: "abc@amazon.com"
    },
    {
      key: "AccountName",
      value: "ABC"
    },
    {
      key: "ManagedOrganizationalUnit",
      value: "Custom (ou-xfe5-a8hb8ml8)"
    },
    {
      key: "SSOUserEmail",
      value: "abc@amazon.com"
    },
    {
      key: "SSOUserFirstName",
      value: "John"
    },
    {
      key: "SSOUserLastName",
      value: "Smith"
    }
  ],
  provisionToken: "c3c795a1-9824-4fb2-a4c2-4b1841be4068"
}
```

有关更多信息，请参阅 [API reference for Service Catalog](https://docs.aws.amazon.com//servicecatalog/latest/dg/API_ProvisionProduct.html)。

**注意**  
请注意，`ManagedOrganizationalUnit` 值的输入字符串的格式已从 `OU_NAME` 变为 `OU_NAME (OU_ID)`。接下来的视频并未提及这一变化。

## 视频演练
<a name="automated-provisioning-video"></a>

此视频（6:58）介绍如何在 AWS Control Tower 中自动执行账户部署。为了更好地观看，请选择视频右下角的图标以将其放大为全屏。可以使用字幕。

[![AWS Videos](http://img.youtube.com/vi/LxxQTPdSFgw/0.jpg)](http://www.youtube.com/watch?v=LxxQTPdSFgw)


# 在 Service Catalog 中更新预置产品
<a name="update-provisioned-product"></a>

以下过程将指导您如何在 Service Catalog 中更新账户的预置产品，从而在 Account Factory 中更新账户或将账户移动至新 OU。

**注意**  
如果您在 landing zone 设置中选择退出 IAM Identity Center，则不会使用您在 AWS Service Catalog APIs 或控制台配置账户期间提供的值。

**通过 Service Catalog 更新 Account Factory 账户或更改账户 OU**

1. 登录到 AWS 管理控制台，然后在上打开 AWS Service Catalog 控制台[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/)。
**注意**  
您必须以有权在 Service Catalog 中预置新产品的用户身份登录（例如，`AWSAccountFactory` 或 `AWSServiceCatalogAdmins` 群组中的 IAM Identity Center 用户）。

1. 在导航窗格中，选择**预置**，然后选择**预置产品**。

1.  对于列出的每个成员账户，请执行以下步骤以更新所有成员账户：

   1. 选择一个成员账户。您将被定向到该账户的*预置产品详细信息*页面。

   1. 在*预置产品详细信息*页面上，选择**事件**选项卡。

   1. 记下以下参数：
      +  **SSOUser电子邮件**（可在预配置产品详细信息中找到）
      +  **AccountEmail**（可在预配置产品详细信息中找到）
      +  **SSOUserFirstName**（在 IAM 身份中心可用） 
      +  **SSOUSerLastName**（在 IAM 身份中心可用） 
      +  **AccountName**（在 IAM 身份中心可用） 

   1. 从**操作**中，选择**更新**。

   1. 选择要更新的产品的**版本**旁边的按钮，并选择**下一步**。

   1. 提供之前提到的参数值。
      + 如果要保留现有 OU，请为**ManagedOrganizationalUnit**其选择账户已存在的 OU。
      + 如果要将账户迁移到新的 OU，请为**ManagedOrganizationalUnit**该账户选择新的 OU。

       中央云管理员可以在 AWS Control Tower 控制台的**组织**页面上找到这些信息。

   1. 选择**下一步**。

   1. 查看您的更改，然后选择**更新**。对于每个账户，此过程可能需要几分钟。

# 在 Service Catalog 中取消注册账户
<a name="unenroll-with-sc"></a>

 `AWSAccountFactory` 群组中的 IAM Identity Center 用户可以在 Service Catalog 控制台中通过终止预置产品来取消注册账户。有关 IAM Identity Center 用户或群组的更多信息，请参阅[通过管理用户和访问权限 AWS IAM Identity Center](https://docs.aws.amazon.com/controltower/latest/userguide/unmanage-account.html)。以下过程介绍如何在 Service Catalog 中取消注册成员账户。

**通过 Service Catalog 取消注册已注册的账户**

1. 在 Web 浏览器中打开 Service Catalog 控制台，网址为 [https://console.aws.amazon.com/servicecatalog](https://console.aws.amazon.com/servicecatalog)。

1. 从左侧导航窗格中，选择**预置产品列表**。

1. 从预置账户列表中，选择您希望不再由 AWS Control Tower 管理的账户的名称。

1. 在**预置产品详细信息**页面上，从**操作**菜单中选择**终止**。

1. 从随后显示的对话框中，选择**终止**。
**重要**  
*终止*一词特定于 Service Catalog。在 Service Catalog Account Factory 中终止一个账户时，不会关闭该账户。此操作将从账户的 OU 和您的登录区中删除该账户。

1.  取消注册账户后，其状态将更改为**未注册**。

1. 如果您不再需要该账户，请将其关闭。有关关闭 AWS 账户的更多信息，请参阅《*AWS Billing 用户指南》*中的[关闭账户](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/close-account.html)

**注意**  
等待该账户状态显示为**未注册**。