Estoy creando un servidor SQL Azure en Azure:
Tengo un variables.tf
archivo que actualmente tiene la contraseña de administrador:
variable "sql_server_admin_password" {
description = "admin password"
default = "xxxx"
}
Luego hago referencia a eso en el archivo principal:
resource "azurerm_sql_server" "main" {
name = var.sql_server_name
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
version = "12.0"
administrator_login = var.sql_server_admin_login
administrator_login_password = var.sql_server_admin_password
}
No quiero registrar este archivo en el control de fuente.
¿Existe una forma terraform de obtener el nombre de usuario y la contraseña del administrador en las variables de entorno?
Respuesta1
Dependiendo de cómo esté configurada su implementación. Puede generar una contraseña (contraseña_aleatoria) y almacenarla de forma segura en una bóveda de claves y hacer referencia a ella más adelante al implementar su SQL. También puede hacer referencia a un secreto de keyvault existente para que sea su contraseña.
Algunos enlaces relacionados con esto de Terraform:
Creación de bóveda de claves en Terraform:https://www.terraform.io/docs/providers/azurerm/r/key_vault.html
Obtenga el secreto de una Azure Key Vault existente: https://www.terraform.io/docs/providers/azurerm/d/key_vault_secret.html
La información relacionada con Azure Key Vault se puede encontrar aquí:https://azure.microsoft.com/en-us/services/key-vault/
Respuesta2
Como opción más simple, puede eliminar el valor predeterminado de la variable y pasar la variable cuando se ejecuta terraform plan
o apply
. Simplemente export TF_SQL_SERVER_ADMIN_PASSWORD=<password>
ejecute los comandos de terraform. Además, podría pasarse de forma segura durante las compilaciones. Integrar Azure KeyVault o HashiCorp Vault para recuperar las variables es una forma más compleja, pero más segura de hacerlo.