

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

# を使用した AWS リソースの現在の設定状態のクエリ AWS Config
<a name="querying-AWS-resources"></a>


|  | 
| --- |
| 高度なクエリのプレビュー機能を導入すると、生成人工知能 (生成 AI) 機能を使用して平易な英語でプロンプトを入力し、すぐに使用できるクエリ形式に変換できます。詳細については、「[Natural language query processor for advanced queries](https://docs.aws.amazon.com/config/latest/developerguide/query-assistant.html)」を参照してください。 | 

を使用して AWS Config 、1 つのアカウントとリージョン、または複数のアカウントとリージョンの設定プロパティに基づいて AWS 、リソースの現在の設定状態をクエリできます。が AWS Config サポートする AWS リソースのリスト全体で、現在のリソース状態メタデータに対してプロパティベースのクエリを実行できます。サポートされているリソースタイプのリストの詳細については、「[Supported Resource Types for Advanced Queries](https://github.com/awslabs/aws-config-resource-schema/tree/master/config/properties/resource-types)」を参照してください。

*高度なクエリ機能*では、単一のクエリエンドポイントとクエリ言語を使用して、現在のリソース状態のメタデータを取得できます。サービス固有の記述用 API コールを実行する必要はありません。設定アグリゲータを使用して、複数のアカウントと AWS リージョンにわたって中央アカウントから同じクエリを実行できます。

**Topics**
+ [機能](#query-features)
+ [クエリコンポーネント](query-components.md)
+ [クエリエディタ (コンソール)](query-using-sql-editor-console.md)
+ [クエリエディタ (AWS CLI)](query-using-sql-editor-cli.md)
+ [自然言語クエリプロセッサ](query-assistant.md)
+ [クエリ例](example-query.md)
+ [関係クエリの例](examplerelationshipqueries.md)
+ [制限事項](#query-limitations)
+ [CIDR 表記/IP 範囲](#query-cidr-notation)
+ [配列内の複数のプロパティ](#array-property-query-behavior)
+ [リージョンのサポート](#query-regionsupport)

## 機能
<a name="query-features"></a>

AWS Config は、構造化クエリ言語 (SQL) `SELECT`構文のサブセットを使用して、現在の設定項目 (CI) データに対してプロパティベースのクエリと集計を実行します。このクエリは、タグやリソース識別子との一致から、バージョニングが無効になっているすべての Amazon S3 バケットの表示など、複雑性の高いクエリまで多岐にわたります。これにより、 AWS サービス固有の API コールを実行せずに、必要な現在のリソース状態を正確にクエリできます。

また、集計関数 (例: `AVG`、`COUNT`、`MAX`、`MIN`、`SUM`) をサポートしています。

以下の場合は、高度なクエリを使用することができます。
+ インベントリ管理 (例: 特定のサイズの Amazon EC2 インスタンスのリストの取得)。
+ セキュリティとオペレーションのインテリジェンス (例: 特定の設定プロパティーが有効または無効になっているリソースのリストの取得)。
+ コスト最適化 (例: どの EC2 インスタンスにもアタッチされていない Amazon EBS ボリュームのリストの識別)。
+ コンプライアンスデータ (例: すべてのコンフォーマンスパックとそのコンプライアンスステータスのリストの取得)。

 AWS SQL クエリ言語の使用方法については、[「SQL とは (構造化クエリ言語)](https://aws.amazon.com/what-is/sql/)」を参照してください。

## 制限事項
<a name="query-limitations"></a>

**注記**  
アドバンストクエリは、設定レコーダーによって記録されるように設定されていないリソースのクエリをサポートしていません。リソースが検出されたが、設定レコーダーによって記録されるように設定されていない場合`configurationItemStatus`、 `ResourceNotRecorded`で を使用して設定項目 (CIs) AWS Config を作成します。アグリゲーターはこれらの CI を集約しますが、高度なクエリでは `ResourceNotRecorded` での CI のクエリをサポートしていません。レコーダー設定を更新して、クエリするリソースタイプを記録できるようにしてください。

SQL `SELECT` のサブセットとして、クエリ構文には次の制限があります。
+ `ALL`、`AS`、`DISTINCT`、`FROM`、`HAVING`、`JOIN`、および `UNION` などのクエリのキーワードはサポートされていません。`NULL` 値のクエリはサポートされていません。
+ クエリで優先度フィールドを直接作成するための複雑な `CASE` ステートメントはサポートされていません。
+ サードパーティーリソースに対するクエリはサポートされていません。高度なクエリを使用して取得したサードパーティーリソースでは、設定フィールドが `NULL` に設定されます。
+ SQL クエリで展開されるネスト構造 (タグなど) はサポートされていません。
+ 削除されたリソースのクエリはサポートされていません。削除されたリソースを検出するには、「 [によって検出されたリソースの検索 AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/looking-up-discovered-resources.html)」を参照してください。
+ すべての `SELECT` 列の省略表現 (つまり `SELECT *`) では、CI の最上位のスカラープロパティのみ選択されます。スカラープロパティは、`accountId`、`awsRegion`、`arn`、`availabilityZone`、`configurationItemCaptureTime`、`resourceCreationTime`、`resourceId`、`resourceName`、`resourceType`、`version` が返ります。
+ ワイルドカードの制限:
  + ワイルドカードは、プロパティ値でのみサポートされており、プロパティキーではサポートされていません (例: `...WHERE someKey LIKE 'someValue%'` はサポートされますが、`...WHERE 'someKey%' LIKE 'someValue%'` はサポートされません)。
  + サフィックスのワイルドカードのみをサポートします (例: `...LIKE 'AWS::EC2::%'` と `...LIKE 'AWS::EC2::_'` はサポートされますが、`...LIKE '%::EC2::Instance'` と `...LIKE '_::EC2::Instance'` はサポートされません)。
  + ワイルドカードの一致は、3 文字以上でなければなりません (例: `...LIKE 'ab%'` と `...LIKE 'ab_'` は許可されていませんが、`...LIKE 'abc%'` と `...LIKE 'abc_'` は許可されています)。
**注記**  
「`_`」(単一のアンダースコア) もワイルドカードとして扱われます。
+ 集約の制限:
  + 集計関数は、単一の引数またはプロパティのみ受け入れることができます。
  + 集計関数では、その他の関数を引数として取ることはできません。
  + `GROUP BY` は集約関数を参照する `ORDER BY` 句と組み合わせて、単一プロパティのみ含めることができます。
  + その他のすべての集約 `GROUP BY` 句には 3 つまでのプロパティを含めることができます。
  + ページ割りは、`ORDER BY` 句に集計関数がある場合を除き、すべての集約クエリでサポートされています。例えば、`Y` が集計関数の場合、`GROUP BY X, ORDER BY Y` は機能しません｡
  + 集約では、`HAVING` 句はサポートされていません。
+ 不一致の識別子に関する制限事項:

  不一致の識別子とは、スペルは同じで、アルファベットの大文字と小文字が異なるプロパティのことです。詳細クエリは、不一致の識別子を含むクエリの処理をサポートしていません。例えば、次のようになります。
  + スペルがまったく同じで、アルファベットの大文字と小文字が異なる 2 つのプロパティ (`configuration.dbclusterIdentifier` および `configuration.dBClusterIdentifier`)。
  + 一方のプロパティがもう一方のプロパティのサブセットで、アルファベットの大文字と小文字が異なる 2 つのプロパティ (`configuration.ipAddress` および `configuration.ipaddressPermissions`)。

## 高度なクエリの CIDR 表記/IP 範囲の動作
<a name="query-cidr-notation"></a>

CIDR 表記は、検索用の IP 範囲に変換されます。

これは、`"="` と `"BETWEEN"` が厳密な IP 範囲ではなく、提供された IP が含まれるすべての範囲を検索することを意味します。

厳密な IP 範囲を検索するには、範囲外の IP を除外するための条件を追加する必要があります。

**Example 厳密に正確な CIDR ブロック 10.0.0.0/24 の検索**  

```
SELECT * WHERE resourceType = 'AWS::EC2::SecurityGroup'
  AND configuration.ipPermissions.ipRanges BETWEEN '10.0.0.0'
  AND '10.0.0.255'
  AND NOT configuration.ipPermissions.ipRanges < '10.0.0.0'
  AND NOT configuration.ipPermissions.ipRanges > '10.0.0.255'
```

**Example 厳密に正確な IP アドレス 192.168.0.2/32 の検索**  

```
SELECT * WHERE resourceType = 'AWS::EC2::SecurityGroup'
  AND configuration.ipPermissions.ipRanges = '192.168.0.2'
  AND NOT configuration.ipPermissions.ipRanges > '192.168.0.2'
  AND NOT configuration.ipPermissions.ipRanges < '192.168.0.2'
```

## 高度なクエリの配列動作内の複数のプロパティ
<a name="array-property-query-behavior"></a>

オブジェクトの配列内の複数のプロパティに対してクエリを実行すると、*すべての配列要素*に対する一致が計算されます。

例えば、ルール A と B を持つリソース R の場合、リソースはルール A に準拠していますが、ルール B には準拠していません。リソース R は次のように保存されます。

```
{ 
    configRuleList: [ 
        {
            configRuleName: 'A', complianceType: 'compliant'
        }, 
        {   
            configRuleName: 'B', complianceType: 'non_compliant'
        } 
    ]
}
```

R は、このクエリによって返されます。

```
SELECT configuration WHERE configuration.configRuleList.complianceType = 'non_compliant' 
AND configuration.configRuleList.configRuleName = 'A'
```

最初の条件 `configuration.configRuleList.complianceType = 'non_compliant'` が R.configRuleList のすべての要素に適用されます。R には complianceType = 「non\$1compliant」のルール (ルール B) があるため、条件は true と評価されます。

2 番目の条件 `configuration.configRuleList.configRuleName` が R.configRuleList のすべての要素に適用されます。R には configRuleName =「A」のルール (ルール A) があるため、条件は true と評価されます。両方の条件が true であるため、R が返されます。

## リージョンのサポート
<a name="query-regionsupport"></a>

高度なクエリは、次のリージョンでサポートされています。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/config/latest/developerguide/querying-AWS-resources.html)