目次

CQLフィルタ方式

Conformity Query Language は、チェックをフィルタするための高度な機能を提供するフリーテキスト構文で、Simple Filterで実行できるものよりも複雑なクエリを実行できます。

CQLでは、フィールド/値のペアで検索できます。構文では、論理演算子、カッコ、および引用符を使用して、条件が考慮される関係と順序を指定できます。

コンテンツ

論理演算子

ワイルドカード

正規表現

フィールドリスト

CQLを使用してチェックをフィルタする

クエリの例

論理演算子

フィールド/値の検索条件の基本構文は、[フィールド]:[値]です。ここで、コロン文字(:)は、チェックが検索結果に返されるためには、指定されたフィールドが指定された値と等しいことを指定します。

論理演算子を使用すると、複数の条件を指定し、それらの間の関係を示すことができます。CQLでは、次の明示的な論理演算子がサポートされます。

演算子名 演算子 説明
EQUALS : 右側が左側の場合、つまりフィールドが値の場合に一致 service : EC2
NOT EQUALS :- 右側が左側と等しくない、つまりフィールドが値と等しくない場合に一致 service :- IAM
および AND チェックに両方の条件が含まれる場合に一致 status : SUCCESS AND riskLevel : HIGH
または OR チェックにいずれかの条件が含まれる場合に一致 compliance : MAS OR compliance : HITRUST
カッコ () カッコは、通常の処理順序(優先ルール)に対する変更を示します。 (compliance : MAS OR compliance : HITRUST) AND status: SUCCESSのような式では、括弧内の式の部分が最初に評価され、次に残りの部分で結果が使用されます。 (compliance : MAS OR compliance : HITRUST) AND status : SUCCESS
引用符 " 文字列に特殊文字やスペースが含まれている場合に、文字列を囲むために使用します。 message : "Continuous Backups are not enabled for [ddb-users-dev]"
  • 検索クエリ内の用語を明確にグループ化するには、カッコを自由に使用してください。
  • 文字列に文字と数字およびスペース以外の文字が含まれ、正規表現として解釈されない場合は、 "で囲む必要があります。たとえば、「resource」や「message」などのフリーテキストフィールドがこれに該当します。
  • 正規表現を使用する場合、予約文字 . ? + * { } [ ] ( ) " \\でエスケープする必要があります
  • 完全一致を検索する他のフィールドとは異なり、[メッセージ]フィールドと[ルールタイトル]フィールドでは、全文検索が使用されます。この検索では、完全一致ではなく、_関連する_すべての結果が返されます。「Quick fox jumps」を検索する場合、「A quick brown fox jumps over the lazy dog」が含まれているドキュメントが必要かもしれませんし、または「fast fox」、「foxes leap」などの関連する単語を含むドキュメントが必要になる場合があります。

リソースのワイルドカード

resource フィールドはワイルドカード検索をサポートしています。この構文は2つの演算子をサポートします。

  • ?。任意の1文字に一致します。
  • _*文字以上の空の文字を含む
    例:
    • 「sg-」で始まり任意の数の文字で終わるすべてのリソースを検索します。
      resource : sg-*
    • 「sg-」で始まり任意の1文字+文字「s」で終わるすべてのリソースを検索します。
      resource : sg-?s

ワイルドカードクエリは大量のメモリを使用し、パフォーマンスが非常に低下する可能性があることに注意してください。クエリ文字列に一致させるためにクエリが必要な用語a* b* c*の数を考えてください。

リソースの正規表現

resource フィールドは、正規表現パターンをサポートしています。クエリ文字列に含める場合は、スラッシュ("/")で囲みます。

resource : /arn:aws:iam::[0-9]{12}:policy\/.*Part1/

サポートされている正規表現の構文については、「フィルタと検索」を参照してください。

フィールドリスト

フィールド名 データタイプ 説明
ruleTitle 文字列 ルールのタイトルに値に一致する関連する結果が含まれる場合に一致します。上記の全文検索の説明を参照してください。 ruleTitle : "Unrestricted SSH Access"
ruleId 文字列 ルールIDが完全一致の場合に一致します。[オートコンプリート]ドロップダウンから選択します。 ruleId : EC2-081 OR ruleId : EC2-088
メッセージ 文字列 値に一致する関連する結果がメッセージに含まれる場合に一致します。上記の全文検索の説明を参照してください。 message : "access keys"
リソース 文字列
regex
リソース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」に変更された日付に変換します。 。このフィルタを使用するには、「oldThanDays」までと「newerThanDays」の後に表示する日数の値を入力します。特定の期間のチェックを確認するには、2日以上1日以上経過している必要があります。特定の日から今日までのチェックを表示するには、「newerThanDays」に日数を渡し、「olderThanDays」は設定しないでください。 newerThanDays : 20
olderThanDays 番号 特定の日までのすべてのチェックを表示するには、「olderThanDays」に今日からさかのぼる日数を渡し、「newerThanDays」は設定しません。 olderThanDays : 20
filterTag 文字列 リソースに割り当てられたメタデータタグに、この値をキーまたはタグとするタグが少なくとも1つある場合に一致します。キーと値の両方に一致させるには、key :: valueのペアで指定します。 filterTag : "env::dev"

filterTag : "env"

filterTag : "dev"
サービス 文字列 プロバイダサービスが完全に一致する場合に一致します。サービスの詳細については、「 Conformity Services Endpoint」を参照してください。 service : IAM
カテゴリ 文字列 カテゴリが完全に一致する場合に一致します。可能な値は、セキュリティ、コスト最適化、運用の卓越性、信頼性、パフォーマンスの効率です。 category : security
地域 文字列 地域が完全に一致する場合に一致します。リージョンの詳細については、 Conformity リージョンエンドポイントを参照してください。 region : eu-west-2
riskLevel 文字列 リスクレベルが完全一致の場合に一致します。可能な値は次のとおりです。
LOW、MEDIUM、HIGH、VERY_HIGH、またはEXTREME
riskLevel : HIGH
resourceType 文字列 リソースの種類が完全に一致する場合に一致します。サービスの詳細については、「 Conformity ResourceTypes Endpoint」を参照してください。 resourceType : ec2-securitygroup OR resourceType : ec2-instance
provider 文字列 クラウドプロバイダが完全に一致する場合に一致します。 provider : aws
コンプライアンス 文字列 コンプライアンス標準が完全に一致する場合に一致します。コンプライアンス基準の詳細については、当社を参照してください。フィールド「コンプライアンス」に関するAPIドキュメント compliance : AWAF
ステータス 文字列 チェックのステータスが完全に一致する場合に一致します。可能な値は、 SUCCESS または FAILURE。 status : SUCCESS
suppressedを抑制しました 文字列 すべての suppressed チェックを含めるかどうか。初期設定値は「v1」の場合はtrue、「v2」の場合は省略されます。可能な値はtrueまたはfalseです。 suppressed : true

CQLを使用してチェックをフィルタする

  1. [ Browse all checks ]をクリックし、 CQL フィルタ方法を選択します。
  2. 入力を開始して、検索するフィールドを選択してください。 等しい : または 等しくない :- 演算子を選択し、使用可能な値のリストから値を選択します。
  3. ここで停止するか、または OR または ANDを使用して条件の追加を続行できます。条件を優先するにはカッコを使用してください。
  4. フィールドにドロップダウンがない場合は、検索文字列を "" で囲んで入力し、完了したら[ Apply filter ]ボタンをクリックします。


 {.zoom}

クエリの例

  • service : EC2 OR category : security OR riskLevel : HIGH OR status : SUCCESS
  • service : EC2 AND category :- security
  • (service : ELB OR category : security) AND riskLevel :- MEDIUM
  • service : EC2 AND ( category : security OR riskLevel : HIGH) 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 : HIGH) OR status :- SUCCESS)