具有多个订阅的 Azure Terraform Hub 和 Spoke



我想在多个订阅中使用 terraform 部署 Azure 登陆区,中心网络应该在订阅 1 中具有 Azure 防火墙,并且每个分支都有不同的订阅,我需要 4 个分支,这些分支将部署在 4 个单独的订阅中。

有人可以帮我逻辑,如何写地形。

根据您的要求,您可以遵循以下体系结构。中心和分支通过 VNet 对等互连进行连接。根据描述:

虚拟网络可以位于相同或不同的订阅中。 将不同订阅中的虚拟网络对等互连时,两者 订阅可以关联到相同或不同的 Azure 活动 目录租户。

因此,可以在两个不同的订阅中对等互连 VNet。我假设你使用 Azure CLI 作为身份验证,你的帐户已经登录,并且在两个订阅中都有足够的权限。下面是一个示例代码:

provider "azurerm" {
features {}
alias = "subscription1"
subscription_id = "xxxxxxx"
}
provider "azurerm" {
features {}
alias = "subscription2"
subscription_id = "xxxxxxx"
}
data "azurerm_virtual_network" "remote" {
provider = azurerm.subscription1
name = "remote_vnet_name"
resource_group_name = "remote_group_name"
}
data "azurerm_virtual_network" "vnet" {
provider = azurerm.subscription2
name = "vnet_name"
resource_group_name = "group_name"
}
resource "azurerm_virtual_network_peering" "peering" {
provider = azurerm.subscription2
name                         = "${data.azurerm_virtual_network.vnet.name}-to-${data.azurerm_virtual_network.remote.name}"
resource_group_name          = "group_name"
virtual_network_name         = data.azurerm_virtual_network.vnet.name
remote_virtual_network_id    = data.azurerm_virtual_network.remote.id
allow_virtual_network_access = true
allow_forwarded_traffic      = true
# `allow_gateway_transit` must be set to false for vnet Global Peering
allow_gateway_transit = false
}
resource "azurerm_virtual_network_peering" "peering1" {
provider = azurerm.subscription1
name                         = "${data.azurerm_virtual_network.remote.name}-to-${data.azurerm_virtual_network.vnet.name}"
resource_group_name          = "remote_group_name"
virtual_network_name         = data.azurerm_virtual_network.remote.name
remote_virtual_network_id    = data.azurerm_virtual_network.vnet.id
allow_virtual_network_access = true
allow_forwarded_traffic      = true
# `allow_gateway_transit` must be set to false for vnet Global Peering
allow_gateway_transit = false
}

VNet 对等互连始终附带一对。因此,需要为对等互连中不同订阅中的每个 VNet 创建对等互连。此示例仅演示如何为不同订阅中的两个 VNet 创建对等互连。然后,您可以在Terraform中根据需要完成整个体系结构。

最新更新