置換規則集
如果要自訂受管理規則集的行為,請在部署時置換規則集。 當您置換規則集時,除了預設配置之外,您還指定要執行的變更。
您可以在下列層次置換規則集:
- 規則集置換會套用至已執行規則集中的所有規則。
- 標籤置換會套用至具有特定標籤的所有規則。 例如,使用標籤置換來自訂 CIS 受管理規則集,以便所有具有 wordpress 標籤的規則都設為「封鎖」。 如果多個標籤有置換,且規則有多個這些標籤,標籤置換順序會決定行為。 對於以多個置換標籤標示的規則,會套用最後一個標籤的置換。
- 規則置換會套用至受管理規則集中由其「規則 ID」所參照的特定規則。
特定置換優先於一般置換,而規則置換優先於標籤置換,後者優先於規則集置換。
規則集置換和標籤置換會同時套用至受管理規則集中的現有和未來規則。 如果您只想置換現有的規則,則必須使用規則置換。
置換工作流程
若要套用受管理規則集的置換,請採取下列步驟。
- 使用列出規則集作業來列出可用的規則集。
- 使用取得規則集作業來列出該規則集的規則。
- 在您的階段進入點呼叫更新規則集作業。
- 指定
action_parameters
中執行受管理規則集之規則的置換。
"action_parameters": {
"id": "<RULESET_ID>",
"overrides": {
// ruleset overrides
"property-to-modify": "value",
"property-to-modify": "value",
// tag overrides
"categories": [
{
"category": "<TAG_NAME>",
"property-to-modify": "value",
"property-to-modify": "value"
}
],
// rule overrides
"rules": [
{
"id": "<RULE_ID>",
"property-to-modify": "value",
"property-to-modify": "value"
}
]
}
}
您可以置換下列規則內容。
- "動作"
- 「已啟用」
部分受管理規則集可以有額外的置換需求,也可以置換其他規則內容。
在實例層次使用置換來啟用受管理規則集中的所有規則並不有效。 此變更可能會影響實例中的所有區域。 依預設會停用部分規則,因為它們最終會影響合法資料流量。 如果沒有先前的考量,請勿跨區域啟用這些規則。
從 CLI 置換規則集
您可以從 CLI 置換規則集。
從 CLI 列出規則集
若要從 CLI 列出所有區域規則集,請執行下列指令:
ibmcloud cis managed-waf rulesets DNS_DOMAIN_ID [-i, --instance INSTANCE] [--output FORMAT]
其中:
DNS_DOMAIN_ID
是網域的 ID。-i, --instance value
是實例名稱或 ID。--output value
指定輸出格式; 僅支援 JSON。
從 CLI 列出規則
若要從 CLI 列出區域規則集下的規則,請執行下列指令:
ibmcloud cis managed-waf ruleset DNS_DOMAIN_ID RULESET_ID [-i, --instance INSTANCE] [--output FORMAT]
其中:
DNS_DOMAIN_ID
是網域的 ID。RULESET_ID
是要列出之規則的規則集 ID。-i, --instance value
是實例名稱或 ID。--output value
指定輸出格式; 僅支援 JSON。
從 CLI 置換受管理規則集
若要從 CLI 置換受管理 WAF 規則集,請執行下列指令:
ibmcloud cis managed-waf deployment-add-ruleset DNS_DOMAIN_ID RULESET_ID [--match EXPRESSION] [--enabled true|false] [--override-action ACTION] [--override-status STATUS] [--paranoia-level LEVEL] [--override-rules RULE] [-i, --instance INSTANCE] [--output FORMAT]
其中:
DNS_DOMAIN_ID
是網域的 ID。--match value
是必須符合才能執行規則的條件。 如需要符合的值清單,請參閱 欄位和表示式。--enabled value
指出規則是否在作用中。 預設為 "true"。--override-action value
是任何置換的規則集動作。 有效值為 "managed_challenge"、"block"、"js_challenge"、"log"、"challenge"。--paranoia-level value
是 OWASP 偏執層次。 有效值為 "PL1"、"PL2"、"PL3"、"PL4",且僅適用於CIS OWASP Core Ruleset
。--override-rules value
是置換的規則選項。 例如,--override-rules rule=RULE_ID,action=ACTION,enabled=STATUS
。-i, --instance value
是實例名稱或 ID。--output value
指定輸出格式; 僅支援 JSON。
以 API 置換規則集
您可以從 API 置換規則集。
從 API 列出規則集
若要從 API 列出所有區域規則集,請執行下列指令:
curl -X GET \
https://api.cis.cloud.ibm.com/v1/$CRN/zones/$ZONE_ID/rulesets \
-H 'content-type: application/json' \
-H 'accept: application/json' \
-H 'x-auth-user-token: Bearer xxxxxx'
從 API 列出規則
若要列出特定規則集的所有規則,請執行下列指令:
curl -X GET \
https://api.cis.cloud.ibm.com/v1/$CRN/zones/$ZONE_ID/rulesets/$RULESET_ID \
-H 'content-type: application/json' \
-H 'accept: application/json' \
-H 'x-auth-user-token: Bearer xxxxxx'
其中:
$RULESET_ID
是針對其列出規則之受管理規則集的 ID。
從 API 置換進入點規則集
若要使用置換從 API 更新進入點規則集,請執行下列指令:
curl -X PUT \
https://api.cis.cloud.ibm.com/v1/$CRN/zones/$ZONE_ID/rulesets/phases/$RULESET_PHASE/entrypoint \
-H 'content-type: application/json' \
-H 'accept: application/json' \
-H 'x-auth-user-token: Bearer xxxxxx' \
-d '{"description":"Deploy managed ruleset, enabling a specific rule with log action","rules":[{"action":"execute","expression":"true","action_parameters":{"id":"<MANAGED_RULESET_ID>","overrides":{"rules":[{"id":"<RULE_ID>","enabled":true,"action":"log"}]}}}]}'
其中:
$RULESET_PHASE
是部署至的規則集階段。 使用http_request_firewall_managed
來置換受管理 WAF 規則集。-d
是建立規則集所需之屬性的物件。description
定義您自己的規則集完成的內容摘要。rules
是要與規則集一起部署的規則陣列。action
是規則要採取的動作。 如需可用動作的說明,請參閱 規則動作。action_parameters
是用來定義動作操作對象的物件。id
是要執行的規則集 ID。 此 ID 擷取自清單區域規則集作業。overrides
是要在選取的規則集上設定的置換物件。rules
是以所選內容置換的規則清單。id
是要置換之規則的 ID。 此 ID 擷取自清單區域規則集規則作業。- 即使已啟用規則,
enabled
也會改寫。 action
指定規則所採取的置換動作。
expression
是執行規則的條件。 使用 "true" 表示一律執行此規則。description
定義您自己的規則完成的摘要。