클라우드(Azure, AWS)

[Azure] 별도의 인증 파일을 사용하여 서비스 주체와 Terraform 연동

기억보다는 기록을... 2024. 10. 28. 13:10

 

 

1. 변수 파일 생성

  • 프로젝트 루트 디렉토리에 "terraform.tfvars" 파일 생성
  • terraform.tfvars 파일은 로컬에만 저장하고, 절대 공유하거나 버전 관리 시스템에 커밋하지 않도록 주의 필요.
# terraform.tfvars
subscription_id = "your_subscription_id"	->	구독 ID
client_id       = "your_client_id"			->	terraformuser 개체 ID
client_secret   = "your_client_secret"		->	terraformuser 클라이언트 비밀 값
tenant_id       = "your_tenant_id"			->	부모 관리 그룹

terraformuser는 연동을 위해 생성한 계정 (Microsoft Entra ID -> 앱 등록)

 

 

2. .gitignore 설정

  • 인증정보가 포함 된 "terraform.tfvars" 파일을 버전 관리에서 제외하기 위해 설정
  • 프로젝트 루트 디렉토리에 " .gitignore" 파일 생성
  • 예외 처리할 "terraform.tfvars" 파일 등록
terraform.tfvars

 

 

3. Terraform 설정

  • main.tf 파일에서 변수를 선언하고 provider 블록 설정
variable "subscription_id" {}
variable "client_id" {}
variable "client_secret" {}
variable "tenant_id" {}

provider "azurerm" {
  features {}
  subscription_id = var.subscription_id
  client_id       = var.client_id
  client_secret   = var.client_secret
  tenant_id       = var.tenant_id
}

 

 

 

4. Terraform 초기화 및 실행

terraform init
terraform plan
terraform apply

 

 

 


 

SOPS + Azure Key Vault를 사용하여 암호화 후 연동하려고 했으나 비용이 발생되어 보류 

  • Azure Key Vault 생성 후 Key Vault에 키 생성 시 "Key Vault 암호화 책임자" 또는 "Key Vault 관리자" 역할 필요
  • "Key Vault 암호화 책임자" 또는 "Key Vault 관리자" 역할 할당을 위해선 Azure Front Door에 연결된 ID가 필요
  • Azure Front Door 구성에 월 비용 발생

Azure Front Door  기본 요금