簡體   English   中英

使用 Terraform 更新 Azure KeyVault 的防火牆規則

[英]Update firewall rule of Azure KeyVault using Terraform

我創建了一個具有默認防火牆規則的 Azure KeyVault。 現在我想更新防火牆規則以使用 Terraform 添加幾個 IP 地址。 我知道要獲取當前的 KeyVault 和資源組。 但是我發現用新的 IP 地址(防火牆)更新 KeyVault 很困難。

provider "azurerm" {
  version = "=1.36.0"
  subscription_id = "7e7f55d3-f30a-4bfd-a6be-1c59594b8592"
}

data "azurerm_resource_group" "rg_name" {
  name = "ITQIG-eu-rsv-sangamn-dev"
}

data "azurerm_key_vault" "kv_name" {
  name                = "manjugtestkv"
  resource_group_name = "${data.azurerm_resource_group.rg_name.name}"
}

我創建了具有默認防火牆規則的Azure KeyVault。 現在,我想更新防火牆規則,以使用Terraform添加一些IP地址。 我知道要獲取當前的KeyVault和資源組。 但是我發現用新的IP地址(防火牆)更新KeyVault十分困難。

provider "azurerm" {
  version = "=1.36.0"
  subscription_id = "7e7f55d3-f30a-4bfd-a6be-1c59594b8592"
}

data "azurerm_resource_group" "rg_name" {
  name = "ITQIG-eu-rsv-sangamn-dev"
}

data "azurerm_key_vault" "kv_name" {
  name                = "manjugtestkv"
  resource_group_name = "${data.azurerm_resource_group.rg_name.name}"
}

恐怕您無法通過Terraform更新防火牆規則,因為Terraform不會釋放資源來更新防火牆。 因此,您只能在Key Vault的創建時間內設置防火牆規則,而不能更新現有的Key Vault。 如果您確實要更新防火牆規則,我建議您使用Azure CLI命令az keyvault network-rule ,它將幫助您達到目的。

如果您手動創建了密鑰保管庫,則網絡 ACL 位於該資源下。 要在 TF 下進行管理,您需要將其導入您的狀態,然后使用代碼對其進行更新。

因此,將您的密鑰庫添加到您的代碼中,例如之前設置的內容

resource "azurerm_key_vault" "example" {
  name                        = "testvault"
  ...

}

現在您需要導入狀態文件的那部分,類似於以下內容:

terraform import azurerm_key_vault.example /subscriptions/7e7f55d3-f30a-4bfd-a6be-1c59594b8592/resourceGroups/ITQIG-eu-rsv-sangamn-dev/providers/Microsoft.KeyVault/vaults/manjugtestkv

在運行計划時導入后,它可能會顯示一些差異,因此您需要將它們添加到代碼中以匹配您的狀態。 一旦匹配,您就可以添加network_acls塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM