cómo mantener las contraseñas fuera del archivo de código Terraform

cómo mantener las contraseñas fuera del archivo de código Terraform

Estoy creando un servidor SQL Azure en Azure:

Tengo un variables.tfarchivo 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 plano 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.

información relacionada