如何从Azure Key Vault读取密钥配置Terraform的MongoDB Atlas Provider
从Azure Key Vault读取密钥配置MongoDB Atlas Provider
要实现从Azure Key Vault读取API密钥来配置MongoDB Atlas Provider,你需要先通过Terraform的Azure数据源获取Key Vault中的密钥,再将其传入Provider配置。具体操作如下:
1. 配置Azure Provider并添加Key Vault密钥数据源
先确保已配置Azure Provider,再添加azurerm_key_vault_secret数据源读取Key Vault中存储的公钥和私钥:
# 配置Azure Provider(未配置时添加) provider "azurerm" { features {} } # 读取MongoDB Atlas API公钥 data "azurerm_key_vault_secret" "mongodb_atlas_pub_key" { name = "mongodb-atlas-api-public-key" # 替换为你Key Vault中公钥的秘密名称 key_vault_id = "/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.KeyVault/vaults/your-key-vault-name" # 替换为你的Key Vault资源ID } # 读取MongoDB Atlas API私钥 data "azurerm_key_vault_secret" "mongodb_atlas_pri_key" { name = "mongodb-atlas-api-private-key" # 替换为你Key Vault中私钥的秘密名称 key_vault_id = "/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.KeyVault/vaults/your-key-vault-name" # 替换为你的Key Vault资源ID }
2. 修改MongoDB Atlas Provider配置
将原变量引用替换为Key Vault数据源的返回值:
provider "mongodbatlas" { public_key = data.azurerm_key_vault_secret.mongodb_atlas_pub_key.value private_key = data.azurerm_key_vault_secret.mongodb_atlas_pri_key.value }
注意事项
- 运行Terraform的身份(本地用户、服务主体等)必须拥有目标Key Vault的
Secret Get权限,否则会触发权限不足错误。 - Key Vault资源ID可从Azure门户的Key Vault概览页获取,也可通过Azure CLI命令
az keyvault show --name your-key-vault-name --query id -o tsv获取。
内容的提问来源于stack exchange,提问作者pieter-jan goeman
相关产品推荐
相关产品推荐

