

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

# SQL クエリエディタ for AWS Config (AWS CLI) を使用したクエリ
<a name="query-using-sql-editor-cli"></a>

 AWS CLI は、 AWS サービスを管理するための統合ツールです。ダウンロードと設定のツールを 1 つだけ使用すると、コマンドラインから複数の AWS サービスを制御して、スクリプトを使用して自動化できます。の詳細 AWS CLI と AWS CLI ツールのインストール手順については、 *AWS Command Line Interface ユーザーガイド*の以下を参照してください。
+ [AWS Command Line Interface ユーザーガイド](https://docs.aws.amazon.com/cli/latest/userguide/)
+ [AWS Command Line Interfaceのセットアップ](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) 

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

## 考慮事項
<a name="query-using-sql-editor-cli-considerations"></a>

**前提条件**

次のいずれかの AWS マネージドポリシーを使用している場合は、クエリを実行して保存するために必要なアクセス許可が付与されます。[AWSServiceRoleForConfig](https://docs.aws.amazon.com/config/latest/developerguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AWSServiceRoleForConfig) (サービスにリンクされたロール) または [AWS\$1ConfigRole](https://docs.aws.amazon.com/config/latest/developerguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AWS_ConfigRole)。

それ以外の場合は、[AWSConfigUserAccess](https://docs.aws.amazon.com/config/latest/developerguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AWSConfigUserAccess) AWS 管理ポリシーに含まれるアクセス許可が必要です。

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

更新されたプロパティのリストとそのデータ型は、[[GitHub](https://github.com/awslabs/aws-config-resource-schema)] より入手できます。

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

アグリゲーターでクエリを実行するには、アグリゲーターを作成します。詳細については、「[AWS Config のアグリゲータの作成](aggregated-create.md)」を参照してください。

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

## リソース設定データのクエリ
<a name="query-resource-configuration-data"></a>

**クエリエディタ (AWS CLI) を使用して、単一のアカウントとリージョンのリソース設定データをクエリするには**

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

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

   ```
   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. コマンドプロンプトまたはターミナルウィンドウを開きます。

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

   ```
   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::User`、`AWS::IAM::Group`、`AWS::IAM::Role`、および `AWS::IAM::Policy` リソースタイプを使用する場合は、`awsRegion = 'global'` を使用します。

## クエリの保存
<a name="put-saved-query"></a>

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

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

   ```
   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\" }]"
   ```

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

   ```
   {
       "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` は、クエリの作成時または更新時に使用するオプションです。

## 保存されたクエリをすべて表示
<a name="list-saved-queries"></a>

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

   ```
   aws configservice list-stored-queries
   ```

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

   ```
   {
       "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"
           }
       ]
   }
   }
   ```

## 保存されたクエリの詳細の取得
<a name="get-saved-query"></a>

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

   ```
   aws configservice get-stored-query --query-name cli-test
   ```

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

   ```
   {
       "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 *"
       }
   }
   ```

## 保存されたクエリの削除
<a name="delete-saved-query"></a>
+ 保存されたクエリを削除するには、次のコマンドを入力します。

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

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