複数のアカウントとリージョンの AWS リソースを自動的にインベントリする - AWS 規範ガイダンス

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

複数のアカウントとリージョンの AWS リソースを自動的にインベントリする

Amazon Web Services、Matej Macek

概要

このパターンは、複数のアカウントと の AWS リソースの包括的なインベントリを維持するための自動化されたアプローチの概要を示しています AWS リージョン。このアプローチは、インフラストラクチャエンジニアとセキュリティエンジニアがリソース管理プラクティスを改善できるように設計されています。を使用して AWS Config 、リソースの変更、クエリ用の Amazon Athena、インタラクティブダッシュボード用の Amazon Quick Sight を追跡します。このソリューションを実装するには、 AWS CloudFormation スタックをデプロイします。

このソリューションは、Amazon Athena と Amazon Quick Sight を使用した AWS Config データの視覚化」(AWS ブログ記事) で説明されているものと似ています。こちらのパターンでは、このソリューションを拡大して以下の一般的な要件に対応し、以下のようなメリットをもたらします。

  • コンプライアンスに重点を置く – このアプローチは、PCI DSSNIST SP 800-53ISO/IEC 27001HIPAAGDPR、および、正確なアセットインベントリを義務付けるその他の規制要件を満たすのに役立ちます。

  • カスタマイズフレームワーク – さまざまな AWS リソースの Quick Sight ダッシュボードを作成するための基盤を提供し、特定の要件に合わせてソリューションをカスタマイズできます。

  • ユーザー主導の強化 – このアプローチでは、実際のユースケースから得られたフィードバックを取り入れ、より包括的なソリューションのリクエストに対処します。

インフラストラクチャ、セキュリティ、財務の各チームは、ダイナミックな環境、マルチアカウント環境、またはマルチリージョン環境で、可視化とコラボレーションの問題に直面することがよくあります。このソリューションは、これらの課題に対処し、リソースインベントリの作成と維持に必要な時間と労力を大幅に削減できるように設計されています。その結果、リソースの割り当てに関連した意思決定の改善、リスクの特定と軽減、コストの最適化、全体的な可視性とコラボレーションの向上に役立つ、リソースの一元的なビューが手に入ります。このアプローチを取り入れることで、セキュリティ、コンプライアンス、運用上の目的における概念的なソリューションと実際の実装ニーズとのギャップを埋めることができます。

前提条件と制限

前提条件

  • 次の有効な AWS アカウント:

    • 管理アカウント – 請求、アカウントの作成、組織全体のアクセスの制御のための一元化されたアカウント

    • 監査アカウント – セキュリティモニタリング、コンプライアンスチェック、ドリフト通知のための一元化されたハブ

    • ログアーカイブアカウント – 収集されたデータを保存および分析するための一元化されたアカウント

  • 監査アカウントでは、ターゲットアカウントとリージョンから設定データを収集して集約する AWS Config アグリゲータ

  • ログアーカイブアカウントで、以下を設定します。

  • AWS Command Line Interface (AWS CLI)、インストールおよび設定済み

  • 次のリソースをプロビジョニングする CloudFormation スタックをデプロイするためのアクセス許可。

    • AWS Lambda 関数

    • Amazon S3 通知設定

    • Athena データベース、テーブル、ビュー

    • Quick Sight データセットとデータソース

  • でオートメーションを実行するアクセス許可 AWS Systems Manager

  • Quick Suite へのアクセス許可

制限事項

  • このソリューションは に依存します AWS Config。 AWS Config は通常、変更が検出された直後、または指定した頻度でリソースの設定変更を記録します。ただし、これはベストエフォートベースであり、場合によっては時間がかかることがあります。

  • このソリューションは、 がAWS Config サポートするリソースタイプのみを追跡します。

  • このソリューションは、他のクラウドプロバイダー、またはオンプレミス環境のリソースインベントリは追跡しません。

  • 一部の AWS のサービス は、すべてで利用できるわけではありません AWS リージョン。リージョンの可用性については、 AWS ドキュメントの「サービスエンドポイントとクォータ」ページを参照して、サービスのリンクを選択します。

アーキテクチャ

次の図は、 AWS 組織内の複数のアカウントで設定およびコンプライアンスデータを収集、整理、分析、視覚化するための効率的なプロセスを示しています。

組織全体の設定およびコンプライアンスデータを収集して視覚化。

この図表は、次のワークフローを示しています:

  1. AWS Config アグリゲータは、定期的にターゲットアカウントとリージョンのリソースに関する設定とコンプライアンスデータを収集し、ログアーカイブアカウントの Amazon S3 バケットにデータを配信します。

  2. Amazon S3 バケットに新しい AWS Config データを追加すると、 AWS Lambda 関数が呼び出されます。

  3. Lambda 関数は、各スナップショットファイルのリージョンと日付に対応する値を持つキーを設定することで、データをパーティション化します。これにより、設定とコンプライアンスデータを AWS Glue 効率的にクエリして処理できます。

  4. Amazon Athena は AWS Glue スキーマを使用して、Amazon S3 バケットに保存されているデータに対して SQL クエリを実行します。のスキーマメタデータを使用して AWS Glue 、データの構造を理解します。

  5. Athena のビューは、ターゲットデータセットを定義して抽出します。

  6. Quick Sight のダッシュボードは、データセットを視覚化および分析するのに役立ちます。

ツール

AWS のサービス

  • Amazon Athena」はインタラクティブなクエリサービスで、Amazon S3 内のデータをスタンダード SQL を使用して直接分析できます。

  • AWS CloudFormation は、 AWS リソースをセットアップし、迅速かつ一貫してプロビジョニングし、 AWS アカウント および 全体のライフサイクルを通じてリソースを管理するのに役立ちます AWS リージョン。

  • AWS Config は、 内のリソースの詳細ビュー AWS アカウント と設定方法を提供します。リソースがどのように相互に関連しているか、またそれらの構成が時間の経過とともにどのように変化したかを特定するのに役立ちます。 AWS Config アグリゲータは、複数の および リージョンから AWS Config 設定 AWS アカウント およびコンプライアンスデータを収集します。

  • AWS Glue は、フルマネージド型の抽出、変換、ロード (ETL) サービスです。これにより、データストアとデータストリーム間でのデータの分類、整理、強化、移動を確実に行うことができます。このパターンでは、 AWS Glue データカタログスキーマレジストリを使用します。

  • AWS Lambda は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。

  • AWS Organizations は、作成して一元管理する AWS アカウント 組織に複数の を統合するのに役立つアカウント管理サービスです。

  • Amazon Quick Sight は、インタラクティブな視覚化、ダッシュボード、レポートを通じて生データを有意義なインサイトに変換するのに役立つビジネスインテリジェンス (BI) サービスです。Quick Sight は Amazon Quick Suite のコアコンポーネントです。

  • Amazon Simple Storage Service (Amazon S3) は、あらゆる量のデータを保存、保護、取得できるクラウドベースのオブジェクトストレージサービスです。

  • AWS Systems Manager」は、 AWS クラウドで実行されるアプリケーションとインフラストラクチャの管理に役立ちます。これにより、アプリケーションとリソースの管理が簡素化され、運用上の問題を検出して解決する時間を短縮し、 AWS リソースを大規模に安全に管理できます。AWS Systems Manager 自動化は、多くの の一般的なメンテナンス、デプロイ、修復タスクを簡素化します AWS のサービス。

コードリポジトリ

このパターンの AWS CloudFormation テンプレートは、AWS Config 視覚化 GitHub リポジトリで使用できます。この CloudFormation テンプレートは、Amazon Athena で使用する AWS Config ように を設定する AWS Systems Manager オートメーションランブックをデプロイします。この自動化は、指定された Amazon S3 バケットに接続する準備 AWS Glue をし、Amazon Athena でビューを作成し、ダッシュボードの視覚化のために Quick Sight を設定します。

ベストプラクティス

エピック

タスク説明必要なスキル

CloudFormation テンプレートをダウンロードします。

Config-QuickSight-Visualization-SSM-Automation.yaml CloudFormation テンプレートをダウンロードします。

AWS 管理者、クラウド管理者、DevOps エンジニア

CloudFormation テンプレートを変更します。

この手順は、 を使用してAWS Control Towerいて、 AWS Config によって管理されている場合にのみ実行してください AWS Control Tower。CloudFormation テンプレートを変更する必要があります。

  1. 管理アカウントにサインインします。

  2. AWS Organizations コンソールを開きます。

  3. [設定] ページに移動します。このページには、組織 ID などの組織に関する情報が表示されます。

  4. 組織 ID をコピーします。

  5. 任意のテキストエディタで、Config-QuickSight-Visualization-SSM-Automation.yaml ファイルを開きます。

  6. 以下の行を追加します。

    return re.match('^AWSLogs/(\d+)/Config/([\w-]+)/(\d+)/(\d+)/(\d+)/ConfigSnapshot/[^\\\]+$', object_key)

  7. この行を以下に置き換えます。<ORGANIZATION_ID> は以前にコピーした ID です。

    return re.match('^<ORGANIZATION_ID>/AWSLogs/(\d+)/Config/([\w-]+)/(\d+)/(\d+)/(\d+)/ConfigSnapshot/[^\\\]+$', object_key)

  8. Config-QuickSight-Visualization-SSM-Automation.yaml ファイルを保存して閉じます。

DevOps エンジニア、AWS 管理者

CloudFormation スタックを作成します。

CloudFormation コンソールからスタックを作成する」の手順に従います。次の点に注意してください。

  1. [テンプレートファイルのアップロード] を選択し、ダウンロードした YAML ファイルを選択します。

  2. [スタック名] に「Config-QuickSight-Visualization-SSM-Automation」と入力します。

  3. [Submit] を選択してください。

AWS 管理者、クラウド管理者、DevOps エンジニア
タスク説明必要なスキル

自分の Quick Suite ユーザー名を見つけます。

  1. Quick Suite コンソールを開きます。

  2. [プロフィール] メニューを開きます。

  3. ユーザー名を書き留めます。この値は後で必要になります。

AWS 管理者、クラウド管理者、DevOps エンジニア

配信チャネル名と Amazon S3 バケット名を見つけます。

  1. で AWS CLI、次のコマンドを入力します。

    aws configservice describe-delivery-channels
  2. Amazon S3 のバケット名とAWS Config 配信チャネルの名前を書き留めます。これらの値は後で必要になります。

AWS 管理者、クラウド管理者、DevOps エンジニア

Systems Manager で自動化を実行します。

  1. AWS Systems Manager コンソールを開きます。

  2. ナビゲーションペインで、[ドキュメント] を選択します。

  3. [自己所有] を選択します。

  4. [Config-QuickSight-Visualization] を選択します。

  5. [Execute automation (自動化の実行)] を選択してください。

  6. [入力パラメータ] セクションで、次のパラメータの値を入力します。

    • ConfigDeliveryChannelName – AWS Config 配信チャネルの名前を入力します。このパラメータは必須です。

    • ConfigS3BucketLocation – AWS Config 設定データを保存する Amazon S3 バケットの名前を入力します。このパラメータは必須です。

    • QuickSightUserName – Quick Suite への管理アクセス権限を持つユーザー名を入力します。このパラメータは必須です。

    • AutomationAssumeRole – Systems Manager Automation がユーザーに代わってアクションを実行できるようにする AWS Identity and Access Management (IAM) ロールの Amazon リソースネーム (ARN)。このパラメータはオプションです。このパラメータは空欄のままにします。

    • DeleteConfigVisualization – を選択しますfalse

  7. [実行] を選択してください。

AWS 管理者、クラウド管理者、DevOps エンジニア
タスク説明必要なスキル

データを更新します。

特定の要件に従ってデータセットの更新をスケジュールするには、「Refreshing SPICE data」の手順に従います。

AWS 管理者、DevOps エンジニア、クラウド管理者

分析を作成します。

リソースを視覚化するのに役立つダッシュボードを Quick Sight で作成するには、「Quick Sight で分析を開始する」の手順に従います。

Quick Suite 管理者

ダッシュボードを作成します。

  1. Quick Sight 分析の変更が完了したら、「ダッシュボードの発行」の手順に従ってダッシュボードを作成します。ダッシュボードは、他の Quick Suite ユーザーと共有できる分析機能です。

  2. Granting access to a dashboard」の手順に従って、ダッシュボードをターゲットの Quick Suite ユーザーと共有します。

Quick Suite 管理者
タスク説明必要なスキル

Systems Manager の自動化によって作成されたリソースを削除します。

  1. AWS Systems Manager コンソールを開きます。

  2. ナビゲーションペインで、[ドキュメント] を選択します。

  3. [自己所有] を選択します。

  4. [Config-QuickSight-Visualization] を選択します。

  5. [Execute automation (自動化の実行)] を選択してください。

  6. [入力パラメータ] セクションの、DeleteConfigVisualization パラメータで true と入力します。

  7. [実行] を選択してください。

AWS 管理者、クラウド管理者、DevOps エンジニア

CloudFormation スタックを削除します。

Config-QuickSight-Visualization-SSM-Automation スタック内のリソースを削除するには、「CloudFormation コンソールからスタックを削除する」の手順に従います。

AWS 管理者、クラウド管理者、DevOps エンジニア

トラブルシューティング

問題ソリューション

Amazon Quick Suite は への接続を試みていますがus-east-1 AWS リージョン、そのリージョンでのリソースの作成は許可されていません。

サービスコントロールポリシーは、このリージョンではサブスクリプションを Amazon Quick Suite に制限しています。サービスコントロールポリシーで、ターゲットを手動で指定します AWS リージョン。<REGION_ID> を適切なリージョン識別子に置き換えます。

https://<REGION_ID>.quicksight.aws.amazon.com/sn/start/dashboards

以下に例を示します。

https://eu-central-1.quicksight.aws.amazon.com/sn/start/dashboards

Amazon Athena では、次のメッセージが表示されます。

Before you run your first query, you need to set up a query result location in Amazon S3.

Amazon Athena からのクエリ結果を保存する Amazon S3 バケットが作成されていることを確認します。手順については、「Amazon Athena コンソールを使用してクエリ結果の場所を指定する」を参照してください。

関連リソース

AWS ドキュメント

AWS ブログ投稿

その他のリソース