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

クエリ例
service : EC2 OR category : security OR riskLevel : 高 OR status : SUCCESSサービス : EC2 AND カテゴリ :- セキュリティ(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-1service : EC2 AND (( category : security OR riskLevel : 高) OR status :- SUCCESS)
