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를 통합하여 변수를 검색하는 것은 더 복잡하지만 더 안전한 방법입니다.