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) を使用して、単一のアカウントとリージョンのリソース設定データをクエリするには
-
コマンドプロンプトまたはターミナルウィンドウを開きます。
-
リソース設定データをクエリするには、次のコマンドを入力します。
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) を使用して、複数のアカウントとリージョンのリソース設定データをクエリするには
-
コマンドプロンプトまたはターミナルウィンドウを開きます。
-
リソース設定データをクエリするには、次のコマンドを入力します。
aws configservice select-aggregate-resource-config --expression "
SELECT resourceId WHERE resourceType='AWS::EC2::Instance'
" --configuration-aggregator-namemy-aggregator
クエリに応じて、出力は次のようになります。
{ "QueryInfo": { "SelectFields": [ { "Name": "resourceId" } ] }, "Results": [ "{\"resourceId\":\"
ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}" ] }注記
高度なクエリで
AWS::IAM::User
、AWS::IAM::Group
、AWS::IAM::Role
、およびAWS::IAM::Policy
リソースタイプを使用する場合は、awsRegion = 'global'
を使用します。
クエリの保存
-
コマンドプロンプトまたはターミナルウィンドウを開きます。
-
次のコマンドを入力してクエリを保存します。
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\" }]"
-
クエリに応じて、出力は次のようになります。
{ "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
は、クエリの作成時または更新時に使用するオプションです。
保存されたクエリをすべて表示
-
保存されているすべてのクエリのリストを表示するには、次のコマンドを入力します。
aws configservice list-stored-queries
-
クエリに応じて、出力は次のようになります。
{ "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" } ] } }
保存されたクエリの詳細の取得
-
保存されたクエリの詳細を取得するには、次のコマンドを入力します。
aws configservice get-stored-query --query-name cli-test
-
クエリに応じて、出力は次のようになります。
{ "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
成功すると、コマンドは追加の出力なしで実行されます。