【问题标题】:Dynamic IP Restriction for App Services on Azure using terraform使用 terraform 对 Azure 上的应用服务进行动态 IP 限制
【发布时间】:2021-09-21 17:15:10
【问题描述】:

我正在寻找在应用服务上添加多个 IP 地址限制的解决方案: 下面是我正在尝试修复的代码,但我很难做到这一点:

    variable "ip_address_list" {
  type = list
  default = ["20.20.20.3" , "10.10.10.2"]}

这只是我想要实现的变量的一个示例,site_config 的一部分如下:

site_config {
  dynamic "ip_restriction" {
for_each = var.ip_address_list
  content {
    ip_address  = cidrhost(ip_restriction.value, 0)
    action                    = "Allow"
  }
}

当我运行 terraform plan 时,我收到以下错误:

在 main.tf 第 208 行,资源“azurerm_app_service”“hook-service”中:

208: ip_address = cidrhost(ip_restriction.value, 0) ip_restriction.value 为“20.20.20.3”

调用函数“cidrhost”失败:无效的 CIDR 表达式:无效的 CIDR 地址:20.20.20.3。

我收到这两个 IP 地址的错误。此外,如果有办法实现此解决方案,我需要基于虚拟子网进行另一个限制,它必须与模块中创建的其他服务器进行通信

{
      ip_address                = null
      name                      = "Subnet"
      action                    = "Allow"
      virtual_network_subnet_id = azurerm_subnet.subnet.id
      action                    = "Allow"
      priority                  = 200
      service_tag               = null
    }

子网将服务端点创建为(“Microsoft.Web”)

【问题讨论】:

    标签: terraform terraform-provider-azure azurerm-app-service


    【解决方案1】:

    cidrhost 要求前缀采用 CIDR 表示法,例如

    "20.20.20.3/32"
    

    https://www.terraform.io/docs/language/functions/cidrhost.html

    【讨论】:

    • 哦该死我怎么会错过这个我知道我用 /32 测试了一些东西但它给了我错误。+ ip_restriction= [ + { + action= "Allow" + headers= (在应用后知道) + ip_address= "20.20.20.3" + name= (申请后知道) + priority= 65000 + service_tag= null + virtual_network_subnet_id = null },
    猜你喜欢
    • 2021-11-16
    • 1970-01-01
    • 2022-01-25
    • 2021-10-05
    • 2018-02-09
    • 2021-10-30
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多