DKIM(DomainKeys Identified Mail)은 이메일 스푸핑을 방지하는 데 도움이 되는 중요한 이메일 인증 기술이다. DKIM을 사용하면 비공개 키로 이메일 헤더에 디지털 서명하고, 수신자는 도메인의 DNS 레코드에 저장된 공개 키를 사용하여 이 서명을 확인한다.

이 글에서는 Terraform을 사용하여 Google Workspace용 DKIM을 구성하고 AWS Route 53을 DNS 관리에 사용하는 방법을 살펴본다.

Terraform 블록 분석

DKIM 레코드용 로컬 변수

locals {
  dkim_record = "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
}
  • v=DKIM1: 사용 중인 DKIM 버전 지정.
  • k=rsa: 사용된 암호화 유형.
  • p=MIIBIjAN...: 공개 키 자체.

Route 53에 DKIM 레코드 생성

resource "aws_route53_record" "google_domainkey_TXT" {
  zone_id = aws_route53_zone.domain_com.zone_id
  name    = "google._domainkey"
  type    = "TXT"
  ttl     = 300
  records = [
    replace(local.dkim_record, "/(.{255})/", "$1\"\"")
  ]
}

결론

Terraform을 사용하여 Google Workspace 및 AWS Route 53용 DKIM 레코드를 관리하면 이메일 인증 설정을 구성하고 유지하는 프로세스가 간소화된다. IaC로 자동화함으로써 재현성, 감사 가능성, 관리 용이성의 이점을 얻으면서 이메일이 스푸핑 및 기타 이메일 기반 공격으로부터 보호되도록 보장할 수 있다.