如何解决如何创建通配符以拒绝来自 AWS WAF 中所有 ip 的所有请求
我在 WAF 后面的 AWS 的 ECS 实例中获得了一个微服务,我想创建这些规则:
- 允许特定 IP(完成)
- 允许来自 VPN 内部的所有连接(完成)
- 拒绝所有其他请求。
前两个 IP 集已创建,但我无法使最后一个工作。我尝试使用 0.0.0.0/0
和其他组合创建 IP 集,但没有成功。
这是我的代码,我删除了 ipset 1 和 2(正在工作),这是 ipset 3:
resource "aws_wafv2_ip_set" "ipset" {
name = "${var.app_name}-${var.environment_name}-whitelist-ips"
scope = "REGIONAL"
ip_address_version = "IPV4"
addresses = ["0.0.0.0/0"]
}
module "alb_wafv2" {
source = "trussworks/wafv2/aws"
version = "~> 2.0"
name = "${var.app_name}-${var.environment_name}"
scope = "REGIONAL"
alb_arn = aws_lb.app_lb.arn
associate_alb = true
ip_sets_rule = [
{
name = "${var.app_name}-${var.environment_name}-ip-blacklist"
action = "deny"
priority = 1
ip_set_arn = aws_wafv2_ip_set.ipset.arn
}
]
}
{
RespMetadata: {
StatusCode: 400,RequestID: "c98b2d3a-ebd0-44e0-a80a-702bc698598b"
},Field: "IP_ADDRESS",Message_: "Error reason: The parameter contains formatting that is not valid.,field: IP_ADDRESS,parameter: 0.0.0.0/0",Parameter: "0.0.0.0/0",Reason: "The parameter contains formatting that is not valid."
}
尝试从 AWS 控制台创建 IP 集,但出现相同错误:
所以我有两个问题,首先,我该怎么做?第二个,这是最好的方法吗?
提前致谢
解决方法
您无法阻止所有地址 (CIDR /0)。 不支持。来自docs:
AWS WAF 支持所有 IPv4 和 IPv6 CIDR 范围除了 /0。
相反,您可以使用网络 ACL 拒绝所有流量或安全组。
,考虑使用这个技巧绕过 0.0.0.0/0 限制:
将 IPv4 地址空间分成两块:0.0.0.0/1 和 128.0.0.0/1
接受以下 terraform 片段,并且 ip 集由 TF 创建(Terraform 0.15.4 和 aws 提供程序版本 3.42.0):
resource "aws_wafv2_ip_set" "ipset" {
name = "all_internet_kludge"
scope = "REGIONAL"
ip_address_version = "IPV4"
addresses = ["0.0.0.0/1","128.0.0.0/1"]
}
,
您不需要阻止 0.0.0.0/0。创建两个 IP 规则后,在 WAF 控制台上查看“不匹配任何规则的请求的默认 Web ACL 操作”并将操作设置为阻止。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。