SQL クエリエディタ (AWS CLI) を使用したクエリ - AWS Config

SQL クエリエディタ (AWS CLI) を使用したクエリ

AWS CLI は、AWS サービスを管理するための統合ツールです。ダウンロードおよび設定用の単一のツールのみを使用して、コマンドラインから複数の AWS サービスを制御し、スクリプトを使用してそれらを自動化できます。AWS CLI の詳細と AWS CLI ツールのインストール手順については、「AWS Command Line Interface ユーザーガイド」の次のリソースを参照してください。

必要に応じて、「aws configure」と入力し、AWS CLI が高度なクエリを利用できる AWS リージョンを使用するように設定します。

考慮事項

前提条件

次のいずれかの AWS マネージドポリシーを使用している場合は、クエリを実行して保存するために必要なアクセス許可があります。AWSServiceRoleForConfig (サービスリンクロール) または AWS_ConfigRole

それ以外の場合は、AWSConfigUserAccess AWS マネージドポリシーにアクセス許可が含まれている必要があります。

クエリできるプロパティのリスト

更新されたプロパティのリストとそのデータ型は、[GitHub] より入手できます。

高度なクエリとアグリゲータ

アグリゲーターでクエリを実行するには、アグリゲーターを作成します。詳細については、「アグリゲータの作成」を参照してください。

アグリゲーターがすでに設定されている場合は、クエリのスコープでアグリゲーターを選択し、そのアグリゲーターで高度なクエリを実行します。アグリゲータを選択する場合は、クエリステートメントに AWS アカウント ID と AWS リージョンを追加して、その情報を結果に表示することを検討してください。

リソース設定データのクエリ

クエリエディタ (AWS CLI) を使用して、単一のアカウントとリージョンのリソース設定データをクエリするには
  1. コマンドプロンプトまたはターミナルウィンドウを開きます。

  2. リソース設定データをクエリするには、次のコマンドを入力します。

    aws configservice select-resource-config --expression "SELECT resourceId WHERE resourceType='AWS::EC2::Instance'"

    クエリに応じて、出力は次のようになります。

    { "QueryInfo": { "SelectFields": [ { "Name": "resourceId" } ] }, "Results": [ "{\"resourceId\":\"ResourceId\"}", "{\"resourceId\":\"ResourceId\"}", "{\"resourceId\":\"ResourceId\"}", "{\"resourceId\":\"ResourceId\"}", "{\"resourceId\":\"ResourceId\"}", "{\"resourceId\":\"ResourceId\"}", "{\"resourceId\":\"ResourceId\"}" ] }
クエリエディタ (AWS CLI) を使用して、複数のアカウントとリージョンのリソース設定データをクエリするには
  1. コマンドプロンプトまたはターミナルウィンドウを開きます。

  2. リソース設定データをクエリするには、次のコマンドを入力します。

    aws configservice select-aggregate-resource-config --expression "SELECT resourceId WHERE resourceType='AWS::EC2::Instance'" --configuration-aggregator-name my-aggregator

    クエリに応じて、出力は次のようになります。

    { "QueryInfo": { "SelectFields": [ { "Name": "resourceId" } ] }, "Results": [ "{\"resourceId\":\"ResourceId\"}", "{\"resourceId\":\"ResourceId\"}", "{\"resourceId\":\"ResourceId\"}", "{\"resourceId\":\"ResourceId\"}", "{\"resourceId\":\"ResourceId\"}", "{\"resourceId\":\"ResourceId\"}", "{\"resourceId\":\"ResourceId\"}" ] }
    注記

    高度なクエリで AWS::IAM::UserAWS::IAM::GroupAWS::IAM::Role、および AWS::IAM::Policy リソースタイプを使用する場合は、awsRegion = 'global' を使用します。

クエリの保存

  1. コマンドプロンプトまたはターミナルウィンドウを開きます。

  2. 次のコマンドを入力してクエリを保存します。

    aws configservice put-stored-query --stored-query "{\"QueryName\": \"cli-test\", \"Expression\": \"SELECT *\", \"Description\": \"cli test query\" }" --tags "[{ \"Key\": \"first-tag\", \"Value\": \"\" }, { \"Key\": \"second-tag\", \"Value\": \"non-empty-tag-value\" }]"
  3. クエリに応じて、出力は次のようになります。

    { "QueryArn": "arn:aws:config:eu-central-1:Account ID:stored-query/cli-test/query-e65mijt4rmam5pab" }
    注記

    --tags は省略可能です。タグを渡すと、保存されたタグは list-stored-queries および get-stored-query のどちらからも返されません。list-tag-for-resources を使用して、保存されたクエリに関連するタグを取得する必要があります。

    --description は、クエリの作成時または更新時に使用するオプションです。

保存されたクエリをすべて表示

  1. 保存されているすべてのクエリのリストを表示するには、次のコマンドを入力します。

    aws configservice list-stored-queries
  2. クエリに応じて、出力は次のようになります。

    { "StoredQueryMetadata": [ { "QueryId": "query-e65mijt4rmam5pab", "QueryArn": "arn:aws:config:eu-central-1:Account ID:stored-query/cli-test/query-e65mijt4rmam5pab", "QueryName": "cli-test" }, { "QueryId": "query-rltwlewlqfivadxq", "QueryArn": "arn:aws:config:eu-central-1:Account ID:stored-query/cli-test-2/query-rltwlewlqfivadxq", "QueryName": "cli-test-2", "Description": "cli test query" } ] } }

保存されたクエリの詳細の取得

  1. 保存されたクエリの詳細を取得するには、次のコマンドを入力します。

    aws configservice get-stored-query --query-name cli-test
  2. クエリに応じて、出力は次のようになります。

    { "StoredQuery": { "QueryId": "query-e65mijt4rmam5pab", "QueryArn": "arn:aws:config:eu-central-1:Account ID:stored-query/cli-test/query-e65mijt4rmam5pab", "QueryName": "cli-test", "Description": "cli test query", "Expression": "SELECT *" } }

保存されたクエリの削除

  • 保存されたクエリを削除するには、次のコマンドを入力します。

    aws configservice delete-stored-query --query-name cli-test

成功すると、コマンドは追加の出力なしで実行されます。