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)를 생성하여 keyvault에 안전하게 저장하고 SQL을 배포할 때 추가로 참조할 수 있습니다. 기존 keyvault 비밀을 참조하여 암호로 사용할 수도 있습니다.

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 plan있습니다 apply. 그냥 export TF_SQL_SERVER_ADMIN_PASSWORD=<password>terraform 명령을 실행하세요. 또한 빌드 중에 안전하게 전달될 수도 있습니다. Azure KeyVault 또는 HashiCorp Vault를 통합하여 변수를 검색하는 것은 더 복잡하지만 더 안전한 방법입니다.

관련 정보