Azure Key Vault 名称是全局唯一的,并且是我们在使用 Azure CLI 时连接到它所需的全部名称,例如:
az keyvault secret set --name dummy --vault-name $kv_name --value XYZ
在这里,我们在 Azure key 保管库中设置了一个 secret ,仅通过其名称给出。
但是,terraform azurerm_key_vault
数据源需要 key 保管库和资源组名称。
这似乎是一个多余的要求。是否可以在不知道资源组的情况下连接到 terraform 中的 AKV?仅通过 key 保管库名称?
最佳答案
是的,你可以,但这有点不传统。有一个数据源叫azurerm resources
。这将允许您使用名称、资源组、资源类型或标签查找任何现有资源。
最简单的是,您只需要 KeyVault 的名称和资源类型:Microsoft.KeyVault
。
代码如下所示:
data "azurerm_resources" "keyvault" {
name="kv-too-many-secrets"
type ="Microsoft.KeyVault/vaults"
}
locals {
keyvault_rg = split(data.azurerm_resources.id, "/")[
}
data "azurerm_key_vault" "example" {
name = "kv-too-many-secrets"
resource_group_name = local.keyvault_rg
}
如果我的字符串格式关闭或索引错误,请原谅我,但我们的想法是资源组名称嵌入到我们的 keyvault 的资源 ID 中,我们可以从那里提取它。
这是一个video解释该方法。
关于azure - 如果我们只有 Key Vault 名称,是否可以连接到 terraform 中现有的 Azure Key Vault?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75844626/