チュートリアル: Service Catalog API による AWS Control Tower のアカウントプロビジョニングの自動化 - AWS Control Tower

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

チュートリアル: Service Catalog API による AWS Control Tower のアカウントプロビジョニングの自動化

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

この動画では、 AWS Service Catalog を呼び出すことによって、自動化されたバッチ方式でアカウントをプロビジョニングする方法について説明します。プロビジョニングでは、 AWS コマンドラインインターフェイス (CLI) から ProvisionProduct API を呼び出し、セットアップする各アカウントのパラメータを含む JSON ファイルを指定します。この動画では、AWS Cloud9 開発環境をインストールして使用し、この作業を実行する方法を説明します。 AWS Cloud9 の代わりに AWS Cloudshell を使用すると、CLI コマンドは同じになります。

注記

また、アカウントごとに の UpdateProvisionedProduct API を呼び出すことで、このアプローチをアカウントの更新を自動化 AWS Service Catalog するために適応させることもできます。アカウントを更新するスクリプトを 1 つずつ作成できます。

Terraform を使い慣れている場合は、まったく異なるオートメーションの方法として、provision accounts with AWS Control Tower Account Factory for Terraform (AFT) (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 のプロビジョニング入力のサンプル

API を使用して AWS Control Tower アカウントをプロビジョニングする場合に、Service Catalog ProvisionProduct API に与えることのできる入力のサンプルを次に示します。

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

注記

ManagedOrganizationalUnit の値の入力文字列の形式が OU_NAME から OU_NAME (OU_ID) に変更されていることに注意してください。続く動画では、この変更については言及していません。

動画チュートリアル

この動画 (6:58) では、AWS Control Tower のアカウントのデプロイを自動化する方法について説明します。動画の右下にあるアイコンを選択すると、全画面表示にできます。字幕を利用できます。