AWS WAFV2 使用範例 AWS CLI - AWS Command Line Interface

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS WAFV2 使用範例 AWS CLI

下列程式碼範例說明如何使用 AWS Command Line Interface 與來執行動作及實作常見案例 AWS WAFV2。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會顯示如何呼叫個別服務函數,但您可以在其相關案例中查看內容中的動作。

每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例會示範如何使用associate-web-acl

AWS CLI

將 Web ACL 與區域 AWS 資源建立關聯

下列associate-web-acl範例會將指定的 Web ACL 與 Application Load Balancer 產生關聯。

aws wafv2 associate-web-acl \ --web-acl-arn arn:aws:wafv2:us-west-2:123456789012:regional/webacl/test-cli/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --resource-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/waf-cli-alb/1ea17125f8b25a2a \ --region us-west-2

此命令不會產生輸出。

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《防 AWS Shield 進階開發人員指南》中的AWS WAF網頁ACL與 AWS 資源關聯或取消關聯。

  • 如需詳API細資訊,請參閱AWS CLI 指令參考AssociateWebAcl中的。

下列程式碼範例會示範如何使用check-capacity

AWS CLI

若要取得一組規則所使用的容量

下列項目check-capacity會擷取包含以速率為基礎的規則陳述式之規則集的容量需求,以及包含巢狀規AND則的規則陳述式。

aws wafv2 check-capacity \ --scope REGIONAL \ --rules file://waf-rule-list.json \ --region us-west-2

文件的內容://waf-rule-list.json:

[ { "Name":"basic-rule", "Priority":0, "Statement":{ "AndStatement":{ "Statements":[ { "ByteMatchStatement":{ "SearchString":"example.com", "FieldToMatch":{ "SingleHeader":{ "Name":"host" } }, "TextTransformations":[ { "Priority":0, "Type":"LOWERCASE" } ], "PositionalConstraint":"EXACTLY" } }, { "GeoMatchStatement":{ "CountryCodes":[ "US", "IN" ] } } ] } }, "Action":{ "Allow":{ } }, "VisibilityConfig":{ "SampledRequestsEnabled":true, "CloudWatchMetricsEnabled":true, "MetricName":"basic-rule" } }, { "Name":"rate-rule", "Priority":1, "Statement":{ "RateBasedStatement":{ "Limit":1000, "AggregateKeyType":"IP" } }, "Action":{ "Block":{ } }, "VisibilityConfig":{ "SampledRequestsEnabled":true, "CloudWatchMetricsEnabled":true, "MetricName":"rate-rule" } } ]

輸出:

{ "Capacity":15 }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》中的 AWS WAF AWS WAFWeb ACL 容量單位 (WCU) 和 AWS Shield 進階開發人員指南

  • 如需詳API細資訊,請參閱AWS CLI 指令參考CheckCapacity中的。

下列程式碼範例會示範如何使用create-ip-set

AWS CLI

建立要在 Web ACLs 和規則群組中使用的 IP 集

下列create-ip-set指令會建立具有單一位址範圍規格的 IP 集。

aws wafv2 create-ip-set \ --name testip \ --scope REGIONAL \ --ip-address-version IPV4 \ --addresses 198.51.100.0/16

輸出:

{ "Summary":{ "ARN":"arn:aws:wafv2:us-west-2:123456789012:regional/ipset/testip/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Description":"", "Name":"testip", "LockToken":"447e55ac-0000-0000-0000-86b67c17f8b5", "Id":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } }

如需詳細資訊,請參閱《 AWS Firewall Manager 員和 AWS Shield 進階開發人員指南》中的 IP 集和 Regex 病毒碼集。AWS WAF

  • 如需詳API細資訊,請參閱AWS CLI 指令參考CreateIpSet中的。

下列程式碼範例會示範如何使用create-regex-pattern-set

AWS CLI

若要建立在 Web ACLs 和規則群組中使用的正則表達式模式集

以下create-regex-pattern-set命令創建具有指定兩個正則表達式模式的正則表達式模式集。

aws wafv2 create-regex-pattern-set \ --name regexPatterSet01 \ --scope REGIONAL \ --description 'Test web-acl' \ --regular-expression-list '[{"RegexString": "/[0-9]*/"},{"RegexString": "/[a-z]*/"}]'

輸出:

{ "Summary":{ "ARN":"arn:aws:wafv2:us-west-2:123456789012:regional/regexpatternset/regexPatterSet01/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Description":"Test web-acl", "Name":"regexPatterSet01", "LockToken":"0bc01e21-03c9-4b98-9433-6229cbf1ef1c", "Id":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } }

如需詳細資訊,請參閱《 AWS Firewall Manager 員和 AWS Shield 進階開發人員指南》中的 IP 集和 Regex 病毒碼集。AWS WAF

下列程式碼範例會示範如何使用create-rule-group

AWS CLI

建立要在 Web 中使用的自訂規則群組 ACLs

下列create-rule-group指令會建立自訂規則群組以供地區使用。群組的規則陳述式會以JSON格式化的檔案提供。

aws wafv2 create-rule-group \ --name "TestRuleGroup" \ --scope REGIONAL \ --capacity 250 \ --rules file://waf-rule.json \ --visibility-config SampledRequestsEnabled=true,CloudWatchMetricsEnabled=true,MetricName=TestRuleGroupMetrics \ --region us-west-2

文件的內容://waf-規則. JSON:

[ { "Name":"basic-rule", "Priority":0, "Statement":{ "AndStatement":{ "Statements":[ { "ByteMatchStatement":{ "SearchString":"example.com", "FieldToMatch":{ "SingleHeader":{ "Name":"host" } }, "TextTransformations":[ { "Priority":0, "Type":"LOWERCASE" } ], "PositionalConstraint":"EXACTLY" } }, { "GeoMatchStatement":{ "CountryCodes":[ "US", "IN" ] } } ] } }, "Action":{ "Allow":{ } }, "VisibilityConfig":{ "SampledRequestsEnabled":true, "CloudWatchMetricsEnabled":true, "MetricName":"basic-rule" } } ]

輸出:

{ "Summary":{ "ARN":"arn:aws:wafv2:us-west-2:123456789012:regional/rulegroup/TestRuleGroup/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Description":"", "Name":"TestRuleGroup", "LockToken":"7b3bcec2-374e-4c5a-b2b9-563bf47249f0", "Id":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 牌進階開發人員指南》中的管理您自己的規則群組。AWS WAF

  • 如需詳API細資訊,請參閱AWS CLI 指令參考CreateRuleGroup中的。

下列程式碼範例會示範如何使用create-web-acl

AWS CLI

建立網頁的步驟 ACL

以下create-web-acl命令創建用ACL於區域使用的 Web。Web 的規則陳述式ACL會以JSON格式化的檔案提供。

aws wafv2 create-web-acl \ --name TestWebAcl \ --scope REGIONAL \ --default-action Allow={} \ --visibility-config SampledRequestsEnabled=true,CloudWatchMetricsEnabled=true,MetricName=TestWebAclMetrics \ --rules file://waf-rule.json \ --region us-west-2

文件的內容://waf-規則. JSON:

[ { "Name":"basic-rule", "Priority":0, "Statement":{ "AndStatement":{ "Statements":[ { "ByteMatchStatement":{ "SearchString":"example.com", "FieldToMatch":{ "SingleHeader":{ "Name":"host" } }, "TextTransformations":[ { "Priority":0, "Type":"LOWERCASE" } ], "PositionalConstraint":"EXACTLY" } }, { "GeoMatchStatement":{ "CountryCodes":[ "US", "IN" ] } } ] } }, "Action":{ "Allow":{ } }, "VisibilityConfig":{ "SampledRequestsEnabled":true, "CloudWatchMetricsEnabled":true, "MetricName":"basic-rule" } } ]

輸出:

{ "Summary":{ "ARN":"arn:aws:wafv2:us-west-2:123456789012:regional/webacl/TestWebAcl/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Description":"", "Name":"TestWebAcl", "LockToken":"2294b3a1-eb60-4aa0-a86f-a3ae04329de9", "Id":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 牌進階開發人員指南ACL》中AWS WAF的管理和使用 Web 存取控制清單 (Web)

  • 如需詳API細資訊,請參閱AWS CLI 指令參考CreateWebAcl中的。

下列程式碼範例會示範如何使用delete-ip-set

AWS CLI

若要刪除 IP 集

以下內容delete-ip-set會刪除指定的 IP 集。此呼叫需要一個 ID,您可以從呼叫中獲取list-ip-sets,以及一個鎖定令牌,您可以從呼叫中獲取list-ip-setsget-ip-set

aws wafv2 delete-ip-set \ --name test1 \ --scope REGIONAL \ --id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --lock-token 46851772-db6f-459d-9385-49428812e357

此命令不會產生輸出。

如需詳細資訊,請參閱《 AWS Firewall Manager 員和 AWS Shield 進階開發人員指南》中的 IP 集和 Regex 病毒碼集。AWS WAF

  • 如需詳API細資訊,請參閱AWS CLI 指令參考DeleteIpSet中的。

下列程式碼範例會示範如何使用delete-logging-configuration

AWS CLI

若要停用網頁的記錄 ACL

以下內容delete-logging-configuration會從指定的 Web 移除任何記錄組態ACL。

aws wafv2 delete-logging-configuration \ --resource-arn arn:aws:wafv2:us-west-2:123456789012:regional/webacl/test/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222

此命令不會產生輸出。

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 牌進階開發人員指南》中的 < 記錄 Web ACL 流量資訊 >。AWS WAF

下列程式碼範例會示範如何使用delete-regex-pattern-set

AWS CLI

刪除正則表達式模式集

以下delete-regex-pattern-set更新指定正則表達式模式集的設置。此呼叫需要一個 ID,您可以從呼叫中獲取list-regex-pattern-sets,以及一個鎖定令牌,您可以從呼叫list-regex-pattern-sets或呼叫中獲取get-regex-pattern-set

aws wafv2 delete-regex-pattern-set \ --name regexPatterSet01 \ --scope REGIONAL \ --id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --lock-token 0bc01e21-03c9-4b98-9433-6229cbf1ef1c

此命令不會產生輸出。

如需詳細資訊,請參閱《 AWS Firewall Manager 員和 AWS Shield 進階開發人員指南》中的 IP 集和 Regex 病毒碼集。AWS WAF

下列程式碼範例會示範如何使用delete-rule-group

AWS CLI

刪除自訂規則群組

下列項目delete-rule-group會刪除指定的自訂規則群組。此呼叫需要一個 ID,您可以從呼叫中獲取list-rule-groups,以及一個鎖定令牌,您可以從呼叫list-rule-groups或呼叫中獲取get-rule-group

aws wafv2 delete-rule-group \ --name TestRuleGroup \ --scope REGIONAL \ --id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --lock-token 7b3bcec2-0000-0000-0000-563bf47249f0

此命令不會產生輸出。

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 牌進階開發人員指南》中的管理您自己的規則群組。AWS WAF

  • 如需詳API細資訊,請參閱AWS CLI 指令參考DeleteRuleGroup中的。

下列程式碼範例會示範如何使用delete-web-acl

AWS CLI

若要刪除網頁 ACL

以下內容delete-web-acl會ACL從您的帳戶中刪除指定的網頁。ACL只有當網頁沒有與任何資源關聯時,才能刪除它。此呼叫需要一個 ID,您可以從呼叫中獲取list-web-acls,以及一個鎖定令牌,您可以從呼叫list-web-acls或呼叫中獲取get-web-acl

aws wafv2 delete-web-acl \ --name test \ --scope REGIONAL \ --id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --lock-token ebab4ed2-155e-4c9a-9efb-e4c45665b1f5

此命令不會產生輸出。

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 牌進階開發人員指南ACL》中AWS WAF的管理和使用 Web 存取控制清單 (Web)

  • 如需詳API細資訊,請參閱AWS CLI 指令參考DeleteWebAcl中的。

下列程式碼範例會示範如何使用describe-managed-rule-group

AWS CLI

擷取受管規則群組的說明

下列項目describe-managed-rule-group會擷取 AWS 受管規則群組的說明。

aws wafv2 describe-managed-rule-group \ --vendor-name AWS \ --name AWSManagedRulesCommonRuleSet \ --scope REGIONAL

輸出:

{ "Capacity": 700, "Rules": [ { "Name": "NoUserAgent_HEADER", "Action": { "Block": {} } }, { "Name": "UserAgent_BadBots_HEADER", "Action": { "Block": {} } }, { "Name": "SizeRestrictions_QUERYSTRING", "Action": { "Block": {} } }, { "Name": "SizeRestrictions_Cookie_HEADER", "Action": { "Block": {} } }, { "Name": "SizeRestrictions_BODY", "Action": { "Block": {} } }, { "Name": "SizeRestrictions_URIPATH", "Action": { "Block": {} } }, { "Name": "EC2MetaDataSSRF_BODY", "Action": { "Block": {} } }, { "Name": "EC2MetaDataSSRF_COOKIE", "Action": { "Block": {} } }, { "Name": "EC2MetaDataSSRF_URIPATH", "Action": { "Block": {} } }, { "Name": "EC2MetaDataSSRF_QUERYARGUMENTS", "Action": { "Block": {} } }, { "Name": "GenericLFI_QUERYARGUMENTS", "Action": { "Block": {} } }, { } "Name": "GenericLFI_URIPATH", "Action": { "Block": {} } }, { "Name": "GenericLFI_BODY", "Action": { "Block": {} } }, { "Name": "RestrictedExtensions_URIPATH", "Action": { "Block": {} } }, { "Name": "RestrictedExtensions_QUERYARGUMENTS", "Action": { "Block": {} } }, { "Name": "GenericRFI_QUERYARGUMENTS", "Action": { "Block": {} } }, { "Name": "GenericRFI_BODY", "Action": { "Block": {} } }, { "Name": "GenericRFI_URIPATH", "Action": { "Block": {} } }, { "Name": "CrossSiteScripting_COOKIE", "Action": { "Block": {} } }, { "Name": "CrossSiteScripting_QUERYARGUMENTS", "Action": { "Block": {} } }, { "Name": "CrossSiteScripting_BODY", "Action": { "Block": {} } }, { "Name": "CrossSiteScripting_URIPATH", "Action": { "Block": {} } } ] }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 牌進階開發人員指南》中的受管規則群組。AWS WAF

下列程式碼範例會示範如何使用disassociate-web-acl

AWS CLI

取消網頁與地區 AWS 資ACL源的關聯

下列disassociate-web-acl範例會從指定的 Application Load Balancer 移除任何現有的 Web ACL 關聯。

aws wafv2 disassociate-web-acl \ --resource-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/waf-cli-alb/1ea17125f8b25a2a \ --region us-west-2

此命令不會產生輸出。

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《防 AWS Shield 進階開發人員指南》中的AWS WAF網頁ACL與 AWS 資源關聯或取消關聯。

下列程式碼範例會示範如何使用get-ip-set

AWS CLI

擷取特定 IP 集

以下內容get-ip-set擷取具有指定名稱、範圍和 ID 的 IP 集。您可以從命令create-ip-set和中獲取 IP 集的 ID list-ip-sets

aws wafv2 get-ip-set \ --name testip \ --scope REGIONAL \ --id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

輸出:

{ "IPSet":{ "Description":"", "Name":"testip", "IPAddressVersion":"IPV4", "Id":"a1b2c3d4-5678-90ab-cdef-EXAMPLE1111", "ARN":"arn:aws:wafv2:us-west-2:123456789012:regional/ipset/testip/a1b2c3d4-5678-90ab-cdef-EXAMPLE1111", "Addresses":[ "192.0.2.0/16" ] }, "LockToken":"447e55ac-2396-4c6d-b9f9-86b67c17f8b5" }

如需詳細資訊,請參閱《 AWS Firewall Manager 員和 AWS Shield 進階開發人員指南》中的 IP 集和 Regex 病毒碼集。AWS WAF

  • 如需詳API細資訊,請參閱AWS CLI 指令參考GetIpSet中的。

下列程式碼範例會示範如何使用get-logging-configuration

AWS CLI

若要擷取 Web 的記錄設定 ACL

以下內容get-logging-configuration會擷取指定 Web 的記錄組態ACL。

aws wafv2 get-logging-configuration \ --resource-arn arn:aws:wafv2:us-west-2:123456789012:regional/webacl/test/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 \ --region us-west-2

輸出:

{ "LoggingConfiguration":{ "ResourceArn":"arn:aws:wafv2:us-west-2:123456789012:regional/webacl/test/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "RedactedFields":[ { "Method":{ } } ], "LogDestinationConfigs":[ "arn:aws:firehose:us-west-2:123456789012:deliverystream/aws-waf-logs-custom-transformation" ] } }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 牌進階開發人員指南》中的 < 記錄 Web ACL 流量資訊 >。AWS WAF

下列程式碼範例會示範如何使用get-rate-based-statement-managed-keys

AWS CLI

擷取以速率為基礎的規則封鎖的 IP 位址清單

以下內容get-rate-based-statement-managed-keys會擷取目前被用於地區應用程式的速率型規則所封鎖的 IP 位址。

aws wafv2 get-rate-based-statement-managed-keys \ --scope REGIONAL \ --web-acl-name testwebacl2 \ --web-acl-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --rule-name ratebasedtest

輸出:

{ "ManagedKeysIPV4":{ "IPAddressVersion":"IPV4", "Addresses":[ "198.51.100.0/32" ] }, "ManagedKeysIPV6":{ "IPAddressVersion":"IPV6", "Addresses":[ ] } }

如需詳細資訊,請參閱《 AWS Firewall Manager 員和 AWS Shield 進階開發人員指南》中的以速率為基礎的規則陳述式AWS WAF

下列程式碼範例會示範如何使用get-regex-pattern-set

AWS CLI

檢索特定的正則表達式模式集

以下get-regex-pattern-set檢索使用指定名稱,範圍,區域和 ID 設置的正則表達式模式。您可以從命令create-regex-pattern-setlist-regex-pattern-sets. 中獲取正則表達式模式的 ID。

aws wafv2 get-regex-pattern-set \ --name regexPatterSet01 \ --scope REGIONAL \ --id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --region us-west-2

輸出:

{ "RegexPatternSet":{ "Description":"Test web-acl", "RegularExpressionList":[ { "RegexString":"/[0-9]*/" }, { "RegexString":"/[a-z]*/" } ], "Name":"regexPatterSet01", "ARN":"arn:aws:wafv2:us-west-2:123456789012:regional/regexpatternset/regexPatterSet01/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Id":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }, "LockToken":"c8abf33f-b6fc-46ae-846e-42f994d57b29" }

如需詳細資訊,請參閱《 AWS Firewall Manager 員和 AWS Shield 進階開發人員指南》中的 IP 集和 Regex 病毒碼集。AWS WAF

下列程式碼範例會示範如何使用get-rule-group

AWS CLI

擷取特定自訂規則群組

以下內容get-rule-group擷取具有指定名稱、範圍和 ID 的自訂規則群組。您可以從指令create-rule-group和取得規則群組的 ID list-rule-groups

aws wafv2 get-rule-group \ --name ff \ --scope REGIONAL \ --id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

輸出:

{ "RuleGroup":{ "Capacity":1, "Description":"", "Rules":[ { "Priority":0, "Action":{ "Block":{ } }, "VisibilityConfig":{ "SampledRequestsEnabled":true, "CloudWatchMetricsEnabled":true, "MetricName":"jj" }, "Name":"jj", "Statement":{ "SizeConstraintStatement":{ "ComparisonOperator":"LE", "TextTransformations":[ { "Priority":0, "Type":"NONE" } ], "FieldToMatch":{ "UriPath":{ } }, "Size":7 } } } ], "VisibilityConfig":{ "SampledRequestsEnabled":true, "CloudWatchMetricsEnabled":true, "MetricName":"ff" }, "Id":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "ARN":"arn:aws:wafv2:us-west-2:123456789012:regional/rulegroup/ff/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Name":"ff" }, "LockToken":"485458c9-1830-4234-af31-ec4d52ced1b3" }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 牌進階開發人員指南》中的管理您自己的規則群組。AWS WAF

  • 如需詳API細資訊,請參閱AWS CLI 指令參考GetRuleGroup中的。

下列程式碼範例會示範如何使用get-sampled-requests

AWS CLI

若要擷取 Web 要求的範例 ACL

以下內容get-sampled-requests會擷取指定 Web ACL、規則度量和時間範圍的抽樣 Web 要求。

aws wafv2 get-sampled-requests \ --web-acl-arn arn:aws:wafv2:us-west-2:123456789012:regional/webacl/test-cli/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --rule-metric-name AWS-AWSManagedRulesSQLiRuleSet \ --scope=REGIONAL \ --time-window StartTime=2020-02-12T20:00Z,EndTime=2020-02-12T21:10Z \ --max-items 100

輸出:

{ "TimeWindow": { "EndTime": 1581541800.0, "StartTime": 1581537600.0 }, "SampledRequests": [ { "Action": "BLOCK", "Timestamp": 1581541799.564, "RuleNameWithinRuleGroup": "AWS#AWSManagedRulesSQLiRuleSet#SQLi_BODY", "Request": { "Country": "US", "URI": "/", "Headers": [ { "Name": "Host", "Value": "alb-test-1EXAMPLE1.us-east-1.elb.amazonaws.com" }, { "Name": "Content-Length", "Value": "7456" }, { "Name": "User-Agent", "Value": "curl/7.53.1" }, { "Name": "Accept", "Value": "/" }, { "Name": "Content-Type", "Value": "application/x-www-form-urlencoded" } ], "ClientIP": "198.51.100.08", "Method": "POST", "HTTPVersion": "HTTP/1.1" }, "Weight": 1 }, { "Action": "BLOCK", "Timestamp": 1581541799.988, "RuleNameWithinRuleGroup": "AWS#AWSManagedRulesSQLiRuleSet#SQLi_BODY", "Request": { "Country": "US", "URI": "/", "Headers": [ { "Name": "Host", "Value": "alb-test-1EXAMPLE1.us-east-1.elb.amazonaws.com" }, { "Name": "Content-Length", "Value": "7456" }, { "Name": "User-Agent", "Value": "curl/7.53.1" }, { "Name": "Accept", "Value": "/" }, { "Name": "Content-Type", "Value": "application/x-www-form-urlencoded" } ], "ClientIP": "198.51.100.08", "Method": "POST", "HTTPVersion": "HTTP/1.1" }, "Weight": 3 }, { "Action": "BLOCK", "Timestamp": 1581541799.846, "RuleNameWithinRuleGroup": "AWS#AWSManagedRulesSQLiRuleSet#SQLi_BODY", "Request": { "Country": "US", "URI": "/", "Headers": [ { "Name": "Host", "Value": "alb-test-1EXAMPLE1.us-east-1.elb.amazonaws.com" }, { "Name": "Content-Length", "Value": "7456" }, { "Name": "User-Agent", "Value": "curl/7.53.1" }, { "Name": "Accept", "Value": "/" }, { "Name": "Content-Type", "Value": "application/x-www-form-urlencoded" } ], "ClientIP": "198.51.100.08", "Method": "POST", "HTTPVersion": "HTTP/1.1" }, "Weight": 1 }, { "Action": "BLOCK", "Timestamp": 1581541799.4, "RuleNameWithinRuleGroup": "AWS#AWSManagedRulesSQLiRuleSet#SQLi_BODY", "Request": { "Country": "US", "URI": "/", "Headers": [ { "Name": "Host", "Value": "alb-test-1EXAMPLE1.us-east-1.elb.amazonaws.com" }, { "Name": "Content-Length", "Value": "7456" }, { "Name": "User-Agent", "Value": "curl/7.53.1" }, { "Name": "Accept", "Value": "/" }, { "Name": "Content-Type", "Value": "application/x-www-form-urlencoded" } ], "ClientIP": "198.51.100.08", "Method": "POST", "HTTPVersion": "HTTP/1.1" }, "Weight": 1 } ], "PopulationSize": 4 }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 進階開發人員指南》中的檢視 Web 要求範例。AWS WAF

下列程式碼範例會示範如何使用get-web-acl-for-resource

AWS CLI

若要擷取與 AWS 資源相關聯的 Web ACL

以下內容get-web-acl-for-resource會JSON擷取與指定資源相關聯的 Web ACL。

aws wafv2 get-web-acl-for-resource \ --resource-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/waf-cli-alb/1ea17125f8b25a2a

輸出:

{ "WebACL":{ "Capacity":3, "Description":"", "Rules":[ { "Priority":1, "Action":{ "Block":{ } }, "VisibilityConfig":{ "SampledRequestsEnabled":true, "CloudWatchMetricsEnabled":true, "MetricName":"testrule01" }, "Name":"testrule01", "Statement":{ "AndStatement":{ "Statements":[ { "ByteMatchStatement":{ "PositionalConstraint":"EXACTLY", "TextTransformations":[ { "Priority":0, "Type":"NONE" } ], "SearchString":"dGVzdHN0cmluZw==", "FieldToMatch":{ "UriPath":{ } } } }, { "SizeConstraintStatement":{ "ComparisonOperator":"EQ", "TextTransformations":[ { "Priority":0, "Type":"NONE" } ], "FieldToMatch":{ "QueryString":{ } }, "Size":0 } } ] } } } ], "VisibilityConfig":{ "SampledRequestsEnabled":true, "CloudWatchMetricsEnabled":true, "MetricName":"test01" }, "DefaultAction":{ "Allow":{ } }, "Id":"9a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 ", "ARN":"arn:aws:wafv2:us-west-2:123456789012:regional/webacl/test01/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 ", "Name":"test01" } }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《防 AWS Shield 進階開發人員指南》中的AWS WAF網頁ACL與 AWS 資源關聯或取消關聯。

下列程式碼範例會示範如何使用get-web-acl

AWS CLI

若要擷取網頁 ACL

以下內容get-web-acl會擷取ACL具有指定名稱、範圍和 ID 的 Web。您可以從命令create-web-acl和中獲ACL取網絡的 ID list-web-acls

aws wafv2 get-web-acl \ --name test01 \ --scope REGIONAL \ --id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

輸出:

{ "WebACL":{ "Capacity":3, "Description":"", "Rules":[ { "Priority":1, "Action":{ "Block":{ } }, "VisibilityConfig":{ "SampledRequestsEnabled":true, "CloudWatchMetricsEnabled":true, "MetricName":"testrule01" }, "Name":"testrule01", "Statement":{ "AndStatement":{ "Statements":[ { "ByteMatchStatement":{ "PositionalConstraint":"EXACTLY", "TextTransformations":[ { "Priority":0, "Type":"NONE" } ], "SearchString":"dGVzdHN0cmluZw==", "FieldToMatch":{ "UriPath":{ } } } }, { "SizeConstraintStatement":{ "ComparisonOperator":"EQ", "TextTransformations":[ { "Priority":0, "Type":"NONE" } ], "FieldToMatch":{ "QueryString":{ } }, "Size":0 } } ] } } } ], "VisibilityConfig":{ "SampledRequestsEnabled":true, "CloudWatchMetricsEnabled":true, "MetricName":"test01" }, "DefaultAction":{ "Allow":{ } }, "Id":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "ARN":"arn:aws:wafv2:us-west-2:123456789012:regional/webacl/test01/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Name":"test01" }, "LockToken":"e3db7e2c-d58b-4ee6-8346-6aec5511c6fb" }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 牌進階開發人員指南ACL》中AWS WAF的管理和使用 Web 存取控制清單 (Web)

  • 如需詳API細資訊,請參閱AWS CLI 指令參考GetWebAcl中的。

下列程式碼範例會示範如何使用list-available-managed-rule-groups

AWS CLI

擷取受管規則群組

以下內容會list-available-managed-rule-groups傳回目前可在您的 Web 中使用的所有受管規則群組清單ACLs。

aws wafv2 list-available-managed-rule-groups \ --scope REGIONAL

輸出:

{ "ManagedRuleGroups": [ { "VendorName": "AWS", "Name": "AWSManagedRulesCommonRuleSet", "Description": "Contains rules that are generally applicable to web applications. This provides protection against exploitation of a wide range of vulnerabilities, including those described in OWASP publications and common Common Vulnerabilities and Exposures (CVE)." }, { "VendorName": "AWS", "Name": "AWSManagedRulesAdminProtectionRuleSet", "Description": "Contains rules that allow you to block external access to exposed admin pages. This may be useful if you are running third-party software or would like to reduce the risk of a malicious actor gaining administrative access to your application." }, { "VendorName": "AWS", "Name": "AWSManagedRulesKnownBadInputsRuleSet", "Description": "Contains rules that allow you to block request patterns that are known to be invalid and are associated with exploitation or discovery of vulnerabilities. This can help reduce the risk of a malicious actor discovering a vulnerable application." }, { "VendorName": "AWS", "Name": "AWSManagedRulesSQLiRuleSet", "Description": "Contains rules that allow you to block request patterns associated with exploitation of SQL databases, like SQL injection attacks. This can help prevent remote injection of unauthorized queries." }, { "VendorName": "AWS", "Name": "AWSManagedRulesLinuxRuleSet", "Description": "Contains rules that block request patterns associated with exploitation of vulnerabilities specific to Linux, including LFI attacks. This can help prevent attacks that expose file contents or execute code for which the attacker should not have had access." }, { "VendorName": "AWS", "Name": "AWSManagedRulesUnixRuleSet", "Description": "Contains rules that block request patterns associated with exploiting vulnerabilities specific to POSIX/POSIX-like OS, including LFI attacks. This can help prevent attacks that expose file contents or execute code for which access should not been allowed." }, { "VendorName": "AWS", "Name": "AWSManagedRulesWindowsRuleSet", "Description": "Contains rules that block request patterns associated with exploiting vulnerabilities specific to Windows, (e.g., PowerShell commands). This can help prevent exploits that allow attacker to run unauthorized commands or execute malicious code." }, { "VendorName": "AWS", "Name": "AWSManagedRulesPHPRuleSet", "Description": "Contains rules that block request patterns associated with exploiting vulnerabilities specific to the use of the PHP, including injection of unsafe PHP functions. This can help prevent exploits that allow an attacker to remotely execute code or commands." }, { "VendorName": "AWS", "Name": "AWSManagedRulesWordPressRuleSet", "Description": "The WordPress Applications group contains rules that block request patterns associated with the exploitation of vulnerabilities specific to WordPress sites." }, { "VendorName": "AWS", "Name": "AWSManagedRulesAmazonIpReputationList", "Description": "This group contains rules that are based on Amazon threat intelligence. This is useful if you would like to block sources associated with bots or other threats." } ] }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 牌進階開發人員指南》中的受管規則群組。AWS WAF

下列程式碼範例會示範如何使用list-ip-sets

AWS CLI

擷取 IP 集清單

下列項目list-ip-sets會擷取具有地區範圍之帳戶的所有 IP 集。

aws wafv2 list-ip-sets \ --scope REGIONAL

輸出:

{ "IPSets":[ { "ARN":"arn:aws:wafv2:us-west-2:123456789012:regional/ipset/testip/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Description":"", "Name":"testip", "LockToken":"0674c84b-0304-47fe-8728-c6bff46af8fc", "Id":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 " } ], "NextMarker":"testip" }

如需詳細資訊,請參閱《 AWS Firewall Manager 員和 AWS Shield 進階開發人員指南》中的 IP 集和 Regex 病毒碼集。AWS WAF

  • 如需詳API細資訊,請參閱AWS CLI 指令參考ListIpSets中的。

下列程式碼範例會示範如何使用list-logging-configurations

AWS CLI

擷取區域的所有記錄組態清單

下列項目list-logging-configurations會擷取範圍為區域中區域使用的 Web ACLs 的所有記錄設定。us-west-2

aws wafv2 list-logging-configurations \ --scope REGIONAL \ --region us-west-2

輸出:

{ "LoggingConfigurations":[ { "ResourceArn":"arn:aws:wafv2:us-west-2:123456789012:regional/webacl/test-2/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "RedactedFields":[ { "QueryString":{ } } ], "LogDestinationConfigs":[ "arn:aws:firehose:us-west-2:123456789012:deliverystream/aws-waf-logs-test" ] }, { "ResourceArn":"arn:aws:wafv2:us-west-2:123456789012:regional/webacl/test/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "RedactedFields":[ { "Method":{ } } ], "LogDestinationConfigs":[ "arn:aws:firehose:us-west-2:123456789012:deliverystream/aws-waf-logs-custom-transformation" ] } ] }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 牌進階開發人員指南》中的 < 記錄 Web ACL 流量資訊 >。AWS WAF

下列程式碼範例會示範如何使用list-regex-pattern-sets

AWS CLI

檢索正則表達式模式集列表

以下內容list-regex-pattern-sets會擷取區域中定義之帳戶的所有 regex 模式集us-west-2

aws wafv2 list-regex-pattern-sets \ --scope REGIONAL \ --region us-west-2

輸出:

{ "NextMarker":"regexPatterSet01", "RegexPatternSets":[ { "ARN":"arn:aws:wafv2:us-west-2:123456789012:regional/regexpatternset/regexPatterSet01/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Description":"Test web-acl", "Name":"regexPatterSet01", "LockToken":"f17743f7-0000-0000-0000-19a8b93bfb01", "Id":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ] }

如需詳細資訊,請參閱《 AWS Firewall Manager 員和 AWS Shield 進階開發人員指南》中的 IP 集和 Regex 病毒碼集。AWS WAF

下列程式碼範例會示範如何使用list-resources-for-web-acl

AWS CLI

若要擷取與 Web 相關聯的資源 ACL

以下ACL內容list-resources-for-web-acl會擷取目前與區域中指定 Web 相關聯的API閘道RESTAPI資源us-west-2

aws wafv2 list-resources-for-web-acl \ --web-acl-arn arn:aws:wafv2:us-west-2:123456789012:regional/webacl/TestWebAcl/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --resource-type API_GATEWAY \ --region us-west-2

輸出:

{ "ResourceArns": [ "arn:aws:apigateway:us-west-2::/restapis/EXAMPLE111/stages/testing" ] }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《防 AWS Shield 進階開發人員指南》中的AWS WAF網頁ACL與 AWS 資源關聯或取消關聯。

下列程式碼範例會示範如何使用list-rule-groups

AWS CLI

擷取自訂規則群組清單

以下內容list-rule-groups會擷取針對指定範圍和區域位置的帳戶定義的所有自訂規則群組。

aws wafv2 list-rule-groups \ --scope REGIONAL \ --region us-west-2

輸出:

{ "RuleGroups":[ { "ARN":"arn:aws:wafv2:us-west-2:123456789012:regional/rulegroup/TestRuleGroup/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Description":"", "Name":"TestRuleGroup", "LockToken":"1eb5ec48-0000-0000-0000-ee9b906c541e", "Id":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }, { "ARN":"arn:aws:wafv2:us-west-2:123456789012:regional/rulegroup/test/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Description":"", "Name":"test", "LockToken":"b0f4583e-998b-4880-9069-3fbe45738b43", "Id":"a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" } ], "NextMarker":"test" }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 牌進階開發人員指南》中的管理您自己的規則群組。AWS WAF

  • 如需詳API細資訊,請參閱AWS CLI 指令參考ListRuleGroups中的。

下列程式碼範例會示範如何使用list-tags-for-resource

AWS CLI

若要擷取 AWS WAF資源的所有標籤

以下內容list-tags-for-resource檢索指定 Web 的所有標籤鍵和值對的列表ACL。

aws wafv2 list-tags-for-resource \ --resource-arn arn:aws:wafv2:us-west-2:123456789012:regional/webacl/testwebacl2/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

輸出:

{ "NextMarker":"", "TagInfoForResource":{ "ResourceARN":"arn:aws:wafv2:us-west-2:123456789012:regional/webacl/testwebacl2/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "TagList":[ ] } }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《AWS WAF AWS Shield 牌進階開發人員指南》 AWS WAF中的入門。

下列程式碼範例會示範如何使用list-web-acls

AWS CLI

若要擷取範圍ACLs的 Web

下列項目list-web-acls會擷取針ACLs對指定範圍的帳戶定義的所有 Web。

aws wafv2 list-web-acls \ --scope REGIONAL

輸出:

{ "NextMarker":"Testt", "WebACLs":[ { "ARN":"arn:aws:wafv2:us-west-2:123456789012:regional/webacl/Testt/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Description":"sssss", "Name":"Testt", "LockToken":"7f36cb30-74ef-4cff-8cd4-a77e1aba1746", "Id":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ] }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 牌進階開發人員指南ACL》中AWS WAF的管理和使用 Web 存取控制清單 (Web)

  • 如需詳API細資訊,請參閱AWS CLI 指令參考ListWebAcls中的。

下列程式碼範例會示範如何使用put-logging-configuration

AWS CLI

若要將記錄設定新增至 Web ACL

以下內容put-logging-configuration將 Amazon Kinesis Data Firehose 記錄組態新增aws-waf-logs-custom-transformation到指定的網頁ACL,而不會從記錄中編輯任何欄位。

aws wafv2 put-logging-configuration \ --logging-configuration ResourceArn=arn:aws:wafv2:us-west-2:123456789012:regional/webacl/test-cli/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111,LogDestinationConfigs=arn:aws:firehose:us-west-2:123456789012:deliverystream/aws-waf-logs-custom-transformation \ --region us-west-2

輸出:

{ "LoggingConfiguration":{ "ResourceArn":"arn:aws:wafv2:us-west-2:123456789012:regional/webacl/test-cli/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "LogDestinationConfigs":[ "arn:aws:firehose:us-west-2:123456789012:deliverystream/aws-waf-logs-custom-transformation" ] } }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 牌進階開發人員指南》中的 < 記錄 Web ACL 流量資訊 >。AWS WAF

下列程式碼範例會示範如何使用tag-resource

AWS CLI

若要將標籤新增至 AWS WAF資源

下列tag-resource範例會新增一個標籤,其中的索引鍵Name和值設定AWSWAF為指定的 Web ACL。

aws wafv2 tag-resource \ --resource-arn arn:aws:wafv2:us-west-2:123456789012:regional/webacl/apiGatewayWebAcl/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --tags Key=Name,Value=AWSWAF

此命令不會產生輸出。

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《AWS WAF AWS Shield 牌進階開發人員指南》 AWS WAF中的入門。

  • 如需詳API細資訊,請參閱AWS CLI 指令參考TagResource中的。

下列程式碼範例會示範如何使用untag-resource

AWS CLI

若要從 AWS WAF資源中移除標籤

下列untag-resource範例會從指定的 Web 移KeyName除含索引鍵的標籤ACL。

aws wafv2 untag-resource \ --resource-arn arn:aws:wafv2:us-west-2:123456789012:regional/webacl/apiGatewayWebAcl/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --tag-keys "KeyName"

此命令不會產生輸出。

如需詳細資訊,請參閱 AWS Firewall Manager 員和 AWS Shield 進階開發人員指南 AWS WAF中的入門。AWS WAF

  • 如需詳API細資訊,請參閱AWS CLI 指令參考UntagResource中的。

下列程式碼範例會示範如何使用update-ip-set

AWS CLI

修改現有 IP 集的設定

以下update-ip-set更新指定 IP 集的設定。此呼叫需要一個 ID,您可以從呼叫中獲取list-ip-sets,以及您可以從呼叫list-ip-sets和獲取的鎖定令牌get-ip-set。此呼叫也會傳回可用於後續更新的鎖定權杖。

aws wafv2 update-ip-set \ --name testip \ --scope REGIONAL \ --id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --addresses 198.51.100.0/16 \ --lock-token 447e55ac-2396-4c6d-b9f9-86b67c17f8b5

輸出:

{ "NextLockToken": "0674c84b-0304-47fe-8728-c6bff46af8fc" }

如需詳細資訊,請參閱《 AWS Firewall Manager 員和 AWS Shield 進階開發人員指南》中的 IP 集和 Regex 病毒碼集。AWS WAF

  • 如需詳API細資訊,請參閱AWS CLI 指令參考UpdateIpSet中的。

下列程式碼範例會示範如何使用update-regex-pattern-set

AWS CLI

修改現有正則表達式模式集的設置

以下update-regex-pattern-set更新指定正則表達式模式集的設置。此呼叫需要一個 ID,您可以從呼叫中獲取list-regex-pattern-sets,以及您可以從呼叫list-regex-pattern-sets和獲取的鎖定令牌get-regex-pattern-set。此呼叫也會傳回可用於後續更新的鎖定權杖。

aws wafv2 update-regex-pattern-set \ --name ExampleRegex \ --scope REGIONAL \ --id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --regular-expression-list RegexString="^.+$" \ --lock-token ed207e9c-82e9-4a77-aadd-81e6173ab7eb

輸出:

{ "NextLockToken": "12ebc73e-fa68-417d-a9b8-2bdd761a4fa5" }

如需詳細資訊,請參閱《 AWS Firewall Manager 員和 AWS Shield 進階開發人員指南》中的 IP 集和 Regex 病毒碼集。AWS WAF

下列程式碼範例會示範如何使用update-rule-group

AWS CLI

更新自訂規則群組

以下內容會update-rule-group變更現有自訂規則群組的可見度組態。此呼叫需要一個 ID,您可以從呼叫中獲取list-rule-groups,以及您可以從呼叫list-rule-groups和獲取的鎖定令牌get-rule-group。此呼叫也會傳回可用於後續更新的鎖定權杖。

aws wafv2 update-rule-group \ --name TestRuleGroup \ --scope REGIONAL \ --id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --lock-token 7b3bcec2-0000-0000-0000-563bf47249f0 \ --visibility-config SampledRequestsEnabled=false,CloudWatchMetricsEnabled=false,MetricName=TestMetricsForRuleGroup \ --region us-west-2

輸出:

{ "NextLockToken": "1eb5ec48-0000-0000-0000-ee9b906c541e" }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 牌進階開發人員指南》中的管理您自己的規則群組。AWS WAF

  • 如需詳API細資訊,請參閱AWS CLI 指令參考UpdateRuleGroup中的。

下列程式碼範例會示範如何使用update-web-acl

AWS CLI

更新網頁 ACL

下列項目會update-web-acl變更現有網頁的設定ACL。此呼叫需要一個 ID,您可以從呼叫中獲取list-web-acls,以及鎖定令牌和其他設置,您可以從呼叫中獲得get-web-acl。此呼叫也會傳回可用於後續更新的鎖定權杖。

aws wafv2 update-web-acl \ --name TestWebAcl \ --scope REGIONAL \ --id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --lock-token 2294b3a1-0000-0000-0000-a3ae04329de9 \ --default-action Block={} \ --visibility-config SampledRequestsEnabled=false,CloudWatchMetricsEnabled=false,MetricName=NewMetricTestWebAcl \ --rules file://waf-rule.json \ --region us-west-2

輸出:

{ "NextLockToken": "714a0cfb-0000-0000-0000-2959c8b9a684" }

如需詳細資訊,請參閱《 AWS Firewall Manager 員》和《 AWS Shield 牌進階開發人員指南ACL》中AWS WAF的管理和使用 Web 存取控制清單 (Web)

  • 如需詳API細資訊,請參閱AWS CLI 指令參考UpdateWebAcl中的。