Suena muy poético este título ¿no?
Bueno, dejando lo romántico de lado lo que importa es mostrar la manera más fácil de cómo obtener un secreto de KeyVault y usarlo como variable en Terraform.
Comienza por crear un archivo main.tf donde solo basta crear por ahora un grupo de recursos (de hecho podrías no crear nada si quieres, creo que yo lo hago más por costumbre que por otra cosa).
provider "azurerm" { version = "2.26.0" features {} } resource "azurerm_resource_group" "rg" { name = var.resource_group_name location = var.location } |
En este archivo debes agregar ahora un bloque de data de donde obtendrás el valor y un bloque de salida output que para este caso te permitirá saber que el secreto de KeyVault fue obtenido. Si no sabes como crear un recurso de KeyVault y sus secretos puedes entrar a este enlace donde te explico como hacerlo. Los bloques quedan de esta manera (el orden no es necesariamente requerido).
provider "azurerm" { version = "2.26.0" features {} } data "azurerm_key_vault_secret" "locationSecret" { name = "location" key_vault_id = var.keyVaultSecretValue } output "A_little_secret" { value = data.azurerm_key_vault_secret.locationSecret.value } resource "azurerm_resource_group" "rg" { name = var.resource_group_name location = var.location } |
Como puedes ver, en el bloque de data necesito pasar dos valores, el nombre te pide el nombre del secreto que quieres obtener, el key_vault_id te pedirá la ruta de identificación de KeyVault, aquí lo que hice fue crear una variable de esta manera.
variable "keyVaultSecretValue" { type = string description = "Where to put the value from KeyVault" default = "/subscriptions/188ad0a2-2814-4380-9257-891d4d2aca06/resourceGroups/testingBasicGroup/providers/Microsoft.KeyVault/vaults/keyvaultamin" } |
Como verás el identificador se arma por medio de algo así como:
/subscriptions/identificador de la suscripción/resourceGroups/nombre del grupo de recursos donde esta el KeyVault/providers/Microsoft.KeyVault/vaults/nombre del KeyVault.
De esta manera, al ejecutar un commando terraform plan deberás poder tener un resultado limpio y sin advertencias o errores y al finalizar la ejecución de un plan terraform apply deberás tener un resultado como esta imagen.

Así, podrías obtener todos los valores que quieras a partir de los secretos de KeyVault.
¡Diviértete!
1 comentario en «Obtener el valor de un secreto de KeyVault en Terraform»