Terraform コード ファイルからパスワードを削除する方法

Terraform コード ファイルからパスワードを削除する方法

Azure で Azure SQL Server を作成しています:

variables.tf現在、管理者パスワードが含まれているファイルがあります:

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

次に、メイン ファイルでそれを参照します。

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
}

このファイルをソース管理にチェックインしたくありません。

管理者のユーザー名とパスワードを環境変数に取得する Terraform の方法はありますか?

答え1

展開の設定方法によって異なります。パスワード (random_password) を生成し、それをキー ボールトに安全に保存して、SQL を展開するときに参照することができます。既存のキー ボールト シークレットをパスワードとして参照することもできます。

Terraform からのこれに関連するリンクをいくつか示します。

Terraform でのキー コンテナーの作成:https://www.terraform.io/docs/providers/azurerm/r/key_vault.html

既存の Azure Key Vault からシークレットを取得します。 https://www.terraform.io/docs/providers/azurerm/d/key_vault_secret.html

Azure Key Vault に関連する情報は、次の場所にあります。https://azure.microsoft.com/en-us/services/key-vault/

答え2

最も簡単なオプションとして、変数のデフォルト値を削除し、実行または実行時に変数を渡すことができますterraform planapplyterraformexport TF_SQL_SERVER_ADMIN_PASSWORD=<password>コマンドを実行するだけです。 また、ビルド中に安全に渡すこともできます。 Azure KeyVault または HashiCorp Vault を統合して変数を取得する方法はより複雑ですが、より安全です。

関連情報