首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以使用terraform将aws ELB/ALB与WAF ACL关联?

是否可以使用terraform将aws ELB/ALB与WAF ACL关联?
EN

Stack Overflow用户
提问于 2017-03-26 02:57:31
回答 3查看 4.4K关注 0票数 6

我创建了以下AWS WAF ACL,并希望使用terraform将其与我的ALB相关联。有没有什么办法可以用terraform来做呢?我想阻止所有的请求,除了那些使用亚马逊web服务web应用程序防火墙的密钥的请求,aws waf。为此,我创建了byte_set、aws规则和访问控制列表

代码语言:javascript
运行
复制
    resource "aws_alb" "app" {
    ............
  }


#waf
resource "aws_waf_byte_match_set" "byte_set" {
  name = "tf_waf_byte_match_set"

  byte_match_tuples {
    text_transformation   = "NONE"
    target_string         = "${var.secret_key}"
    positional_constraint = "EXACTLY"

    field_to_match {
      type = "HEADER"
      data = "referer"
    }
  }
}

resource "aws_waf_rule" "wafrule" {
  depends_on  = ["aws_waf_byte_match_set.byte_set"]
  name        = "tfWAFRule"
  metric_name = "tfWAFRule"

  predicates {
    data_id = "${aws_waf_byte_match_set.byte_set.id}"
    negated = false
    type    = "ByteMatch"
  }
}

resource "aws_waf_web_acl" "waf_acl" {
  depends_on  = ["aws_waf_byte_match_set.byte_set", "aws_waf_rule.wafrule"]
  name        = "tfWebACL"
  metric_name = "tfWebACL"

  default_action {
    type = "BLOCK"
  }

  rules {
    action {
      type = "ALLOW"
    }

    priority = 1
    rule_id  = "${aws_waf_rule.wafrule.id}"
  }
}
EN

回答 3

Stack Overflow用户

发布于 2018-08-02 16:00:11

网站管家可以关联应用负载均衡,CloudFront不能关联传统弹性负载均衡。

要与ALB关联,这是一段代码

代码语言:javascript
运行
复制
resource "aws_wafregional_web_acl_association" "foo" {
  resource_arn = "${aws_alb.foo.arn}"
  web_acl_id = "${aws_wafregional_web_acl.foo.id}"
}

摘自official documentation

票数 4
EN

Stack Overflow用户

发布于 2020-10-01 15:56:31

当然,这里有一个WAFv2资源的示例(我建议使用这个),其中包含速率限制示例规则和与ALB的关联:

代码语言:javascript
运行
复制
########### This is the creation of an WAFv2 (Web ACL) and a example rate limit rule

resource "aws_wafv2_web_acl" "my_web_acl" {
  name  = "my-web-acl"
  scope = "REGIONAL"

  default_action {
    allow {}
  }

  rule {
    name     = "RateLimit"
    priority = 1

    action {
      block {}
    }

    statement {

      rate_based_statement {
        aggregate_key_type = "IP"
        limit              = 500
      }
    }

    visibility_config {
      cloudwatch_metrics_enabled = true
      metric_name                = "RateLimit"
      sampled_requests_enabled   = true
    }
  }

  visibility_config {
    cloudwatch_metrics_enabled = false
    metric_name                = "my-web-acl"
    sampled_requests_enabled   = false
  }
}

########### This is the association code

resource "aws_wafv2_web_acl_association" "web_acl_association_my_lb" {
  resource_arn = aws_lb.my_lb.arn
  web_acl_arn  = aws_wafv2_web_acl.my_web_acl.arn
}
票数 3
EN

Stack Overflow用户

发布于 2017-03-26 17:52:13

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43020603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档