Cloud Risk Management 查詢語言是一種自由文本語法,提供進階功能以進行正在過濾檢查,允許比簡單過濾器更強大的複雜查詢。
CQL 允許您透過欄位/值對進行搜尋。語法允許您使用邏輯運算符、括號和引號來指定考慮條件的關係和順序。
邏輯運算子
欄位/值搜尋條件的基本語法是 [field]:[value],其中冒號 (:) 指定給定的欄位必須等於指定的值,才能在搜尋結果中返回檢查。
邏輯運算子允許您指定多個條件並指示它們之間的關係。CQL 將支援以下明確的邏輯運算子:
|
Operator name
|
運算子
|
說明
|
Example
|
|
相等
|
: |
如果右側等於左側,即欄位等於值,則匹配
|
服務:EC2 |
|
不等於
|
:- |
如果右側不等於左側,則匹配,即欄位不等於值
|
服務 :- IAM |
|
AND
|
AND |
如果檢查同時包含兩個條件則匹配
|
狀態:成功且風險等級:高 |
|
OR
|
或 |
如果檢查包含任一標準則匹配
|
合規性 : MAS 或 合規性 : HITRUST |
|
括號
|
() |
括號用來表示對正常運算順序(優先規則)的修改。在像
(compliance : MAS OR compliance : HITRUST) AND status: SUCCESS 這樣的表達式中,括號內的部分會先被評估,然後結果會用於表達式的其餘部分。 |
(合規性 : MAS OR 合規性 : HITRUST) AND 狀態 : 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的文件。 |
資源萬用字元
資源欄位支援萬用字元搜尋。此語法支援兩個運算子:?,匹配任何單一字元- _
*,可以匹配零個或多個字元,包括空字元 _範例:- 尋找所有以sg-開頭並以任意字符結尾的資源:
resource : sg-* - 尋找所有以sg-開頭並以任意一個字元加上字母s結尾的資源
resource : sg-?s
- 尋找所有以sg-開頭並以任意字符結尾的資源:
請注意,萬用字元查詢可能會使用大量記憶體且效能非常差——想想需要查詢多少詞彙才能匹配查詢字串
a* b* c*資源正則表達式
resource 欄位支援正則表達式模式。可以透過將它們用斜線 ("/") 包裹來嵌入查詢字串中:resource : /arn:aws:iam::[0-9]{12}:policy\/.*Part1/支援的正則表達式語法在篩選和搜尋中進行了解釋
欄位列表
|
Field Name
|
Data type
|
說明
|
Example
|
|
規則標題
|
字串
|
如果規則的標題包含與值匹配的相關結果,則會匹配。請參閱上面的全文搜索說明。
|
ruleTitle : "不受限制的 SSH 存取" |
|
規則ID
|
字串
|
如果規則 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" |
|
晚於天數
|
number
|
olderThanDays' 和 'newerThanDays' 範圍指的是從今天開始往回計算的天數。它將輸入的天數轉換為檢查創建並分配狀態的日期,或狀態從「成功」變為「失敗」或從「失敗」變為「成功」的日期。您可以通過輸入您希望查看的天數來使用此篩選器,這些天數應在
'olderThanDays' 之前和 'newerThanDays' 之後。您必須暫不處理至少 2 天至 1 天,以查看特定時間段的任何檢查。要顯示從特定日期到今天的檢查,請在
'newerThanDays' 中輸入天數,並且不要設置 'olderThanDays'。
|
newerThanDays : 20 |
|
olderThanDays
|
number
|
若要顯示截至特定日期的所有檢查,請在olderThanDays中輸入要從今天往回的天數,並且不要設定newerThanDays。
|
olderThanDays : 20 |
|
過濾標籤
|
字串
|
如果分配給您資源的元數據標籤中至少有一個標籤的鍵或值具有此值,則會匹配。要同時匹配鍵和值,請以鍵::值對的形式指定它們
|
filterTag : "env::dev"filterTag : "env"filterTag : "dev" |
|
service
|
字串
|
如果提供者服務完全匹配,則會匹配。欲了解有關服務的詳細資訊,請參閱Cloud Risk Management 服務端點。
|
服務 : IAM |
|
類別
|
字串
|
如果類別完全匹配,則會符合。可能的值為:安全性或成本優化或運營卓越或可靠性或效能效率
|
類別 : 安全 |
|
地區
|
字串
|
如果區域完全匹配,則會符合。欲了解更多關於區域的詳細資訊,請參閱Cloud Risk Management 區域端點。
|
region : eu-west-2 |
|
風險等級
|
字串
|
如果風險等級完全匹配,則會符合。可能的值為:LOW、中、HIGH、VERY_HIGH 或 EXTREME
|
風險等級:高 |
|
資源類型
|
字串
|
如果資源類型完全匹配,則會匹配。欲了解更多關於服務的詳細資訊,請參閱 Cloud Risk Management 資源類型端點。
|
resourceType : ec2-securitygroup OR resourceType : ec2-instance |
|
提供者
|
字串
|
如果雲端提供者完全匹配,則會匹配。
|
提供者 : aws |
|
合規
|
字串
|
如果合規標準完全匹配,則會符合。欲了解更多有關合規標準的詳細資訊,請參閱我們的API 文件中關於compliances欄位的說明。
|
合規性 : AWAF |
|
狀態
|
字串
|
如果檢查的狀態完全匹配,則會匹配。可能的值為 SUCCESS 或 FAILURE
|
狀態:成功 |
|
已封鎖
|
字串
|
是否包含所有被抑制的檢查。「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 : HIGH OR status : SUCCESSservice : EC2 AND category :- security(服務 : ELB OR 類別 : security) AND 風險等級 :- 中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-1service : EC2 AND (( category : security OR riskLevel : HIGH) OR status :- SUCCESS)
