ip_sets
Creates, updates, deletes, gets or lists an ip_sets resource.
Overview
| Name | ip_sets |
| Type | Resource |
| Id | aws.wafv2.ip_sets |
Fields
The following fields are returned by SELECT queries:
- get_ip_set
- list_ip_sets
| Name | Datatype | Description |
|---|---|---|
ip_set | object | Contains zero or more IP addresses or blocks of IP addresses specified in Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6 CIDR ranges except for /0. For information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing. WAF assigns an ARN to each IPSet that you create. To use an IP set in a rule, you provide the ARN to the Rule statement IPSetReferenceStatement. |
lock_token | string | A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation. (pattern: <code>^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$</code>) |
| Name | Datatype | Description |
|---|---|---|
ip_sets | array | Array of IPSets. If you specified a Limit in your request, this might not be the full list. |
next_marker | string | When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request. (pattern: <code>.\S.</code>) |
Methods
The following methods are available for this resource:
| Name | Accessible by | Required Params | Optional Params | Description |
|---|---|---|---|---|
get_ip_set | select | region | Retrieves the specified IPSet. | |
list_ip_sets | select | region | Retrieves an array of IPSetSummary objects for the IP sets that you manage. | |
create_ip_set | insert | region, Name, Scope, IPAddressVersion, Addresses | Creates an IPSet, which you use to identify web requests that originate from specific IP addresses or ranges of IP addresses. For example, if you're receiving a lot of requests from a ranges of IP addresses, you can configure WAF to block them using an IPSet that lists those IP addresses. | |
update_ip_set | update | region, Name, Scope, Id, Addresses, LockToken | Updates the specified IPSet. This operation completely replaces the mutable specifications that you already have for the IP set with the ones that you provide to this call. To modify an IP set, do the following: Retrieve it by calling GetIPSet Update its settings as needed Provide the complete IP set specification to this call Temporary inconsistencies during updates When you create or change a web ACL or other WAF resources, the changes take a small amount of time to propagate to all areas where the resources are stored. The propagation time can be from a few seconds to a number of minutes. The following are examples of the temporary inconsistencies that you might notice during change propagation: After you create a web ACL, if you try to associate it with a resource, you might get an exception indicating that the web ACL is unavailable. After you add a rule group to a web ACL, the new rule group rules might be in effect in one area where the web ACL is used and not in another. After you change a rule action setting, you might see the old action in some places and the new action in others. After you add an IP address to an IP set that is in use in a blocking rule, the new address might be blocked in one area while still allowed in another. | |
delete_ip_set | delete | region | Deletes the specified IPSet. |
Parameters
Parameters can be passed in the WHERE clause of a query. Check the Methods section to see which parameters are required or optional for each operation.
| Name | Datatype | Description |
|---|---|---|
region | string | AWS region (default: us-east-1) |
SELECT examples
- get_ip_set
- list_ip_sets
Retrieves the specified IPSet.
SELECT
ip_set,
lock_token
FROM aws.wafv2.ip_sets
WHERE region = '{{ region }}' -- required
;
Retrieves an array of IPSetSummary objects for the IP sets that you manage.
SELECT
ip_sets,
next_marker
FROM aws.wafv2.ip_sets
WHERE region = '{{ region }}' -- required
;
INSERT examples
- create_ip_set
- Manifest
Creates an IPSet, which you use to identify web requests that originate from specific IP addresses or ranges of IP addresses. For example, if you're receiving a lot of requests from a ranges of IP addresses, you can configure WAF to block them using an IPSet that lists those IP addresses.
INSERT INTO aws.wafv2.ip_sets (
Name,
Scope,
Description,
IPAddressVersion,
Addresses,
Tags,
region
)
SELECT
'{{ Name }}' /* required */,
'{{ Scope }}' /* required */,
'{{ Description }}',
'{{ IPAddressVersion }}' /* required */,
'{{ Addresses }}' /* required */,
'{{ Tags }}',
'{{ region }}'
RETURNING
summary
;
# Description fields are for documentation purposes
- name: ip_sets
props:
- name: region
value: "{{ region }}"
description: Required parameter for the ip_sets resource.
- name: Name
value: "{{ Name }}"
description: |
The name of the IP set. You cannot change the name of an IPSet after you create it.
- name: Scope
value: "{{ Scope }}"
description: |
Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use CLOUDFRONT. To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows: CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1. API and SDKs - For all calls, use the Region endpoint us-east-1.
valid_values: ['CLOUDFRONT', 'REGIONAL']
- name: Description
value: "{{ Description }}"
description: |
A description of the IP set that helps with identification.
- name: IPAddressVersion
value: "{{ IPAddressVersion }}"
description: |
The version of the IP addresses, either IPV4 or IPV6.
valid_values: ['IPV4', 'IPV6']
- name: Addresses
value:
- "{{ Addresses }}"
description: |
Contains an array of strings that specifies zero or more IP addresses or blocks of IP addresses that you want WAF to inspect for in incoming requests. All addresses must be specified using Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6 CIDR ranges except for /0. Example address strings: For requests that originated from the IP address 192.0.2.44, specify 192.0.2.44/32. For requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24. For requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128. For requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64. For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing. Example JSON Addresses specifications: Empty array: "Addresses": [] Array with one address: "Addresses": ["192.0.2.44/32"] Array with three addresses: "Addresses": ["192.0.2.44/32", "192.0.2.0/24", "192.0.0.0/16"] INVALID specification: "Addresses": [""] INVALID
- name: Tags
description: |
An array of key:value pairs to associate with the resource.
value:
- Key: "{{ Key }}"
Value: "{{ Value }}"
UPDATE examples
- update_ip_set
Updates the specified IPSet. This operation completely replaces the mutable specifications that you already have for the IP set with the ones that you provide to this call. To modify an IP set, do the following: Retrieve it by calling GetIPSet Update its settings as needed Provide the complete IP set specification to this call Temporary inconsistencies during updates When you create or change a web ACL or other WAF resources, the changes take a small amount of time to propagate to all areas where the resources are stored. The propagation time can be from a few seconds to a number of minutes. The following are examples of the temporary inconsistencies that you might notice during change propagation: After you create a web ACL, if you try to associate it with a resource, you might get an exception indicating that the web ACL is unavailable. After you add a rule group to a web ACL, the new rule group rules might be in effect in one area where the web ACL is used and not in another. After you change a rule action setting, you might see the old action in some places and the new action in others. After you add an IP address to an IP set that is in use in a blocking rule, the new address might be blocked in one area while still allowed in another.
UPDATE aws.wafv2.ip_sets
SET
Name = '{{ Name }}',
Scope = '{{ Scope }}',
Id = '{{ Id }}',
Description = '{{ Description }}',
Addresses = '{{ Addresses }}',
LockToken = '{{ LockToken }}'
WHERE
region = '{{ region }}' --required
AND Name = '{{ Name }}' --required
AND Scope = '{{ Scope }}' --required
AND Id = '{{ Id }}' --required
AND Addresses = '{{ Addresses }}' --required
AND LockToken = '{{ LockToken }}' --required
RETURNING
next_lock_token;
DELETE examples
- delete_ip_set
Deletes the specified IPSet.
DELETE FROM aws.wafv2.ip_sets
WHERE region = '{{ region }}' --required
;