Terraform Introduces tfpolicy, an HCL-based Policy-as-Code Framework

InfoQ · 2026.08.03

tfpolicy란 무엇인가?

HashiCorp가 Terraform의 인프라 거버넌스를 위한 새로운 정책-as-코드 프레임워크인 tfpolicy를 공개 베타로 출시했다. 기존 Terraform 생태계에서 인프라 정책을 관리하려면 Sentinel이나 OPA(Open Policy Agent)와 같은 별도 도구를 도입하고, Rego 같은 전용 언어를 추가로 학습해야 했다. tfpolicy는 이러한 복잡성을 제거하고, 이미 익숙한 HCL(HashiCorp Configuration Language) 문법을 그대로 활용해 정책을 정의하고 적용할 수 있도록 설계되었다.

현재 HCP Terraform 환경 내에서 사용 가능하며, 인프라 배포 파이프라인에 거버넌스 규칙을 직접 내재화할 수 있다는 점이 핵심이다.

기존 방식과 무엇이 달라지는가?

기존에는 인프라 코드(IaC)와 정책 코드가 서로 다른 레이어에서 관리되었다. 예를 들어 OPA를 사용하는 팀은 Rego로 별도 정책 파일을 유지하고, CI/CD 파이프라인에서 이를 별도로 실행하는 구조를 가져야 했다. 이는 다음과 같은 문제를 야기한다.

  • 정책과 인프라 코드 간의 컨텍스트 불일치: 서로 다른 언어와 도구로 관리되다 보니 변경 사항을 동기화하기 어렵다.
  • 학습 비용 증가: 인프라 팀이 Rego나 Sentinel 같은 DSL을 별도로 익혀야 한다.
  • 파이프라인 복잡도 상승: 정책 검증 단계를 별도로 구성하고 유지보수해야 한다.

tfpolicy는 이 모든 과정을 Terraform 워크플로우 내부로 통합한다. HCL로 작성된 정책은 Terraform 플랜 결과를 직접 참조할 수 있으며, 배포 전 단계에서 자동으로 평가된다.

policy "no_public_s3_buckets" {
  source = "./policies/s3_public_access.tf"
  enforcement_level = "hard-mandatory"
}

위처럼 정책 파일을 HCL로 선언하고, 기존 Terraform 구성과 동일한 방식으로 버전 관리 및 모듈화가 가능하다.

실무에서 왜 주목해야 하는가?

백엔드 개발자나 DevOps 엔지니어 입장에서 tfpolicy는 거버넌스의 진입 장벽을 낮춘다는 점에서 실질적인 가치가 있다. 특히 클라우드 인프라를 코드로 관리하는 팀이 늘어나면서, 보안 정책이나 비용 통제 규칙을 개발 초기 단계에 강제하는 "시프트 레프트(shift left)" 전략이 중요해지고 있다.

tfpolicy를 활용하면 다음과 같은 실무 시나리오에 대응할 수 있다.

  • 퍼블릭 접근이 허용된 S3 버킷이나 보안 그룹 생성 사전 차단
  • 특정 리전 외 리소스 배포 정책 강제
  • 태그 누락 리소스에 대한 배포 블로킹

HCL이라는 단일 언어로 인프라와 정책을 함께 관리할 수 있다면, 팀의 코드 리뷰 프로세스와 CI/CD 파이프라인을 단순화하는 데 직접적인 기여가 된다.

정리

  • tfpolicy는 HCL 기반으로 Terraform 워크플로우 내에 정책 검증을 통합하여 별도 도구 없이 거버넌스를 구현할 수 있게 한다.
  • 기존 Sentinel·OPA 방식 대비 학습 비용과 파이프라인 복잡도를 낮추는 것이 핵심 가치다.
  • 현재 HCP Terraform 공개 베타 단계이며, 시프트 레프트 보안 전략을 실천하는 팀에 우선적으로 도입을 검토할 만하다.
Source
InfoQ
원문 보기 →
← 목록으로 돌아가기