View a markdown version of this page

AWS Organizations を使用して Transit Gateway アタッチメントに自動的にタグを付ける - AWS 規範ガイダンス

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

AWS Organizations を使用して Transit Gateway アタッチメントに自動的にタグを付ける

Amazon Web Services、Richard Milner-Watts、Haris Bin Ayub、John Capps

概要

アマゾン ウェブ サービス (AWS) ではAWS Resource Access Manager、 を使用して AWS アカウント 境界AWS Transit Gatewayを越えて共有できます。ただし、アカウントの境界を越えて Transit Gateway アタッチメントを作成すると、アタッチメントは名前タグなしで作成されます。そのため、アタッチメントの識別に時間がかかることがあります。 

このソリューションは、AWS Organizations によって管理されている組織内のアカウントについて、各 Transit Gateway アタッチメントに関する情報を収集する自動メカニズムを提供します。このプロセスには、Transit Gateway のルートテーブルから「Classless Inter-Domain Routing (CIDR)」範囲を検索することが含まれます。次に、このソリューションでは、トランジットゲートウェイを保有するアカウント内の添付ファイルに、<CIDR-range>-<AccountName> という形式の名前タグを適用します。

このソリューションは、 ソリューションライブラリのサーバーレストランジットネットワークオーケストレーターなどの AWS ソリューションと一緒に使用できます。サーバーレストランジットネットワークオーケストレーターを使用すると、Transit Gateway ゲートウェイアタッチメントを大規模に自動的に作成できます。

前提条件と制限事項

前提条件

  • アクティブな AWS アカウント

  • すべての関連アカウントを含む AWS Organizations 組織

  • 組織のルートにある組織管理アカウントにアクセスして、必要な AWS Identity and Access Management (IAM) ロールを作成する

  • 組織と共有され、添付ファイルがある 1 つ以上のトランジットゲートウェイを含む共有ネットワーキングメンバーアカウント

アーキテクチャ

次の のスクリーンショット AWS マネジメントコンソール は、関連付けられた Name タグがない Transit Gateway アタッチメントと、このソリューションによって生成された Name タグがある 2 つの Transit Gateway アタッチメントの例を示しています。生成された名前タグの構造は <CIDR-range>-<AccountName> です。

コンソールには、名前タグのない添付ファイルと名前タグの付いた 2 つの添付ファイルが表示されます。

このソリューションではAWS CloudFormation、 を使用して、設定されたすべての で Transit Gateway Name タグの作成を管理するAWS Step Functionsワークフローをデプロイします AWS リージョン。ワークフローは、基礎となるタスクを実行する AWS Lambda 関数を呼び出します。

ソリューションが からアカウント名を取得すると AWS Organizations、Step Functions ステートマシンはすべての Transit Gateway アタッチメント IDsを取得します。これらはリージョンごとに並行処理されます。この処理には、各添付ファイルの CIDR 範囲の検索が含まれます。CIDR 範囲は、リージョン内の Transit Gateway ルートテーブルで一致するTransit Gateway アタッチメント ID を検索することで取得されます。必要な情報がすべて揃うと、ソリューションは添付ファイルに名前タグを適用します。ソリューションは既存の名前タグを上書きしません。

このソリューションは、「Amazon EventBridge」イベントによって制御されるスケジュールで実行されます。このイベントは、毎日午前 6 時 (UTC) にソリューションを開始します。

ターゲットテクノロジースタック

  • Amazon EventBridge

  • AWS Lambda

  • AWS Organizations

  • AWS Transit Gateway

  • Amazon Virtual Private Cloud (Amazon VPC)

  • AWS X-Ray

ターゲット アーキテクチャ

ソリューションのアーキテクチャとワークフローを次の図表に示しています。

共有ネットワークアカウントと組織管理アカウントにわたる 9 ステップのプロセス。
  1. スケジュールされたイベントによってルールが開始されます。

  2. EventBridge ルールは Step Functions ステートマシンを起動します。

  3. ステートマシンは tgw-tagger-organizations-account-query Lambda 関数を呼び出します。

  4. tgw-tagger-organizations-account-query Lambda 関数は組織管理アカウントでの役割を引き受けます。

  5. tgw-tagger-organizations-account-query Lambda 関数は Organizations API を呼び出して AWS アカウント メタデータを返します。

  6. ステートマシンは tgw-tagger-attachment-query Lambda 関数を呼び出します。

  7. 各リージョンについて、ステートマシンは並行に tgw-tagger-rtb-query Lambda 関数を呼び出して、各アタッチメントの CIDR 範囲を読み取ります。

  8. 各リージョンについて、ステートマシンは並行に tgw-tagger-attachment-tagger Lambda 関数を呼び出します。

  9. 名前タグは、共有ネットワークアカウントの Transit Gateway アタッチメントファイルに作成されます。

自動化とスケール

ソリューションは各リージョンを並行処理し、実行にかかる合計時間を短縮します。

ツール

AWS サービス

  • AWS CloudFormation は、インフラストラクチャをコードとして扱うことで、関連リソース AWS とサードパーティーリソースのコレクションをモデル化し、迅速かつ一貫してプロビジョニングし、ライフサイクル全体で管理する方法を提供します。

  • Amazon CloudWatch は、AWS リソースと で実行しているアプリケーションのメトリクスを AWS リアルタイムでモニタリングするのに役立ちます。

  • Amazon EventBridge は、アプリケーションをさまざまなソースからのデータに接続するために使用できるサーバーレスのイベントバスサービスです。EventBridge は、環境の変化の指標であるイベントを受信し、イベントをターゲットにルーティングするルールを適用します。ルールは、イベントパターンと呼ばれるイベントの構造、またはスケジュールのいずれかに基づいて、イベントをターゲットにマッチングさせます。

  • AWS Lambda は、サーバーのプロビジョニングや管理を行わずにコードの実行を支援できるコンピューティングサービスです。Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケールします。支払いは、使用したコンピューティング時間に対する料金のみになります。コードが実行されていないときに料金は発生しません。

  • AWS Organizations は、 AWS リソースの拡大とスケーリングに合わせて環境を一元的に管理および管理するのに役立ちます。Organizations を使用すると、プログラムで新しい を作成し、リソース AWS アカウント を割り当て、アカウントをグループ化してワークフローを整理し、ガバナンスのためにポリシーをアカウントまたはグループに適用し、すべてのアカウントに単一の支払い方法を使用して請求を簡素化できます。

  • AWS Step Functions は、ビジネスプロセスのオーケストレーション AWS のサービス、自動化、サーバーレスアプリケーションの構築に使用されるローコードのビジュアルワークフローサービスです。ワークフローは障害、再試行、並列化、サービス統合、可観測性を管理するため、開発者はより価値の高いビジネスロジックに集中できます。

  • AWS Transit Gateway は、中央のハブを介して VPC とオンプレミスネットワークを接続します。これにより、ネットワークが簡素化され、複雑なピアリング関係が終了します。クラウドルーターとして機能し、新しい接続は 1 回だけ行われます。

  • Amazon Virtual Private Cloud (Amazon VPC) は、定義した論理的に分離された仮想ネットワークで AWS リソースを起動するためのサービスです。

  • AWS X-Ray は、アプリケーションで処理するリクエストに関するデータを収集するとともに、データの表示、フィルタリング、インサイトによって問題や機会を特定して最適化するために使用できるツールを提供します。

コード

このソリューションのソースコードは、「Transit Gateway アタッチメントタガー」GitHub リポジトリにあります。リポジトリには以下のファイルが含まれています。

  • tgw-attachment-tagger-main-stack.yaml は、このソリューションをサポートするすべてのリソースを共有ネットワーキングアカウント内に作成します。

  • tgw-attachment-tagger-organizations-stack.yaml は、組織の管理アカウントにロールを作成します。

エピック

タスク説明必要なスキル

必要な前提情報を収集する。

Lambda 関数から AWS Organizations API へのクロスアカウントアクセスを設定するには、組織の管理アカウントのアカウント ID が必要です。

注記

2 つの CloudFormation スタックが作成される順序が重要です。最初に共有ネットワークアカウントにリソースをデプロイする必要があります。リソースを組織の管理アカウントに展開する前に、共有ネットワークアカウントのロールがすでに存在している必要があります。詳細については、AWS のドキュメントを参照してください。

DevOps エンジニア

メインソリューションスタックの CloudFormation テンプレートを起動します。

メインソリューションスタックのテンプレートは、IAM ロール、Step Functions ワークフロー、Lambda 関数、および Amazon CloudWatch イベントをデプロイします。

AWS マネジメントコンソール 共有ネットワーキングアカウントの を開き、:&CFN コンソールを開きます。 tgw-attachment-tagger-main-stack.yaml テンプレートと以下の値を使用してスタックを作成します。 

  • スタック名tgw-attachment-tagger-main-stack 

  • awsOrganizationsRootAccountId – 組織の管理アカウントのアカウント ID

  • TGWRegions パラメータ – ソリューション AWS リージョン の場合は、カンマ区切りの文字列として入力します。

  • TGWList パラメータ – ソリューションから除外するトランジットゲートウェイ ID。カンマ区切りの文字列で入力されます。

CloudFormation スタックの起動の詳細については、 AWS ドキュメントを参照してください。

DevOps エンジニア

ソリューションが正常に起動したことを確認します。

CloudFormation スタックが CREATE_COMPLETE ステータスになるまで待ちます。この所要時間は 1 分以内となります。

Step Functions コンソールを開き、tgw-attachment-tagger-state-machine という名前で新しいステートマシンが作成されていることを確認します。

DevOps エンジニア
タスク説明必要なスキル

必要な前提情報を収集する。

Lambda 関数から AWS Organizations API へのクロスアカウントアクセスを設定するには、共有ネットワーキングアカウントのアカウント ID が必要です。

DevOps エンジニア

Organizations スタック用の CloudFormation テンプレートを起動します。

AWS Organizations スタックのテンプレートは、組織の管理アカウントにIAMロールをデプロイします。 

組織の管理アカウントの AWS コンソールにアクセスし、CloudFormation コンソールを開きます。 tgw-attachment-tagger-organizations-stack.yaml テンプレートと以下の値を使用してスタックを作成します。

  • スタック名tgw-attachment-tagger-organizations-stack

  • NetworkingAccountId パラメータ – 共有ネットワークアカウントのアカウント ID 

その他のスタック作成オプションには、デフォルトを使用してください。

DevOps エンジニア

ソリューションが正常に起動したことを確認します。

CloudFormation スタックのステータスが CREATE_COMPLETE になるまで待ちます。この所要時間は 1 分以内となります。

AWS Identity and Access Management (IAM) コンソールを開き、tgw-attachment-tagger-organization-query-role という名前の新しいロールが作成されていることを確認します。

DevOps エンジニア
タスク説明必要なスキル

ステートマシンを実行します。

共有ネットワークアカウントの Step Functions コンソールを開き、ナビゲーションペインで [ステートマシン] を選択します。

ステートマシン [tgw-attachment-tagger-state-machine] を選択し、[実行開始] を選択します。 

このステートマシンへの入力はソリューションでは使用されないため、既定値を使用できます。

{ "Comment": "Insert your JSON here" }

[実行のスタート] を選択します。

DevOps エンジニア

ステートマシンが完了するまで監視してください。

開いた新しいページでは、ステートマシンの実行を確認できます。所要時間は、処理する Transit Gateway アタッチメントの数によって異なります。

このページでは、ステートマシンの各ステップを確認できます。ステートマシン内のさまざまなタスクを表示したり、Lambda 関数の CloudWatch ログへのリンクをたどったりできます。マップ内で並行して実行されるタスクについては、[インデックス] ドロップダウンリストを使用して、各リージョンの特定の実装を表示できます。

DevOps エンジニア

Transit Gateway アタッチメントタグを確認します。

共有ネットワークアカウントの VPC コンソールを開き、[Transit Gateway アタッチメント] を選択します。 コンソールでは、条件を満たす添付ファイルの名前タグが表示されます (添付ファイルは Transit Gateway のルートテーブルに伝達され、リソース所有者は組織のメンバーです)。

DevOps エンジニア

CloudWatch イベントの開始を確認します。

CloudWatch イベントが開始されるのを待ちます。これは 06:00 UTC に予定されています。 

次に、共有ネットワークアカウントの Step Functions コンソールを開き、ナビゲーションペインで [ステートマシン] を選択します。

ステートマシン [tgw-attachment-tagger-state-machine] を選択します。ソリューションが 06:00 UTC に実行されたことを確認します。

DevOps エンジニア

関連リソース