WAF / Client / update_rate_based_rule
update_rate_based_rule#
- WAF.Client.update_rate_based_rule(**kwargs)#
- Note- This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the developer guide. - For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With the latest version, AWS WAF has a single set of endpoints for regional and global use. - Inserts or deletes Predicate objects in a rule and updates the - RateLimitin the rule.- Each - Predicateobject identifies a predicate, such as a ByteMatchSet or an IPSet, that specifies the web requests that you want to block or count. The- RateLimitspecifies the number of requests every five minutes that triggers the rule.- If you add more than one predicate to a - RateBasedRule, a request must match all the predicates and exceed the- RateLimitto be counted or blocked. For example, suppose you add the following to a- RateBasedRule:- An - IPSetthat matches the IP address- 192.0.2.44/32
- A - ByteMatchSetthat matches- BadBotin the- User-Agentheader
 - Further, you specify a - RateLimitof 1,000.- You then add the - RateBasedRuleto a- WebACLand specify that you want to block requests that satisfy the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the- User-Agentheader in the request must contain the value- BadBot. Further, requests that match these two conditions much be received at a rate of more than 1,000 every five minutes. If the rate drops below this limit, AWS WAF no longer blocks the requests.- As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a - RateBasedRule:- A - ByteMatchSetwith- FieldToMatchof- URI
- A - PositionalConstraintof- STARTS_WITH
- A - TargetStringof- login
 - Further, you specify a - RateLimitof 1,000.- By adding this - RateBasedRuleto a- WebACL, you could limit requests to your login page without affecting the rest of your site.- See also: AWS API Documentation - Request Syntax- response = client.update_rate_based_rule( RuleId='string', ChangeToken='string', Updates=[ { 'Action': 'INSERT'|'DELETE', 'Predicate': { 'Negated': True|False, 'Type': 'IPMatch'|'ByteMatch'|'SqlInjectionMatch'|'GeoMatch'|'SizeConstraint'|'XssMatch'|'RegexMatch', 'DataId': 'string' } }, ], RateLimit=123 ) - Parameters:
- RuleId (string) – - [REQUIRED] - The - RuleIdof the- RateBasedRulethat you want to update.- RuleIdis returned by- CreateRateBasedRuleand by ListRateBasedRules.
- ChangeToken (string) – - [REQUIRED] - The value returned by the most recent call to GetChangeToken. 
- Updates (list) – - [REQUIRED] - An array of - RuleUpdateobjects that you want to insert into or delete from a RateBasedRule.- (dict) – - Note- This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the developer guide. - For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With the latest version, AWS WAF has a single set of endpoints for regional and global use. - Specifies a - Predicate(such as an- IPSet) and indicates whether you want to add it to a- Ruleor delete it from a- Rule.- Action (string) – [REQUIRED] - Specify - INSERTto add a- Predicateto a- Rule. Use- DELETEto remove a- Predicatefrom a- Rule.
- Predicate (dict) – [REQUIRED] - The ID of the - Predicate(such as an- IPSet) that you want to add to a- Rule.- Negated (boolean) – [REQUIRED] - Set - Negatedto- Falseif you want AWS WAF to allow, block, or count requests based on the settings in the specified ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, or SizeConstraintSet. For example, if an- IPSetincludes the IP address- 192.0.2.44, AWS WAF will allow or block requests based on that IP address.- Set - Negatedto- Trueif you want AWS WAF to allow or block a request based on the negation of the settings in the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, or SizeConstraintSet. For example, if an- IPSetincludes the IP address- 192.0.2.44, AWS WAF will allow, block, or count requests based on all IP addresses except- 192.0.2.44.
- Type (string) – [REQUIRED] - The type of predicate in a - Rule, such as- ByteMatchor- IPSet.
- DataId (string) – [REQUIRED] - A unique identifier for a predicate in a - Rule, such as- ByteMatchSetIdor- IPSetId. The ID is returned by the corresponding- Createor- Listcommand.
 
 
 
- RateLimit (integer) – - [REQUIRED] - The maximum number of requests, which have an identical value in the field specified by the - RateKey, allowed in a five-minute period. If the number of requests exceeds the- RateLimitand the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.
 
- Return type:
- dict 
- Returns:
- Response Syntax- { 'ChangeToken': 'string' } - Response Structure- (dict) – - ChangeToken (string) – - The - ChangeTokenthat you used to submit the- UpdateRateBasedRulerequest. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.
 
 
 - Exceptions- WAF.Client.exceptions.WAFStaleDataException
- WAF.Client.exceptions.WAFInternalErrorException
- WAF.Client.exceptions.WAFInvalidAccountException
- WAF.Client.exceptions.WAFInvalidOperationException
- WAF.Client.exceptions.WAFInvalidParameterException
- WAF.Client.exceptions.WAFNonexistentContainerException
- WAF.Client.exceptions.WAFNonexistentItemException
- WAF.Client.exceptions.WAFReferencedItemException
- WAF.Client.exceptions.WAFLimitsExceededException