使用 terraform 对 Azure 上的应用服务进行动态 IP 限制
Dynamic IP Restriction for App Services on Azure using terraform
我正在寻找在应用服务上添加多个 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 时,我收到以下错误:
on main.tf line 208, in resource "azurerm_app_service" "hook-service":
208: ip_address = cidrhost(ip_restriction.value, 0)
ip_restriction.value is "20.20.20.3"
Call to function "cidrhost" failed: invalid CIDR expression: invalid CIDR address: 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")
cidrhost
要求前缀采用 CIDR 表示法,例如
"20.20.20.3/32"
https://www.terraform.io/docs/language/functions/cidrhost.html
我正在寻找在应用服务上添加多个 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 时,我收到以下错误:
on main.tf line 208, in resource "azurerm_app_service" "hook-service":
208: ip_address = cidrhost(ip_restriction.value, 0) ip_restriction.value is "20.20.20.3"
Call to function "cidrhost" failed: invalid CIDR expression: invalid CIDR address: 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")
cidrhost
要求前缀采用 CIDR 表示法,例如
"20.20.20.3/32"
https://www.terraform.io/docs/language/functions/cidrhost.html