AWS WAFV2 使用 的範例 AWS CLI - AWS SDK 程式碼範例

文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的 GitHub 範例。

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

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

此命令不會產生輸出。

如需詳細資訊,請參閱 ACL、Firewall Manager 和 Shield 進階開發人員指南中的將 Web Word 與 AWS 資源建立關聯或取消關聯AWS WAF AWS 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

file://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 WAF、Firewall Manager 和 Shield 進階開發人員指南中的 Word Web ACL 容量單位 (WordWCU)AWS WAF AWS AWS

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

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

AWS CLI

若要建立 IP 集,以便在 Web ACLs 和規則群組中使用

下列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 WAF、 AWS Firewall Manager AWS 和 Shield 進階開發人員指南中的 IP 集和 Regex 模式集

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

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

AWS CLI

若要建立 regex 模式集,以供 Web ACLs 和規則群組使用

下列create-regex-pattern-set命令會建立具有兩個指定 regex 模式的 regex 模式集。

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 WAF、 AWS Firewall Manager AWS 和 Shield 進階開發人員指南中的 IP 集和 Regex 模式集

下列程式碼範例示範如何使用 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-rule.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 WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南中的管理您自己的規則群組

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

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

AWS CLI

建立 Web ACL

下列create-web-acl命令會建立 Web ACL 以供區域使用。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-rule.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 WAF、 AWS Firewall Manager AWS 和 Shield 進階開發人員指南中的管理和使用 Web 存取控制清單 (Web ACL)

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

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

AWS CLI

若要刪除 IP 集

下列 會delete-ip-set刪除指定的 IP 集。此呼叫需要一個 ID,您可以從呼叫取得,list-ip-sets以及一個鎖定字符,您可以從呼叫取得,list-ip-sets以及 get-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 WAF、 AWS Firewall Manager AWS 和 Shield 進階開發人員指南中的 IP 集和 Regex 模式集

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

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

AWS CLI

停用 Web ACL 的記錄

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

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

此命令不會產生輸出。

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

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

AWS CLI

若要刪除 regex 模式集

下列會delete-regex-pattern-set更新指定 regex 模式集的設定。此呼叫需要一個 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 WAF、 AWS Firewall Manager AWS 和 Shield 進階開發人員指南中的 IP 集和 Regex 模式集

下列程式碼範例示範如何使用 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 WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南中的管理您自己的規則群組

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

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

AWS CLI

刪除 Web ACL

以下內容會從您的帳戶delete-web-acl刪除指定的 Web ACL。Web 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 WAF、 AWS Firewall Manager AWS 和 Shield 進階開發人員指南中的管理和使用 Web 存取控制清單 (Web ACL)

  • 如需 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 WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南中的受管規則群組

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

AWS CLI

取消 Web ACL 與區域 AWS 資源的關聯

下列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

此命令不會產生輸出。

如需詳細資訊,請參閱 ACL、Firewall Manager 和 Shield 進階開發人員指南中的將 Web Word 與 AWS 資源建立關聯或取消關聯AWS WAF AWS AWS

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

AWS CLI

擷取特定 IP 集

以下內容會get-ip-set擷取具有指定名稱、範圍和 ID 的 IP 集。您可以從命令 create-ip-set和 取得 IP 集的 IDlist-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 WAF、 AWS Firewall Manager AWS 和 Shield 進階開發人員指南中的 IP 集和 Regex 模式集

  • 如需 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" ] } }

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

下列程式碼範例示範如何使用 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 WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南中的以速率為基礎的規則陳述式。

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

AWS CLI

擷取特定 regex 模式集

以下內容會get-regex-pattern-set擷取具有指定名稱、範圍、區域和 ID 的 regex 模式集。您可以從命令 create-regex-pattern-set和 取得 regex 模式集的 IDlist-regex-pattern-sets

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 WAF、 AWS Firewall Manager AWS 和 Shield 進階開發人員指南中的 IP 集和 Regex 模式集

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

AWS CLI

擷取特定自訂規則群組

以下內容會get-rule-group擷取具有指定名稱、範圍和 ID 的自訂規則群組。您可以從命令 create-rule-group和 取得規則群組的 IDlist-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 WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南中的管理您自己的規則群組

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

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

AWS CLI

擷取 Web ACL 的 Web 請求範例

以下內容會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 WAF、 AWS Firewall Manager 和 Shield 進階開發人員指南 AWS 中的檢視 Web 請求範例

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

AWS CLI

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

以下內容會get-web-acl-for-resource擷取與指定資源相關聯的 Web JSON 的 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" } }

如需詳細資訊,請參閱 ACL、Firewall Manager 和 Shield 進階開發人員指南中的將 Web Word 與 AWS 資源建立關聯或取消關聯AWS WAF AWS AWS

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

AWS CLI

擷取 Web ACL

以下內容會get-web-acl擷取具有指定名稱、範圍和 ID 的 Web ACL。您可以從命令 create-web-acl和 取得 Web ACL 的 IDlist-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 WAF、 AWS Firewall Manager AWS 和 Shield 進階開發人員指南中的管理和使用 Web 存取控制清單 (Web ACL)

  • 如需 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 WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南中的受管規則群組

下列程式碼範例示範如何使用 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 WAF、 AWS Firewall Manager AWS 和 Shield 進階開發人員指南中的 IP 集和 Regex 模式集

  • 如需 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" ] } ] }

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

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

AWS CLI

擷取 regex 模式集清單

以下內容會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 WAF、 AWS Firewall Manager AWS 和 Shield 進階開發人員指南中的 IP 集和 Regex 模式集

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

AWS CLI

擷取與 Web ACL 相關聯的資源

以下內容會list-resources-for-web-acl擷取目前與區域 中指定的 Web API 相關聯的 ACL API Gateway REST 資源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" ] }

如需詳細資訊,請參閱 ACL、Firewall Manager 和 Shield 進階開發人員指南中的將 Web Word 與 AWS 資源建立關聯或取消關聯AWS WAF AWS 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 WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南中的管理您自己的規則群組

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

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

AWS CLI

擷取 an 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 WAF、Firewall Manager 和 Shield 進階開發人員指南中的 Word 入門AWS WAF AWS AWS

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

AWS CLI

擷取範圍的 Web ACLs

以下內容會list-web-acls擷取為指定範圍的帳戶定義的所有 Web ACLs。

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 WAF、 AWS Firewall Manager AWS 和 Shield 進階開發人員指南中的管理和使用 Web 存取控制清單 (Web ACL)

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

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

AWS CLI

將記錄組態新增至 Web ACL

以下內容會將 Amazon Kinesis Data Firehose 記錄組態put-logging-configuration新增至aws-waf-logs-custom-transformation指定的 Web 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" ] } }

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

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

AWS CLI

將標籤新增至 a 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 WAF、Firewall Manager 和 Shield 進階開發人員指南AWS 中的 WAF AWS AWS 入門。

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

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

AWS CLI

從 a AWS WAF 資源中移除標籤

下列untag-resource範例KeyName會從指定的 Web 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 WAF、Firewall Manager 和 Shield 進階開發人員指南中的 Word 入門AWS WAF AWS AWS

  • 如需 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 WAF、 AWS Firewall Manager AWS 和 Shield 進階開發人員指南中的 IP 集和 Regex 模式集

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

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

AWS CLI

修改現有 regex 模式集的設定

下列會update-regex-pattern-set更新指定 regex 模式集的設定。此呼叫需要一個 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 WAF、 AWS Firewall Manager AWS 和 Shield 進階開發人員指南中的 IP 集和 Regex 模式集

下列程式碼範例示範如何使用 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 WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南中的管理您自己的規則群組

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

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

AWS CLI

更新 Web ACL

下列update-web-acl變更現有 Web 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 WAF、 AWS Firewall Manager AWS 和 Shield 進階開發人員指南中的管理和使用 Web 存取控制清單 (Web ACL)

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