翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
で Landing Zone Accelerator を使用してアカウントの作成を自動化する AWS
Amazon Web Services、Justin Kuskowski、Joe Behrens、Nathan Scott
概要
このパターンでは、Landing Zone Accelerator on AWS
必要に応じて、Microsoft Entra ID グループを統合し、アカウント作成プロセス中に AWS IAM アイデンティティセンター アクセス許可セットを割り当てることができます。組織で Microsoft Entra ID を ID ソースとして使用している場合、この方法は、新規アカウントへのアクセスを自動的に管理したり設定したりするのに役立ちます。
前提条件と制限
前提条件
の管理アカウントへのアクセス AWS Organizations
AWS Cloud Development Kit (AWS CDK) バージョン 2.118.0 以降、インストールおよび設定済み
Python バージョン 3.9 以降がインストールされている
AWS Command Line Interface (AWS CLI) バージョン 2.13.19 以降、インストール済み
Docker バージョン 24.0.6 以降がインストールされている
管理アカウントにデプロイされた Landing Zone Accelerator on AWS ソリューション
(オプション) Microsoft Entra ID と IAM Identity Center が統合されている
制限事項
このアカウント作成のワークフローは、単一の AWS アカウントをデプロイするシーケンシャル実行に対応しています。この制限を設けることにより、アカウント作成のワークフローを、並列実行中にリソースを競合させることなく正常に完了できます。
アーキテクチャ
ターゲットアーキテクチャ
次の図は、Landing Zone Accelerator on AWS. AWS Step Functions orchestrates AWS アカウント を使用して新しい の作成を自動化する高レベルのアーキテクチャを示しています。Step Functions ワークフローの各タスクは、1 つ以上の AWS Lambda 関数によって実行されます。

この図表は、次のワークフローを示しています:
ユーザーは、Python スクリプトを実行するか、Amazon API Gateway を使用してアカウントをリクエストします。
アカウント作成オーケストレーターのワークフローは、 AWS Step Functionsから始まります。
このワークフローはソースコードリポジトリの
account-config.yamlファイルを更新します。また、ランディングゾーンアクセラレーターを AWS パイプラインで開始し、パイプラインのステータスを確認します。このパイプラインは、新しいアカウントを作成し設定します。この仕組みの詳細については、Landing Zone Accelerator on AWSの「Architecture overview」を参照してください。(オプション) パイプラインが完了すると、ワークフローは Microsoft Entra ID にグループが存在するかどうかをチェックします。グループが Microsoft Entra ID に存在しない場合、ワークフローは Microsoft Entra ID にグループを追加します。
ワークフローは、Landing Zone Accelerator on AWS ソリューションでは実行できない追加のステップを実行します。デフォルトのステップは次のとおりです。
AWS Identity and Access Management (IAM) でのアカウントエイリアスの作成
のアカウントにタグをアタッチする AWS Organizations
アカウントに割り当てられたタグに基づいて AWS Systems Manager Parameter Store にパラメータを作成する
(オプション) ワークフローは、前に指定した Microsoft Entra ID グループに 1 つ以上のアクセス許可セットを割り当てます。アクセス許可セットがあることにより、グループのユーザーは新規アカウントにアクセスし、設定したアクションを実行することができます。
AWS Lambda 関数は QA テストと検証テストを実行します。リソースの作成を検証し、タグが作成されたことを確認し、セキュリティリソースがデプロイされたことを検証します。
ワークフローはアカウントを解放し、Amazon Simple Email Service (Amazon SES) を使用してプロセスが正常に完了したことをユーザーに通知します。
Step Functions ワークフローの詳細については、このパターン内の「追加情報」セクションにある Step Functions のワークフロー図を参照してください。
Microsoft Entra ID アプリケーション
Microsoft Entra ID と統合させる場合は、このパターンをデプロイする際に次の 2 つのアプリケーションを作成します。
IAM アイデンティティセンターにリンクされている、Microsoft Entra ID グループを IAM アイデンティティセンターで利用可能にするアプリケーション。この例では、この Microsoft Entra ID アプリケーションの名前は
LZA2です。Lambda 関数が Microsoft Entra ID と通信し Microsoft Graph API
を呼び出すことを許可するアプリケーション。このパターンでは、このアプリケーションの名前は create_aws_accountです。
これらのアプリケーションは、Microsoft Entra ID グループを同期し、アクセス許可セットを割り当てる際に使用されるデータを収集します。
ツール
AWS のサービス
Amazon API Gateway は、任意のスケールで REST、HTTP、WebSocket API を作成、公開、維持、監視、保護する上で役立ちます。このパターンでは、API Gateway を使用して AWS アカウント 名前の可用性を確認し、 AWS Step Functions ワークフローを開始し、Step Functions 実行のステータスを確認します。
AWS Cloud Development Kit (AWS CDK) は、コードで AWS クラウド インフラストラクチャを定義およびプロビジョニングするのに役立つソフトウェア開発フレームワークです。
AWS Control Tower は、規範的なベストプラクティスに従って、 AWS マルチアカウント環境のセットアップと管理に役立ちます。
Amazon EventBridge は、アプリケーションをさまざまなソースのリアルタイムデータに接続できるようにするサーバーレスイベントバスサービスです。例えば、 AWS Lambda 関数、API 送信先を使用する HTTP 呼び出しエンドポイント、その他のイベントバスなどです AWS アカウント。このソリューションでは、Step Functions ワークフローの状態が
Failed、Timed-out、Abortedのいずれかに変わった場合に Lambda 関数を開始する、EventBridge ルールを使用します。AWS Identity and Access Management (IAM) は、誰を認証し、誰に使用を認可するかを制御することで、 AWS リソースへのアクセスを安全に管理するのに役立ちます。
AWS IAM アイデンティティセンター を使用すると、すべての AWS アカウント およびクラウドアプリケーションへのシングルサインオン (SSO) アクセスを一元管理できます。
AWS Key Management Service (AWS KMS) は、データの保護に役立つ暗号化キーの作成と制御に役立ちます。このパターンでは、Amazon Simple Storage Service (Amazon S3) に保存されているデータ、Lambda 環境変数、Step Functions のデータなどのデータを暗号化するために AWS KMS キーが使用されます。
AWS Lambda は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。
AWS Organizations は、作成して一元管理する AWS アカウント 組織に複数の を統合するのに役立つアカウント管理サービスです。
Amazon Simple Email Service (Amazon SES) は、独自の E メールアドレスとドメインを使用して E メールを送受信するのに役立ちます。新規アカウントが正常に作成されると、Amazon SES からユーザーに通知が届きます。
Amazon Simple Notification Service (Amazon SNS) は、ウェブサーバーやメールアドレスなど、パブリッシャーとクライアント間のメッセージの交換を調整および管理するのに役立ちます。アカウント作成のプロセス中にエラーが発生すると、Amazon SNS はユーザーが設定した E メールアドレスに通知を送信します。
AWS Step Functions は、 AWS Lambda 関数やその他の を組み合わせてビジネスクリティカルなアプリケーション AWS のサービス を構築するのに役立つサーバーレスオーケストレーションサービスです。
AWS Systems Manager Parameter Store は、設定データ管理とシークレット管理のための安全な階層型ストレージを提供します。
その他のツール
awscurl
は AWS API リクエストの署名プロセスを自動化し、標準の curl コマンドとしてリクエストを行うのに役立ちます。 Microsoft Entra ID
(旧 Azure Active Directory) は、クラウドベースの ID およびアクセス管理のサービスです。 Microsoft Graph API
を使用すると、Microsoft Entra や Microsoft 365 など Microsoft のクラウドサービスのデータやインテリジェンスにアクセスすることができます。
コードリポジトリ
このパターンのコードは、GitHub の lza-account-creation-workflow
lambda_layer
account_creation_helper
– このレイヤーには、ロールを引き受け、進行状況をチェックするためのモジュールが含まれています AWS Service Catalog。 boto3
– このレイヤーには、 に AWS Lambda 最新バージョンがあることを確認するAWS SDK for Python (Boto3) モジュールが含まれています。 identity_center_helper
– このレイヤーは IAM アイデンティティセンターへの呼び出しをサポートします。
lambda_src
AccountTagToSsmParameter
– この関数は、Parameter Store でパラメータを作成 AWS Organizations するために、アカウントにアタッチされたタグを使用します。各パラメータは、プレフィックス /account/tags/から始まります。AttachPermissionSet
– この関数は、IAM Identity Center グループにアクセス権限セットを追加します。 AzureADGroupSync
– この関数は、ターゲットの Microsoft Entra ID グループを IAM アイデンティティセンターに同期します。 CheckForRunningProcesses
– この関数は、 AWSAccelerator-Pipelineパイプラインが実行中かどうかをチェックします。パイプラインが実行されている場合、関数は AWS Step Functions ワークフローを遅延させます。CreateAccount
– この関数は AWS Service Catalog と AWS Control Tower を使用して新しい を作成します AWS アカウント。 CreateAdditionalResources
– この関数は、Landing Zone Accelerator によって管理されていない AWS リソース、またはアカウントのエイリアスや AWS Service Catalog タグ AWS CloudFormationなどのリソースを作成します。 GetAccountStatus
– この関数は、 でプロビジョニングされた製品をスキャンし AWS Service Catalog て、アカウント作成プロセスが完了したかどうかを判断します。 GetExecutionStatus
– この関数は、実行中または完了した AWS Step Functions 実行のステータスを取得します。 NameAvailability
– この関数は、 AWS アカウント 名前がすでに存在するかどうかを確認します AWS Organizations。 ReturnResponse
– アカウントの作成が完了すると、この関数が新規アカウントの ID を返します。アカウントの作成が完了していない場合はエラーメッセージが返されます。 RunStepFunction
– この関数は、アカウントを作成する AWS Step Functions ワークフローを実行します。 SendEmailWithSES
– この関数は、アカウントの作成が終わるのを待っているユーザーに E メールを送信します。 ValidateADGroupSyncToSSO
– この関数は、指定された Microsoft Entra ID グループが IAM アイデンティティセンターと同期されているかどうかをチェックします。 ValidateResources
– この関数は、すべての AWS Control Tower カスタマイズが正常に実行されたことを検証します。
ベストプラクティス
AWS CDKには、次の命名規則が推奨されます。
すべてのパラメータをプレフィックス
pから開始する。すべての条件をプレフィックス
cから開始する。すべてのリソースをプレフィックス
rから開始する。すべての出力をプレフィックス
oから開始する。
エピック
| タスク | 説明 | 必要なスキル |
|---|---|---|
の Landing Zone Accelerator をカスタマイズ AWS する準備をします。 |
| AWS DevOps |
| 次に、ソリューションをカスタマイズして、管理アカウント以外のすべてのアカウントに
| AWS DevOps |
| 次に、ソリューションをカスタマイズして、管理アカウント以外のすべてのアカウントに
| AWS DevOps |
| 次に、ソリューションをカスタマイズして、
| AWS DevOps |
| タスク | 説明 | 必要なスキル |
|---|---|---|
Lambda 関数に Microsoft Entra ID との通信を許可するアプリケーションを作成する。 |
| Microsoft Entra ID |
| 次に、
| Microsoft Entra ID |
Microsoft Entra ID を IAM アイデンティティセンターと統合するアプリケーションを作成する。 | Microsoft Entra ID 管理センターで、 | Microsoft Entra ID |
| 次に、
| Microsoft Entra ID |
シークレットを作成します。 |
| AWS DevOps |
| タスク | 説明 | 必要なスキル |
|---|---|---|
ソースコードを複製します。 |
| DevOps エンジニア |
|
| AWS DevOps |
ソリューションを AWS 環境にデプロイします。 |
注記このソリューションでは、Amazon S3 バケットを使用してこのソリューションのソースコードを保存します。upload_to_source_bucket.py | AWS DevOps |
| タスク | 説明 | 必要なスキル |
|---|---|---|
使用する引数を特定する。 | Step Functions のワークフローを開始する Python スクリプトを実行するときに使用する引数を選択します。引数の一覧については、本パターン内の「追加情報」のセクションを参照してください。 | AWS DevOps、Python |
Python スクリプトを実行する。 |
| DevOps エンジニア、Python |
| タスク | 説明 | 必要なスキル |
|---|---|---|
awscurl の変数を設定します。 |
| AWS DevOps |
名前を使用できるかどうかチェックします。 | 次のコマンドを入力して、この名前を AWS アカウントに使用できるか確認します。
| AWS DevOps |
アカウント作成のワークフローを実行します。 |
| AWS DevOps |
| タスク | 説明 | 必要なスキル |
|---|---|---|
Amazon S3 バケットからオブジェクトを削除します。 | 次の Amazon S3 バケット内にオブジェクトがあれば削除します。
| AWS DevOps |
CloudFormation スタックを削除します。 | 次の コマンドを実行して CloudFormation スタックを削除します。
| AWS DevOps |
パイプラインを削除します。 | 次のコマンドを入力して
| AWS DevOps |
関連リソース
でのランディングゾーンアクセラレータ AWS
ー (AWS ソリューションライブラリ) 一般的な AWS CDK 問題のトラブルシューティング (AWS CDK ドキュメント)
追加情報
Step Functions のワークフロー図
次の図は、Step Functions のワークフローで実行される手順を示したものです。

引数
以下は、Step Functions ワークフローを開始する Python スクリプトを実行するときに使用できる引数です。
以下の引数が必要です。
account-name (-a)(文字列) – 新しい の名前 AWS アカウント。support-dl (-s)(文字列) – アカウント作成プロセスが完了したときに通知を受信する E メールアドレス。managed-org-unit (-m)(文字列) – 新規アカウントを含むマネージド組織単位 (OU)。
以下の引数はオプションです。
ad-integration (-ad)(文字列ディクショナリ) – Microsoft Entra ID グループと割り当てられたアクセス許可セット。以下は、このコマンドの使用方法の例です。--ad-integration "{\"<PermissionSetName>\": \"<EntraIdGroupName>\"}"account-email (-e)(文字列) – 新しい のルートユーザーの E メールアドレス AWS アカウント。注記
この引数を使用しないと、E メールアドレスは
configs/deploy-config.yamlファイルからrootEmailPrefixとrootEmailDomainの値を使用して生成されます。E メールアドレスが指定されていない場合、E メールアドレスはrootEmailPrefix+accountName@rootEmailDomainの形式を使用して生成されます。region (-r)(文字列) – Step Functions ワークフロー AWS リージョン がデプロイされた 。デフォルト値はus-east-1です。force-update (-f)(文字列ブール値) –trueを入力して、プロビジョニング済み製品の更新 AWS Service Catalog を強制します。bypass-creation (-b)(文字列ブール値) –trueを入力してaccounts-config.yamlファイルへのアカウントの追加を回避し、AWSAccelerator-Pipelineパイプラインの実行を回避します。この引数は、通常、アカウント作成ワークフロープロセスをテストしたり、Landing Zone Acceleratorパイプラインでエラーが発生した場合に残りの Step Functions ステップを実行したりするために使用されます。tags (-t)(文字列) – に追加する追加のタグ AWS アカウント。デフォルトではaccount-name、support-dl、purposeのタグが追加されます。以下は、このコマンドの使用方法の例です。--tags TEST1=VALUE1 TEST2=VALUE2