如何从其他 Terraform 部署创建的密钥库中获取秘密值?

How to get secret value from keyvault that were created by other terraform deployment?

我有一个 azurerm_key_vault 类型的密钥库,名称为 key-vault-1,其中 azurerm_key_vault_secret 类型的密钥名为 secret-password-1。 这些在其他部署中定义。

如何从其他 modules/deployments 访问 secret-password-1 的值?

您可以使用 Data Source: azurerm_key_vault_secret 访问现有密钥保管库中的机密值。当然,创建 Key vault 和 secret 的部署必须在模块之前执行。

如果两个部署都在模块中,则需要在 Key Vault 部署中定义机密的输出。这是一个例子:

main.tf

module "keyvault" {
  source = "./modules/keyvault"
  ...
}

module "other_deployment" {
  source = ./modules/other_deployment

  secret-password-1 = module.keyvault.secret-password-1
}

./modules/keyvault/main.tf

...
output "secret-password-1" {
  value = azurerm_key_vault_secret.exxample.value
}

./modules/other_deployment/main.tf

variable "secret-password-1" {}

此示例展示了如何引用在另一个模块中创建的秘密。