複数のリージョンとアカウントからのインベントリデータをクエリする - AWS Systems Manager

複数のリージョンとアカウントからのインベントリデータをクエリする

AWS Systems Manager インベントリは Amazon Athena と統合され、複数の AWS リージョン および AWS アカウント からのインベントリデータをクエリするのに役立ちます。Athena 統合では、リソースデータ同期が使用されるため、AWS Systems Manager コンソールの [Detailed View] (詳細ビュー) ページで、すべてのマネージドノードのインベントリデータを表示できます。

重要

この機能は、AWS Glue を使用して Amazon Simple Storage Service (Amazon S3) バケット内のデータをクロールし、Amazon Athena を使用してデータをクエリします。クロールおよびクエリされたデータ量に応じて、これらのサービスの使用に対して課金されます。AWS Glue を使用すると、クローラ (データの検出) と ETL ジョブ (データの処理とロード) に対して時間あたりの料金が秒単位で課金されます。Athena を使用すると、各クエリでスキャンされるデータ量に基づいて課金されます。Amazon Athena と Systems Manager Inventory の統合を使用する前に、これらのサービスの料金ガイドラインを確認することをお勧めします。詳細については、「Amazon Athena の料金」および「AWS Glue 料金」を参照してください。

Amazon Athena を利用できるすべての AWS リージョン の [Detail View (詳細ビュー)] ページでインベントリデータを表示できます。サポートされているリージョンのリストについては、「Amazon Web Services 全般のリファレンス」の「Amazon Athena サービスエンドポイント」を参照してください。

開始する前に

Athena 統合は、リソースデータ同期を使用します。この機能を使用するには、リソースデータ同期をセットアップし、設定する必要があります。詳細については、「インベントリのリソースデータの同期の設定」を参照してください。

また、[Detail View (詳細ビュー)] ページには、リソースデータ同期によって使用される中央 Amazon S3 バケットの所有者のインベントリデータが表示されることに注意してください。中央 Amazon S3 バケットの所有者でない場合は、Detail View (詳細ビュー) ページにインベントリデータは表示されません。

アクセス設定

Systems Manager コンソールの [詳細ビュー] ページで複数のアカウントおよびリージョンからのデータをクエリおよび表示するには、データを表示するアクセス許可を持つよう IAM エンティティを設定する必要があります。

オプションで、AWS Key Management Service (AWS KMS) 暗号化を使用する Amazon S3 バケットにインベントリデータが保存されている場合は、AWS KMS の暗号化が可能になるように IAM エンティティと Amazon-GlueServiceRoleForSSM サービスロールを設定する必要があります。

[詳細ビュー] ページにアクセスできるよう IAM ユーザーアカウントを設定

以下に、[詳細表示] ページでインベントリデータを表示するために必要な最低限の権限について説明します。

AWSQuicksightAthenaAccess マネージドポリシー

以下の PassRole およびその他の必要なアクセス許可ブロック

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGlue", "Effect": "Allow", "Action": [ "glue:GetCrawler", "glue:GetCrawlers", "glue:GetTables", "glue:StartCrawler", "glue:CreateCrawler" ], "Resource": "*" }, { "Sid": "iamPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "glue.amazonaws.com" } } }, { "Sid": "iamRoleCreation", "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "arn:aws:iam::account_ID:role/*" }, { "Sid": "iamPolicyCreation", "Effect": "Allow", "Action": "iam:CreatePolicy", "Resource": "arn:aws:iam::account_ID:policy/*" } ] }

(オプション) インベントリデータの保存に使用される Amazon S3 バケットが AWS KMS を使用して暗号化されている場合は、以下のブロックもポリシーに追加する必要があります。

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:Region:account_ID:key/key_ARN" ] }

アクセス権限を付与するには、ユーザー、グループ、またはロールにアクセス許可を追加します。

(オプション)AWS KMS 暗号化データを表示できるようアクセス許可を設定する

インベントリデータの保存に使用される Amazon S3 バケットが AWS Key Management Service (AWS KMS) で暗号化されている場合は、AWS KMS キーの kms:Decrypt アクセス許可で IAM エンティティと [Amazon-GlueServiceRoleForSSM] ロールを設定する必要があります。

開始する前に

AWS KMS キーに kms:Decrypt アクセス許可を与えるには、以下のポリシーブロックを IAM エンティティに追加します。

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:Region:account_ID:key/key_ARN" ] }

まだ手順を完了していない場合は、手順に従い、AWS KMS キーの kms:Decrypt アクセス許可を追加してください。

以下の手順に従って、AWS KMS キーの kms:Decrypt アクセス許可で Amazon-GlueServiceRoleForSSM ロールを設定します。

Amazon-GlueServiceRoleForSSM ロールを kms:Decrypt アクセス許可で設定するには
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで、[Roles (ロール)] を選択します。検索フィールドを使用して Amazon-GlueServiceRoleForSSM ロールを見つけます。概要 ページが開きます。

  3. 検索フィールドを使用して、Amazon-GlueServiceRoleForSSM ロールを見つけます。ロール名 を選択します。概要 ページが開きます。

  4. ロール名 を選択します。概要 ページが開きます。

  5. [Add inline policy] (インラインポリシーの追加) を選択します。[Create policy (ポリシーの作成)] ページが開きます。

  6. [JSON] タブを選択します。

  7. エディタで既存の JSON テキストを削除し、以下のポリシーを JSON エディタにコピーして貼り付けます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:Region:account_ID:key/key_ARN" ] } ] }
  8. [Review policy] (ポリシーの確認) を選択します。

  9. [Review Policy (ポリシーの確認)] ページで、[Name (名前)] フィールドに名前を入力します。

  10. [Create policy] を選択します。

インベントリの [Detailed View (詳細ビュー)] ページでのデータの照会

Systems Manager Inventory の [Detailed View (詳細ビュー)] ページで複数の AWS リージョン と AWS アカウント のインベントリデータを表示するには、次の手順を使用します。

重要

Inventory の [Detailed View (詳細ビュー)] ページは、Amazon Athena を提供する AWS リージョン でのみ利用できます。以下のタブが [Systems Manager Inventory] ページに表示されない場合は、Athena はリージョンで利用できず、データのクエリに [Detailed View (詳細ビュー)] を使用できないことを意味します。

インベントリダッシュボードの表示 | 詳細表示 | タブの設定
AWS Systems Manager コンソールで複数のリージョンとアカウントのインベントリデータを表示するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[インベントリ] を選択します。

  3. [Detailed View (詳細ビュー)] タブを選択します。

    AWS Systems Manager インベントリの詳細ビューページへのアクセス
  4. データをクエリするリソースデータ同期を選択します。

    AWS Systems Manager コンソールでインベントリデータを表示する
  5. [Inventory Type (インベントリタイプ)] リストで、クエリするインベントリデータのタイプを選択して、Enter キーを押します。

    AWS Systems Manager コンソールでインベントリタイプを選択する
  6. データをフィルタリングするには、フィルタバーを選択し、フィルタオプションを選択します。

    AWS Systems Manager コンソールでインベントリデータをフィルタリングする

[Export to CSV (CSV へエクスポート)] ボタンを使用して、Microsoft Excel などのスプレッドシートアプリケーションで現在のクエリセットを表示できます。また、[Query History (クエリ履歴)] および [Run Advanced Queries (高度なクエリの実行)] ボタンを使用して、履歴の詳細を表示したり、Amazon Athena でデータと通信したりすることができます。

AWS Glue クローラスケジュールの編集

AWS Glue は、デフォルトで毎日 2 回、中央 Amazon S3 バケットのインベントリデータをクロールします。ノードで収集するデータのタイプを頻繁に変更する場合は、次の手順で説明するように、より頻繁にデータをクロールすることをお勧めします。

重要

AWS Glue は、クローラ (データの検出) と ETL ジョブ (データの処理とロード) に対して時間あたりの料金が秒単位で AWS アカウント に課金されます。クローラスケジュールを変更する前に、「AWS Glue 料金表」ページを参照してください。

インベントリデータクローラのスケジュールを変更するには
  1. https://console.aws.amazon.com/glue/ で AWS Glue コンソール を開きます。

  2. ナビゲーションペインで、[Crawlers (クローラ)] を選択します。

  3. クローラリストで、Systems Manager Inventory データクローラの横にあるオプションを選択します。クローラ名は、次の形式を使用します。

    AWSSystemsManager-amzn-s3-demo-bucket-Region-account_ID

  4. [Actions (アクション)] を選択して、[Edit crawler (クローラの編集)] を選択します。

  5. ナビゲーションペインで、[Schedule (スケジュール)] を選択します。

  6. [Cron expression (Cron 式)] フィールドで、cron 形式を使用して新しいスケジュールを指定します。cron 形式の詳細については、AWS Glue デベロッパーガイドの「ジョブとクローラの時間ベースのスケジュール」を参照してください。

重要

クローラを一時停止して、 に対する料金の発生を停止できますAWS Glue クローラを一時停止した場合、またはデータのクロールの頻度が低くなるように頻度を変更した場合は、インベントリの [Detailed View (詳細ビュー)] に、最新ではないデータが表示されることがあります。