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

本文件 AWS CLI 僅適用於 的第 1 版。如需與 第 2 版相關的文件 AWS CLI,請參閱 第 2 版使用者指南

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

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

此命令不會產生輸出。

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

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

下列程式碼範例示範如何使用 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 WAF Web ACL容量單位 (WCU)AWS WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南

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

下列程式碼範例示範如何使用 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" } }

如需詳細資訊,請參閱 中的 IP 集和 Regex 模式集AWS WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南

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

下列程式碼範例示範如何使用 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" } }

如需詳細資訊,請參閱 中的 IP 集和 Regex 模式集AWS WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南

下列程式碼範例示範如何使用 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詳細資訊,請參閱 命令參考 CreateRuleGroup中的 。 AWS CLI

下列程式碼範例示範如何使用 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" } }

如需詳細資訊,請參閱 中的管理和使用 Web 存取控制清單 (WebACL)AWS WAF、 AWS Firewall Manager 和 AWS Shield Advanced Developer Guide 中的 。

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

下列程式碼範例示範如何使用 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

此命令不會產生輸出。

如需詳細資訊,請參閱 中的 IP 集和 Regex 模式集AWS WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南

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

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

AWS CLI

停用 Web 的記錄 ACL

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

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

此命令不會產生輸出。

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

下列程式碼範例示範如何使用 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

此命令不會產生輸出。

如需詳細資訊,請參閱 中的 IP 集和 Regex 模式集AWS WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南

下列程式碼範例示範如何使用 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詳細資訊,請參閱 命令參考 DeleteRuleGroup中的 。 AWS CLI

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

AWS CLI

刪除 Web ACL

以下內容會從ACL您的帳戶delete-web-acl刪除指定的 Web。ACL 只有當 Web 與任何資源沒有關聯時,才能將其刪除。此呼叫需要一個 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

此命令不會產生輸出。

如需詳細資訊,請參閱 中的管理和使用 Web 存取控制清單 (WebACL)AWS WAF、 AWS Firewall Manager 和 AWS Shield Advanced Developer Guide

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

下列程式碼範例示範如何使用 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": {} } } ] }

如需詳細資訊,請參閱 中的 Managed Rule GroupsAWS WAF、 AWS Firewall Manager 和 AWS Shield Advanced Developer Guide

下列程式碼範例示範如何使用 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

此命令不會產生輸出。

如需詳細資訊,請參閱 中的將 Web ACL與 AWS 資源建立關聯或取消關聯AWS WAF,、 AWS Firewall Manager 和 AWS Shield Advanced Developer Guide

下列程式碼範例示範如何使用 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" }

如需詳細資訊,請參閱 中的 IP 集和 Regex 模式集AWS WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南

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

下列程式碼範例示範如何使用 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" ] } }

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

下列程式碼範例示範如何使用 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" }

如需詳細資訊,請參閱 中的 IP 集和 Regex 模式集AWS WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南

下列程式碼範例示範如何使用 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詳細資訊,請參閱 命令參考 GetRuleGroup中的 。 AWS CLI

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

AWS CLI

擷取 Web 的 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 }

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

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

AWS CLI

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

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

如需詳細資訊,請參閱 中的將 Web ACL與 AWS 資源建立關聯或取消關聯AWS WAF, AWS Firewall Manager 和 AWS Shield Advanced Developer Guide

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

AWS CLI

擷取 Web ACL

以下內容會get-web-acl擷取ACL具有指定名稱、範圍和 ID 的 Web。您可以從ACL命令 create-web-acl和 取得 Web 的 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" }

如需詳細資訊,請參閱 中的管理和使用 Web 存取控制清單 (WebACL)AWS WAF、 AWS Firewall Manager 和 AWS Shield Advanced Developer Guide

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

下列程式碼範例示範如何使用 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." } ] }

如需詳細資訊,請參閱 中的 Managed Rule GroupsAWS WAF、 AWS Firewall Manager 和 AWS Shield Advanced Developer Guide

下列程式碼範例示範如何使用 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" }

如需詳細資訊,請參閱 中的 IP 集和 Regex 模式集AWS WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南

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

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

AWS CLI

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

下列內容會list-logging-configurations擷取 us-west-2區域使用ACLs範圍的所有 Web 記錄組態。

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" ] } ] }

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

下列程式碼範例示範如何使用 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" } ] }

如需詳細資訊,請參閱 中的 IP 集和 Regex 模式集AWS WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南

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

AWS CLI

擷取與 Web 相關聯的資源 ACL

下列 會list-resources-for-web-acl擷取目前與區域 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" ] }

如需詳細資訊,請參閱 中的將 Web ACL與 AWS 資源建立關聯或取消關聯AWS WAF,、 AWS Firewall Manager 和 AWS Shield Advanced Developer Guide

下列程式碼範例示範如何使用 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 Advanced Developer Guide

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

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

下列程式碼範例示範如何使用 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" } ] }

如需詳細資訊,請參閱 中的管理和使用 Web 存取控制清單 (WebACL)AWS WAF、 AWS Firewall Manager 和 AWS Shield Advanced Developer Guide 中的 。

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

下列程式碼範例示範如何使用 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" ] } }

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

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

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

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

AWS CLI

從資源中移除標籤 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 WAFAWS WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南

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

下列程式碼範例示範如何使用 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" }

如需詳細資訊,請參閱 中的 IP 集和 Regex 模式集AWS WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南

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

下列程式碼範例示範如何使用 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" }

如需詳細資訊,請參閱 中的 IP 集和 Regex 模式集AWS WAF、 AWS Firewall Manager 和 AWS Shield 進階開發人員指南

下列程式碼範例示範如何使用 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 Advanced Developer Guide

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

下列程式碼範例示範如何使用 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" }

如需詳細資訊,請參閱 中的管理和使用 Web 存取控制清單 (WebACL)AWS WAF、 AWS Firewall Manager 和 AWS Shield Advanced Developer Guide

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