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やmessageのような自由テキストフィールドの場合がこれに該当します。
  • 正規表現を使用する場合、予約文字 . . ? + * [ ] ( ) " \\ でエスケープする必要があります
  • 他のフィールドが完全一致を検索するのに対し、messageおよびruleTitleフィールドは全文検索を使用し、検索は完全一致だけでなく、すべての関連する結果を返します。Quick fox jumpsを検索すると、おそらくA quick brown fox jumps over the lazy dogを含むドキュメントが欲しいでしょうし、fast foxやfoxes leapのような関連する単語を含むドキュメントも欲しいかもしれません。

リソースワイルドカード 親トピック

resourceフィールドはワイルドカード検索をサポートしています。この構文は2つの演算子をサポートしています。
  • ?は任意の1文字に一致します
  • _*は、空の文字を含む0文字以上の文字に一致することができます_例:
    • sg-で始まり任意の文字で終わるすべてのリソースを見つける: resource : sg-*
    • sg-で始まり、任意の1文字+sで終わるすべてのリソースを見つける resource : sg-?s
ワイルドカードクエリは大量のメモリを使用し、非常に悪いパフォーマンスを発揮する可能性があることに注意してください。クエリ文字列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を使用してチェックをフィルタリングする 親トピック

手順

  1. [Browse all checks]をクリックし、[CQL]フィルターメソッドを選択してください。
  2. 検索するフィールドを選択するには入力を開始してください。[equal :]または[not equal :-]オペレーターを選択し、利用可能な値のリストから値を選択してください。
  3. ここで停止するか、[OR]または[AND]を使用して条件を追加し続けることができます。条件の優先順位を確保するために括弧を使用してください。
  4. フィールドにドロップダウンがない場合は、検索テキストを "" で囲んで入力し、完了したら [Apply filter] ボタンをクリックしてください。
    step-4-cql=c190ec65-7588-4a97-8a53-2c46a079153c.png

クエリの例 親トピック

  • 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)