WAFV2 / Client / create_ip_set



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.

See also: AWS API Documentation

Request Syntax

response = client.create_ip_set(
            'Key': 'string',
            'Value': 'string'
  • Name (string) –


    The name of the IP set. You cannot change the name of an IPSet after you create it.

  • Scope (string) –


    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, an App Runner service, or an Amazon Web Services Verified Access instance.

    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.

  • Description (string) – A description of the IP set that helps with identification.

  • IPAddressVersion (string) –


    The version of the IP addresses, either IPV4 or IPV6.

  • Addresses (list) –


    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, specify

    • For requests that originated from IP addresses from to, specify

    • 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": [""]

    • Array with three addresses: "Addresses": ["", "", ""]

    • INVALID specification: "Addresses": [""] INVALID

    • (string) –

  • Tags (list) –

    An array of key:value pairs to associate with the resource.

    • (dict) –

      A tag associated with an Amazon Web Services resource. Tags are key:value pairs that you can use to categorize and manage your resources, for purposes like billing or other management. Typically, the tag key represents a category, such as “environment”, and the tag value represents a specific value within that category, such as “test,” “development,” or “production”. Or you might set the tag key to “customer” and the value to the customer name or ID. You can specify one or more tags to add to each Amazon Web Services resource, up to 50 tags for a resource.

      You can tag the Amazon Web Services resources that you manage through WAF: web ACLs, rule groups, IP sets, and regex pattern sets. You can’t manage or view tags through the WAF console.

      • Key (string) – [REQUIRED]

        Part of the key:value pair that defines a tag. You can use a tag key to describe a category of information, such as “customer.” Tag keys are case-sensitive.

      • Value (string) – [REQUIRED]

        Part of the key:value pair that defines a tag. You can use a tag value to describe a specific value within a category, such as “companyA” or “companyB.” Tag values are case-sensitive.

Return type:



Response Syntax

    'Summary': {
        'Name': 'string',
        'Id': 'string',
        'Description': 'string',
        'LockToken': 'string',
        'ARN': 'string'

Response Structure

  • (dict) –

    • Summary (dict) –

      High-level information about an IPSet, returned by operations like create and list. This provides information like the ID, that you can use to retrieve and manage an IPSet, and the ARN, that you provide to the IPSetReferenceStatement to use the address set in a Rule.

      • Name (string) –

        The name of the IP set. You cannot change the name of an IPSet after you create it.

      • Id (string) –

        A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

      • Description (string) –

        A description of the IP set that helps with identification.

      • LockToken (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.

      • ARN (string) –

        The Amazon Resource Name (ARN) of the entity.


  • WAFV2.Client.exceptions.WAFInternalErrorException

  • WAFV2.Client.exceptions.WAFInvalidParameterException

  • WAFV2.Client.exceptions.WAFDuplicateItemException

  • WAFV2.Client.exceptions.WAFOptimisticLockException

  • WAFV2.Client.exceptions.WAFLimitsExceededException

  • WAFV2.Client.exceptions.WAFTagOperationException

  • WAFV2.Client.exceptions.WAFTagOperationInternalErrorException

  • WAFV2.Client.exceptions.WAFInvalidOperationException