azure - 如果我们只有 Key Vault 名称,是否可以连接到 terraform 中现有的 Azure Key Vault?

标签 azure terraform-provider-azure

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/

相关文章:

azure - 在 Terraform 中访问 Azure Function App 系统 key

azure - 如何使用 terraform 动态添加多个 IP 到 azure servicebus 防火墙

azure - Microsoft Translator 向我收取 20 个字符翻译 1000 个字符的费用

azure - 使用消息队列绑定(bind)时如何处理 Azure Function 重新运行?

Azure 流分析引用输入无法从存储 blob 读取

azure - 使用 Terraform 导入 Azure 上的现有资源

json - 如何为 Azure 服务编写 MassTransit Json 反序列化器

azure - 用于检查条件的 Terraform 脚本

azure - Terraform 部署的 azure 函数无法与 FUNCTIONS_WORKER_RUNTIME python 设置一起使用

azure - 引用模块输出的值(对象映射)