如何解决AWS WAF:如何使用Terraform阻止不包含特定标头的请求
我想阻止不包含授权标头的请求。我提出了以下规则,但我发现不包含此标头的请求也被允许。指定此条件的正确方法是什么?
rule {
name = "restrict-requests-without-authorization-header"
priority = 2
action {
block {}
}
statement {
size_constraint_statement {
field_to_match {
single_header {
name = "authorization"
}
}
comparison_operator = "LE"
size = 0
text_transformation {
priority = 0
type = "NONE"
}
}
}
visibility_config {
cloudwatch_metrics_enabled = true
metric_name = "restrict-requests-without-authorization-header-metrics"
sampled_requests_enabled = true
}
}
解决方法
您需要创建一个规则和正则表达式模式(可以是通配符),如下所示:
规则:
rule {
name = "AuthorizationHeaderRule"
priority = 1
action {
allow {}
}
statement {
regex_pattern_set_reference_statement {
arn = aws_wafv2_regex_pattern_set.your_regex_pattern.arn
field_to_match {
single_header {
name = "authorization"
}
}
text_transformation {
priority = 2
type = "NONE"
}
}
}
这可能是正则表达式的模式:
resource "aws_wafv2_regex_pattern_set" "your_regex_pattern" {
name = "your-regex-pattern"
scope = "REGIONAL"
regular_expression {
regex_string = "prefix-.*"
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。