Conformity Query Languageは、チェックをフィルタリングするための高度な機能を提供するフリーテキスト構文であり、Simple Filtersで行えるものよりも強力な複雑なクエリを可能にします。
CQLを使用すると、フィールド/値のペアで検索できます。構文では、論理演算子、括弧、引用符を使用して、条件が考慮される関係と順序を指定できます。
論理演算子
フィールド/値検索条件の基本構文は[field]:[value]です。コロン文字 (:) は、指定されたフィールドが指定された値と等しいことを指定し、検索結果にチェックが返されるようにします。
論理演算子を使用すると、複数の条件を指定し、それらの関係を示すことができます。CQLは次の明示的な論理演算子をサポートします:
オペレーター名
|
オペレーター
|
説明
|
例
|
EQUALS
|
: |
右辺が左辺と等しい場合に一致します。つまり、フィールドが値と等しい場合です
|
サービス: EC2 |
NOT EQUALS
|
:- |
右側が左側と等しくない場合に一致します。つまり、フィールドが値と等しくない場合です
|
サービス :- IAM |
AND
|
AND |
チェックに両方の基準が含まれている場合に一致します
|
status : SUCCESS AND riskLevel : 高 |
OR
|
OR |
チェックにいずれかの条件が含まれている場合に一致します
|
コンプライアンス: MAS OR コンプライアンス: HITRUST |
括弧
|
() |
括弧は通常のOperationsの順序 (優先順位ルール) を示すために使用されます。
(compliance : MAS OR compliance : HITRUST) AND status: SUCCESS のような式では、括弧内の式が最初に評価され、その結果が残りの式で使用されます。 |
(compliance : MAS OR compliance : HITRUST) AND status : SUCCESS |
引用符
|
" |
特殊文字やスペースを含む文字列を囲むために使用されます。
|
message : "連続バックアップは[ddb-users-dev]に対して有効になっていません" |
![]() |
ヒント
|
リソースワイルドカード
resource
フィールドはワイルドカード検索をサポートしています。この構文は2つの演算子をサポートしています。?
は任意の1文字に一致します- _
*
は、空の文字を含む0文字以上の文字に一致することができます_例:- sg-で始まり任意の文字で終わるすべてのリソースを見つける:
resource : sg-*
- sg-で始まり、任意の1文字+sで終わるすべてのリソースを見つける
resource : sg-?s
- sg-で始まり任意の文字で終わるすべてのリソースを見つける:
ワイルドカードクエリは大量のメモリを使用し、非常に悪いパフォーマンスを発揮する可能性があることに注意してください。クエリ文字列
a* b* c*
に一致するために、どれだけ多くの用語をクエリする必要があるかを考えてみてくださいリソースの正規表現
resource
フィールドは正規表現パターンをサポートしています。これらはスラッシュ ("/"
) で囲むことでクエリ文字列に埋め込むことができます:resource : /arn:aws:iam::[0-9]{12}:policy\/.*Part1/
サポートされている正規表現の構文については、フィルターと検索を参照してください
フィールドリスト
[Field Name]
|
[Data type]
|
[Description]
|
[Example]
|
ルールタイトル
|
文字列
|
ルールのタイトルに値と一致する関連結果が含まれている場合に一致します。全文検索の説明については上記を参照してください。
|
ruleTitle : "無制限のSSHアクセス" |
ruleId
|
文字列
|
ルールIDが完全一致する場合に一致します。オートコンプリートのドロップダウンから選択してください。
|
ruleId : EC2-081 OR ruleId : EC2-088 |
メッセージ
|
文字列
|
メッセージに関連する結果が値と一致する場合に一致します。全文検索の説明については、上記を参照してください。
|
メッセージ : "アクセスキー" |
resource
|
文字列正規表現
|
リソースIDが値と一致する場合に一致します。ワイルドカードや正規表現でも一致させることができます。上記の説明を参照してください。
|
resource : "aws-glue-an-data" resource : /arn:aws:iam::[0-9]{12}:policy\/.*Part1/ resource : "aws-*-an-??-data" |
newerThanDays
|
番号
|
olderThanDays' と 'newerThanDays' の範囲は、今日から遡る日数を指します。入力された日数を、チェックが作成されステータスが割り当てられた日付、またはステータスが
"Success" から "Failure" に、または "Failure" から "Success" に変更された日付に変換します。このフィルターを使用するには、'olderThanDays'
より前および 'newerThanDays' より後の表示したい日数を入力します。特定の期間のチェックを表示するには、少なくとも2日から1日までを指定する必要があります。特定の日から今日までのチェックを表示するには、'newerThanDays'
に日数を入力し、'olderThanDays' は設定しないでください。
|
newerThanDays : 20 |
olderThanDays
|
番号
|
特定の日までのAll checksを表示するには、olderThanDaysに今日から遡る日数を指定し、newerThanDaysを設定しないでください。
|
olderThanDays : 20 |
フィルタータグ
|
文字列
|
リソースに割り当てられたメタデータタグが、この値をタグのキーまたは値として持つタグが少なくとも1つある場合に一致します。キーと値の両方に一致させるには、key::valueペアで指定してください
|
filterTag : "env::dev" filterTag : "env" filterTag : "dev" |
サービス
|
文字列
|
プロバイダサービスが完全に一致する場合に一致します。サービスの詳細については、Conformity Services Endpointを参照してください。
|
サービス: IAM |
カテゴリ
|
文字列
|
カテゴリが完全一致する場合に一致します。考えられる値は、セキュリティ、コスト最適化、運用上の優秀性、信頼性、パフォーマンス効率です
|
カテゴリ: セキュリティ |
region
|
文字列
|
リージョンが完全に一致する場合に一致します。リージョンの詳細については、Conformity Region Endpointを参照してください。
|
リージョン : eu-west-2 |
リスクレベル
|
文字列
|
リスクレベルが完全一致する場合に一致します。可能な値は、低、中、高、VERY_HIGH、Extremeです
|
リスクレベル : 高 |
resourceType
|
文字列
|
リソースタイプが完全に一致する場合に一致します。サービスの詳細については、Conformity ResourceTypes Endpointを参照してください。
|
resourceType : ec2-securitygroup OR resourceType : ec2-instance |
プロバイダ
|
文字列
|
クラウドプロバイダが完全一致する場合に一致します。
|
プロバイダ : aws |
遵守
|
文字列
|
コンプライアンス基準が完全一致する場合に一致します。コンプライアンス基準の詳細については、フィールドcompliancesに関するAPIドキュメントを参照してください。
|
コンプライアンス: AWAF |
ステータス
|
文字列
|
チェックのステータスが完全一致する場合に一致します。可能な値はSUCCESSまたはFAILUREです
|
status : SUCCESS |
suppressed
|
文字列
|
すべてのsuppressedチェックを含めるかどうか。デフォルト値は"v1"ではtrue、"v2"では省略されています。可能な値はtrueまたはfalseです
|
suppressed : true |
CQLを使用してチェックをフィルタリングする
手順
- [Browse all checks]をクリックし、[CQL]フィルターメソッドを選択してください。
- 検索するフィールドを選択するには入力を開始してください。[equal :]または[not equal :-]オペレーターを選択し、利用可能な値のリストから値を選択してください。
- ここで停止するか、[OR]または[AND]を使用して条件を追加し続けることができます。条件の優先順位を確保するために括弧を使用してください。
- フィールドにドロップダウンがない場合は、検索テキストを "" で囲んで入力し、完了したら [Apply filter] ボタンをクリックしてください。
クエリの例
service : EC2 OR category : security OR riskLevel : 高 OR status : SUCCESS
service : EC2 AND category :- security
(service : ELB OR category : security) AND riskLevel :- 中
service : EC2 AND ( category : security OR riskLevel : 高) AND status : SUCCESS
((service : ELB OR service : CloudFront) AND status : FAILURE) OR (message : SSL OR ruleTitle : SSL)
(service : VPC AND status : FAILURE) OR region : ca-central-1
service : EC2 AND (( category : security OR riskLevel : 高) OR status :- SUCCESS)