如何使用 AWS CLI 创建、列出、获取或更新 AWS WAFV2 IPSet?
如何使用 AWS 命令行界面(AWS CLI) 在 AWS WAFV2 中创建、列出、获取或更新 IPSet?
简短描述
IPSet 根据请求源自的 IP 地址指定允许或阻止的 Web 请求。通过 AWS CLI,您可以使用 IPSet 来定义 web 访问控制列表(ACL)的 IP 地址集。
解决方法
**注意:**如果您在运行 AWS 命令行界面(AWS CLI)命令时遇到错误,请确保您使用的是最新版本的 AWS CLI。
此解决方案使用 wafv2 CLI 在特定的 AWS 区域创建一个 IPSet 或一个全球 IPSet,用于 Amazon CloudFront。
**重要:**在继续操作之前,您必须检查 AWS CLI 的默认 AWS 区域,以验证这是您要创建 IPSet 的区域。否则,您必须在命令中为 IPSet 指定正确的 区域(使用 --region 选项)。使用 Amazon CloudFront 时,您必须在美国东部(弗吉尼亚州北部)us-east-1 Region创建 IPSet。
创建 IPSet
1. 登录到 AWS CLI。
2. 使用 create-ip-set 命令创建一个 IPSet。
注意:****—scope 选项指定此 IPSet 是用于 Amazon CloudFront 发行版还是用于区域应用程序。区域应用程序包括:应用程序负载均衡器 (ALB)、Amazon API Gateway、REST API、AWS AppSync、GraphQL API 或 Amazon Cognito 用户群体。
区域 IPSet 示例:
$ aws wafv2 create-ip-set --name ipv4-block --scope REGIONAL --ip-address-version IPV4 --addresses 10.1.1.1/32 --region us-west-1 { "Summary": { "Name": "ipv4-block", "Id": "952c5e24-2352-4a1e-a90b-01499086be1b", "Description": "", "LockToken": "c54cc0d5-42dc-4b4b-9335-a86c7ad784a6", "ARN": "arn:aws:wafv2:us-west-1:1111222233334444:regional/ipset/ipv4-block/952c5e24-2352-4a1e-a90b-01499086be1b" } }
CloudFront IPSet 示例:
$ aws wafv2 create-ip-set --name ipv4-block-cf --scope CLOUDFRONT --ip-address-version IPV4 --addresses 10.1.1.1/32 --region us-east-1 { "Summary": { "Name": "ipv4-block-cf", "Id": "1fef3860-8b6e-4201-8a56-6d8d49e93057", "Description": "", "LockToken": "9e9bc59e-678e-4b83-98d8-5a4c119b0123", "ARN": "arn:aws:wafv2:us-east-1:1111222233334444:global/ipset/ipv4-block-cf/1fef3860-8b6e-4201-8a56-6d8d49e93057" } }
列出 IPSet
要列出 IPSet,请使用 list-ip-sets 命令。此命令的响应将会返回一组 IPSetSummary 对象。
区域 IPSet 示例输出:
$ aws wafv2 list-ip-sets --scope REGIONAL --region us-west-1 { "NextMarker": "ipv4-block", "IPSets": [ { "Name": "ipv4-block", "Id": "952c5e24-2352-4a1e-a90b-01499086be1b", "Description": "", "LockToken": "c54cc0d5-42dc-4b4b-9335-a86c7ad784a6", "ARN": "arn:aws:wafv2:us-west-1:1111222233334444:regional/ipset/ipv4-block/952c5e24-2352-4a1e-a90b-01499086be1b" } ] }
CloudFront IPset 示例输出:
$ aws wafv2 list-ip-sets --scope CLOUDFRONT --region us-east-1 { "NextMarker": "ipv4-block-cf", "IPSets": [ { "Name": "ipv4-block-cf", "Id": "1fef3860-8b6e-4201-8a56-6d8d49e93057", "Description": "", "LockToken": "9e9bc59e-678e-4b83-98d8-5a4c119b0123", "ARN": "arn:aws:wafv2:us-east-1:1111222233334444:global/ipset/ipv4-block-cf/1fef3860-8b6e-4201-8a56-6d8d49e93057" } ] }
**注意:**如果您为 Limit 指定一个值并且拥有比该值更多的 IPSet,则 AWS WAFV2 会返回一个 NextMarker 值。请参阅请求参数。
更新 IPSet
要更新 IPSet,请通过速记语法或 JSON 文件使用 update-ip-set 命令。
速记语法方法
1. 使用 list-ip-sets 命令检索要更新的 IPSet 的 IPSet Id 和 LockToken。
注意:AWS WAFV2 使用令牌进行乐观锁定。要更改与令牌关联的实体,请将令牌提供给更新和删除等操作。WAFV2 使用该令牌来确认自您上次检索实体以来未对其进行任何更改。如果进行了更改,则更新失败并出现 WAFOptimisticLockException。如果发生这种情况,请执行另一个list 或 get,然后使用该操作返回的新令牌。
速记语法示例:
$ aws wafv2 list-ip-sets --scope REGIONAL --region us-west-1 { "NextMarker": "ipv4-block", "IPSets": [ { "Name": "ipv4-block", "Id": "952c5e24-2352-4a1e-a90b-01499086be1b", "Description": "", "LockToken": "c54cc0d5-42dc-4b4b-9335-a86c7ad784a6", "ARN": "arn:aws:wafv2:us-west-1:1111222233334444:regional/ipset/ipv4-block/952c5e24-2352-4a1e-a90b-01499086be1b" } ] }
2. 使用 update-ip-set 命令以新的所需配置覆盖当前的 IPSet 配置。您必须包含在上述步骤 1 中检索到的 IPSet Id 和 LockToken。
示例:
$ aws wafv2 update-ip-set --name ipv4-block --scope REGIONAL --id 952c5e24-2352-4a1e-a90b-01499086be1b --addresses "10.1.1.1/32" "10.1.1.2/32" --lock-token c54cc0d5-42dc-4b4b-9335-a86c7ad784a6 --region us-west-1 { "NextLockToken": "a459c121-f160-4475-9352-fa602ff33df7" }
3. 使用 get-ip-set 命令查看对 IPSet 的更改。你您必须包含步骤 1 中的 IPSet Id 和步骤 2 中的 NextLockToken。
示例:
$ aws wafv2 get-ip-set --scope REGIONAL --name ipv4-block --id 952c5e24-2352-4a1e-a90b-01499086be1b --region us-west-1 { "IPSet": { "Name": "ipv4-block", "Id": "952c5e24-2352-4a1e-a90b-01499086be1b", "ARN": "arn:aws:wafv2:us-west-1:1111222233334444:regional/ipset/ipv4-block/952c5e24-2352-4a1e-a90b-01499086be1b", "Description": "", "IPAddressVersion": "IPV4", "Addresses": [ "10.1.1.2/32", "10.1.1.1/32" ] }, "LockToken": "a459c121-f160-4475-9352-fa602ff33df7" }
JSON 文件方法
1. 使用您的更新请求语法创建 JSON 文件(例如 ip.json)。使用您的首选编辑器执行此操作。
示例:
$ nano ip.json { "Addresses": ["10.1.1.0/24", "10.1.2.0/24", "10.1.3.0/24"] }
2. 使用 list-ip-sets 或 get-ip-set 命令检索要更新的 IPSet 的 IPSet Id 和 LockToken。
示例:
$ aws wafv2 list-ip-sets --scope REGIONAL --region us-west-1 { "NextMarker": "ipv4-block", "IPSets": [ { "Name": "ipv4-block", "Id": "952c5e24-2352-4a1e-a90b-01499086be1b", "Description": "", "LockToken": "238872dc-fcfb-4a45-93fd-115cfcc94480", "ARN": "arn:aws:wafv2:us-west-1:1111222233334444:regional/ipset/ipv4-block/952c5e24-2352-4a1e-a90b-01499086be1b" } ] }
3. 使用 update-ip-set 命令以新的所需配置覆盖当前的 IPSet 配置。您将引用在步骤 2 中创建的“ip.json”文件,而不是内联地址。您必须包含在上述步骤 2 中检索到的 IPSet Id 和 LockToken。
示例:
$ aws wafv2 update-ip-set --scope REGIONAL --name ipv4-block --id 952c5e24-2352-4a1e-a90b-01499086be1b --lock-token a459c121-f160-4475-9352-fa602ff33df7 --region us-west-1 --cli-input-json file://ip.json { "NextLockToken": "238872dc-fcfb-4a45-93fd-115cfcc94480" }
4. 使用 get-ip-set 命令查看对 IPSet 的更改。你必须包含步骤 2 中的 IPSet Id 和步骤 3 中的 NextLockToken。
示例:
$ aws wafv2 get-ip-set --scope REGIONAL --name ipv4-block --id 952c5e24-2352-4a1e-a90b-01499086be1b --region us-west-1 { "IPSet": { "Name": "ipv4-block", "Id": "952c5e24-2352-4a1e-a90b-01499086be1b", "ARN": "arn:aws:wafv2:us-west-1:1111222233334444:regional/ipset/ipv4-block/952c5e24-2352-4a1e-a90b-01499086be1b", "Description": "", "IPAddressVersion": "IPV4", "Addresses": [ "10.1.1.0/24", "10.1.2.0/24", "10.1.3.0/24" ] }, "LockToken": "238872dc-fcfb-4a45-93fd-115cfcc94480" }
相关信息
相关内容
- 已提问 1 个月前lg...
- 已提问 4 个月前lg...
- 已提问 2 个月前lg...
- 已提问 4 个月前lg...
- 已提问 4 个月前lg...
- AWS 官方已更新 8 个月前
- AWS 官方已更新 6 个月前
- AWS 官方已更新 8 个月前
- AWS 官方已更新 9 个月前