【问题标题】:How do i create make the allow/deny firewall rule conditional in terraform?如何在 terraform 中创建允许/拒绝防火墙规则条件?
【发布时间】:2021-12-19 00:25:25
【问题描述】:

我的 GCP 项目中有一个防火墙规则,并且在运行时从变量中读取值,它可以成功运行,但是我现在有一个用例,我想添加一个拒绝块而不是允许。您不能同时拥有两者,有没有办法根据条件将允许块替换为拒绝块。

也许如果变量名是 X,那么使用拒绝块,或者使用允许块。请参阅下面的示例代码。

resource "google_compute_firewall" "fw" {
 ....
  allow {
    protocol    = var.somevariable[element(keys(var.somevariable), count.index)]["protocol"]
    ports       = var.somevariable[element(keys(var.somevariable), count.index)]["ports"]
  }
  ...
}

【问题讨论】:

    标签: google-cloud-platform terraform terraform-provider-gcp terraform-template-file


    【解决方案1】:

    我认为这是他们所谓的dynamic blocks的工作

    简而言之:我认为它有 两个 动态块,一个用于允许,一个用于拒绝。他们每个人都会使用一些条件(可能是互斥的)。您的代码的存根可能是:

    resource "google_compute_firewall" "fw" {
      dynamic "allow" {
        for_each = var.allow_entries
        ...
      }
      dynamic "block" {
        for_each = var.block_entries
        ...
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-09-27
      • 2019-06-26
      • 1970-01-01
      • 1970-01-01
      • 2013-09-05
      • 1970-01-01
      • 2019-09-11
      • 2019-06-12
      • 2021-05-26
      相关资源
      最近更新 更多