

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Service Catalog API による AWS Control Tower のアカウントプロビジョニングの自動化
<a name="automated-provisioning-walkthrough"></a>

AWS Control Tower は、 など、他のいくつかの AWS サービスと統合されています AWS Service Catalog。APIs を使用して、AWS Control Tower でメンバーアカウントを作成およびプロビジョニングしたり、既存のメンバーアカウントを登録したりできます。

**注記**  
ランディングゾーン設定で IAM Identity Center をオプトアウトした場合、 AWS Service Catalog APIs またはコンソールを使用したアカウントプロビジョニング中に指定した値は使用されません。

この動画では、 AWS Service Catalog を呼び出すことによって、自動化されたバッチ方式でアカウントをプロビジョニングする方法について説明します。プロビジョニングでは、 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) 開発環境をインストールして使用し、この作業を実行する方法を説明します。 AWS Cloud9 の代わりに AWS Cloudshell を使用する場合、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 するためにこのアプローチを適応させることもできます。アカウントを更新するスクリプトを 1 つずつ作成できます。

Terraform を使い慣れている場合は、まったく異なるオートメーションの方法として、[provision accounts with AWS Control Tower Account Factory for Terraform (AFT)](taf-account-provisioning.md) (AWS Control Tower Account Factory for Terraform (AFT) でアカウントをプロビジョニングする) ことができます。

**オートメーションの管理ロールのサンプル**

次に示すのは、管理アカウントでオートメーションの管理ロールを設定するために使用できるサンプルテンプレートです。このロールは、ターゲットアカウントの管理者アクセスを使用してオートメーションを実行できるように、管理アカウントで設定します。

```
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>

API を使用して新しい AWS Control Tower アカウントをプロビジョニングしたり、既存のメンバーアカウントを登録`ProvisionProduct`したりする場合に、Service Catalog API に渡すことができる入力の例を次に示します。

**注記**  
`ProvisionProduct` API を使用して既存のメンバーアカウントを登録するには、API `AWSControlTowerExecution` を呼び出す前に IAM ロールがターゲットアカウントに存在する必要があります。新しいアカウントプロビジョニングと既存のアカウント登録の両方に、次の例に示す同じ入力パラメータを使用できます。

```
{
  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)」 (Service Catalog の API リファレンス) を参照してください。

**注記**  
`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)
