アカウントのカスタマイズ - AWS Control Tower

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

アカウントのカスタマイズ

AFT は、プロビジョニングされたアカウントに標準またはカスタマイズされた設定をデプロイできます。AFT 管理アカウントでは、 AFTはアカウントごとに 1 つのパイプラインを提供します。このパイプラインを使用すると、すべてのアカウント、一組のアカウント、または個々のアカウントにカスタマイズを実装できます。Python スクリプト、bash スクリプト、Terraform 設定を実行することも、アカウントカスタマイズステージAWSCLIの一部として を操作することもできます。

概要

選択したgitリポジトリでカスタマイズを指定すると、グローバルカスタマイズを保存する場所またはアカウントカスタマイズを保存する場所のいずれかで、AFTパイプラインによってアカウントカスタマイズステージが自動的に完了します。アカウントを遡及的にカスタマイズするには、「カスタマイズの再呼び出し」を参照してください。

グローバルカスタマイズ (オプション)

によってプロビジョニングされるすべてのアカウントに特定のカスタマイズを適用することを選択できますAFT。例えば、特定のIAMロールを作成したり、すべてのアカウントにカスタムコントロールをデプロイしたりする必要がある場合、AFTパイプラインのグローバルカスタマイズステージで自動的に実行できます。

アカウントカスタマイズ (オプション)

個々のアカウントまたは一連のアカウントを、他のAFTプロビジョニングされたアカウントとは異なる方法でカスタマイズするには、AFTパイプラインのアカウントカスタマイズ部分を活用して、アカウント固有の設定を実装できます。例えば、特定のアカウントでのみ、インターネットゲートウェイへのアクセスが必要になる場合があります。

カスタマイズの前提条件

アカウントのカスタマイズを開始する前に、次の前提条件が満たされていることを確認してください。

グローバルカスタマイズの適用

グローバルカスタマイズを適用するには、選択したリポジトリに特定のフォルダ構造をプッシュする必要があります。

  • カスタム設定が Python プログラムまたはスクリプトの形式である場合は、それらをリポジトリ内の [api_helpers/python] フォルダに配置します。

  • カスタム設定が Bash スクリプトの形式である場合は、それらをリポジトリ内の [api_helpers] フォルダに配置します。

  • カスタム設定が Terraform の形式である場合は、それらをリポジトリ内の [terraform] フォルダに配置します。

  • カスタム設定の作成の詳細については、グローバルカスタマイズREADMEファイルを参照してください。

注記

グローバルカスタマイズは、AFTパイプラインのAFTアカウントプロビジョニングフレームワークステージの後に自動的に適用されます。

アカウントカスタマイズの適用

選択したリポジトリに特定のフォルダ構造をプッシュすると、アカウントカスタマイズを適用できます。アカウントのカスタマイズは、AFTパイプラインとグローバルカスタマイズステージの後に自動的に適用されます。アカウントカスタマイズリポジトリに、さまざまなアカウントカスタマイズを含む複数のフォルダーを作成することもできます。必要なアカウントカスタマイズの実装ごとに、以下のステップを使用します。

アカウントカスタマイズを適用するには
  1. ステップ 1: アカウントカスタマイズ用のフォルダを作成する

    選択したリポジトリで、 AFTが提供するACCOUNT_TEMPLATEフォルダを新しいフォルダにコピーします。新しいフォルダの名前は、アカウントリクエストで指定した account_customizations_name と一致する必要があります。

  2. 特定のアカウントカスタマイズフォルダの設定を追加する

    設定の形式に基づいて、アカウントカスタマイズフォルダーに設定を追加できます。

    • カスタム設定が Python プログラムまたはスクリプトの形式である場合は、リポジトリ内の [account_customizations_name]/api_helpers/python フォルダに配置します。

    • カスタム設定が Bash スクリプトの形式である場合は、リポジトリ内の [account_customizations_name]/api_helpers フォルダに配置します。

    • カスタム設定が Terraform の形式である場合は、リポジトリ内の [account_customizations_name]/terraform フォルダに配置します。

    カスタム設定の作成の詳細については、アカウントカスタマイズREADMEファイルを参照してください。

  3. アカウントリクエストファイルの特定の account_customizations_name パラメータを参照する

    AFT アカウントリクエストファイルには、入力パラメータ が含まれていますaccount_customizations_name。このパラメータの値として、アカウントカスタマイズの名前を入力します。

注記

環境内のアカウントに対して複数のアカウントリクエストを送信できます。異なるまたは類似のアカウントカスタマイズを適用する場合は、アカウントリクエストの account_customizations_name 入力パラメータを使用してアカウントのカスタマイズを指定します。詳細については、「複数のアカウントリクエストを送信する」を参照してください。

カスタマイズの再呼び出し

AFT は、AFTパイプラインでカスタマイズを再呼び出す方法を提供します。この方法は、新しいカスタマイズステップを追加した場合や、既存のカスタマイズを変更する場合に便利です。再呼び出すと、 はカスタマイズパイプラインAFTを開始し、AFTプロビジョニングされたアカウントに変更を加えます。再呼び出しを使用すると、個々のアカウント、すべてのアカウント、OU event-source-basedに応じたアカウント、またはタグに応じて選択されたアカウントにカスタマイズを適用できます。

AFTプロビジョニングされたアカウントのカスタマイズを再呼び出すには、次の 3 つのステップに従います。

ステップ 1: グローバルカスタマイズまたはアカウントカスタマイズの git リポジトリに変更をプッシュする

必要に応じてグローバルカスタマイズおよびアカウントカスタマイズを更新し、変更を git リポジトリに再度プッシュします。この時点では何も起こりません。次の 2 つのステップで説明するように、イベントソースによってカスタマイズパイプラインを呼び出す必要があります。

ステップ 2: カスタマイズを再呼び出すための AWS Step Function の実行を開始する

AFT は、AFT管理アカウントaft-invoke-customizationsで という AWS Step Function を提供します。この関数の目的は、AFTプロビジョニングされたアカウントのカスタマイズパイプラインを再呼び出すことです。

Step Function に入力を渡すために作成できるイベントスキーマ (JSON 形式) aft-invoke-customizations AWS の例を次に示します。

{ "include": [ { "type": "all" }, { "type": "ous", "target_value": [ "ou1","ou2"] }, { "type": "tags", "target_value": [ {"key1": "value1"}, {"key2": "value2"}] }, { "type": "accounts", "target_value": [ "acc1_ID","acc2_ID"] } ], "exclude": [ { "type": "ous", "target_value": [ "ou1","ou2"] }, { "type": "tags", "target_value": [ {"key1": "value1"}, {"key2": "value2"}] }, { "type": "accounts", "target_value": [ "acc1_ID","acc2_ID"] } ] }

このイベントスキーマの例に示すように、再呼び出しプロセスに対して含めたり除外したりするアカウントを選択できます。組織単位 (OU)、アカウントタグ、およびアカウント ID でフィルタリングできます。フィルターを適用せず、ステートメント を含めた場合"type":"all"、AFTプロビジョニングされたすべてのアカウントのカスタマイズが再呼び出されます。

注記

AWS Control Tower Account Factory for Terraform (AFT) のバージョンが 1.6.5 以降の場合は、ネストされた を構文 OUsでターゲットにすることができますOU Name (ou-id-1234)。詳細については、 の次のトピックを参照してくださいGitHub

イベントパラメータを入力すると、Step Functions が実行され、対応するカスタマイズが呼び出されます。 は、一度に最大 5 つのカスタマイズを呼び出すAFTことができます。Step Functions は、イベント条件に一致するすべてのアカウントが完了するまで待機してループします。

ステップ 3: AWS Step Function 出力をモニタリングし、AWS CodePipeline 実行中を監視する

  • 結果の Step Function 出力には、Step Function 入力イベントソースIDsに一致するアカウントが含まれます。

  • デベロッパーツールAWS CodePipeline の に移動し、アカウント ID に対応するカスタマイズパイプラインを表示します。

AFT アカウントカスタマイズリクエストトレースを使用したトラブルシューティング

ターゲットアカウントとカスタマイズリクエスト を含むログを出力する AWS Lambda アカウントカスタマイズワークフローIDs。 AFT では、ターゲットアカウントまたはカスタマイズリクエスト ID CloudWatch でカスタマイズリクエストに関連するログをフィルタリングするために使用できる CloudWatch Logs Insights クエリを提供することで、Amazon CloudWatch Logs を使用してカスタマイズリクエストをトレースおよびトラブルシューティングできます。詳細については、「Amazon CloudWatch Logs ユーザーガイド」の「Amazon Logs を使用したログデータの分析 CloudWatch 」を参照してください。

で CloudWatch Logs Insights を使用するには AFT
  1. で CloudWatch コンソールを開きますhttps://console.aws.amazon.com/cloudwatch/

  2. ナビゲーションペインで、[ログ][ログのインサイト] の順に選択します。

  3. [クエリ] を選択します。

  4. [サンプルクエリ][Account Factory for Terraform] を選択し、次のクエリのいずれかを選択します。

    • アカウント ID 別のカスタマイズログ

      注記

      をターゲットアカウント ID "YOUR-ACCOUNT-ID"に置き換えてください。

      fields @timestamp, log_message.account_id as target_account_id, log_message.customization_request_id as customization_request_id, log_message.detail as detail, @logStream | sort @timestamp desc | filter log_message.account_id == "YOUR-ACCOUNT-ID" and @message like /customization_request_id/
    • カスタマイズリクエスト ID 別のカスタマイズログ

      注記

      をカスタマイズリクエスト ID "YOUR-CUSTOMIZATION-REQUEST-ID"に置き換えてください。カスタマイズリクエスト ID は、AFTアカウントプロビジョニングフレームワーク AWS Step Functions ステートマシンの出力にあります。AFT アカウントプロビジョニングフレームワークの詳細については、AFT「アカウントプロビジョニングパイプライン」を参照してください。

      fields @timestamp, log_message.account_id as target_account_id, log_message.customization_request_id as customization_request_id, log_message.detail as detail, @logStream | sort @timestamp desc | filter log_message.customization_request_id == "YOUR-CUSTOMIZATION-REQUEST-ID"
  5. クエリを選択したら、必ず時間間隔を選択し、[クエリの実行] を選択します。