So halten Sie Passwörter aus der Terraform-Codedatei fern

So halten Sie Passwörter aus der Terraform-Codedatei fern

Ich erstelle einen Azure SQL-Server in Azure:

Ich habe eine variables.tfDatei, die derzeit das Administratorkennwort enthält:

variable "sql_server_admin_password" {
  description = "admin password"
  default = "xxxx"  
}

Darauf verweise ich dann in der Hauptdatei:

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
}

Ich möchte diese Datei nicht in die Quellcodeverwaltung einchecken.

Gibt es eine Terraform-Methode, um den Benutzernamen und das Passwort des Administrators in Umgebungsvariablen zu bekommen?

Antwort1

Abhängig davon, wie Ihre Bereitstellung eingerichtet ist. Sie können ein Kennwort (random_password) generieren und es sicher in einem Schlüsseltresor speichern und später beim Bereitstellen Ihres SQL darauf verweisen. Sie können auch auf ein vorhandenes Schlüsseltresorgeheimnis als Kennwort verweisen.

Einige diesbezügliche Links von Terraform:

Erstellen eines Schlüsseltresors in Terraform:https://www.terraform.io/docs/providers/azurerm/r/key_vault.html

Rufen Sie das Geheimnis aus einem vorhandenen Azure Key Vault ab: https://www.terraform.io/docs/providers/azurerm/d/key_vault_secret.html

Informationen zu Azure Key Vault finden Sie hier:https://azure.microsoft.com/en-us/services/key-vault/

Antwort2

Als einfachste Option können Sie den Standardwert der Variable entfernen und die Variable bei der Ausführung terraform planoder übergeben apply. export TF_SQL_SERVER_ADMIN_PASSWORD=<password>Führen Sie einfach Terraform-Befehle aus. Außerdem kann sie während des Builds sicher übergeben werden. Die Integration von Azure KeyVault oder HashiCorp Vault zum Abrufen der Variablen ist hierfür eine komplexere, aber sicherere Möglichkeit.

verwandte Informationen