Google Cloud CLI 기반 Terraform 미리보기 관련 정책 가드레일 발표
Stephen Lewis
Software Engineer/TL
Arslan Saeed
Product Manager for Terraform
* 본 아티클의 원문은 2022년 5월 19일 Google Cloud 블로그(영문)에 게재되었습니다.
Terraform은 오늘날 널리 사용되는 오픈소스 코드형 인프라(IaC) 도구로서 전 세계에서 모든 규모의 조직이 사용하고 있습니다. Terraform은 로컬에서 Terraform을 사용하는 개발자든 복잡한 CI/CD 파이프라인을 관리하는 플랫폼 관리자든 상관없이 Google Cloud에서 인프라를 손쉽게 배포할 수 있도록 도와줍니다.
오늘 인프라 배포 및 기존 인프라 파이프라인 정책 검사를 무료로 수행할 수 있는 클라이언트 측 도구인 gcloud beta terraform vet을 발표하게 된 것을 기쁘게 생각합니다. 이번 출시로 Terraform의 모든 google 및 google-beta 제공업체 리소스에 대한 정책을 작성할 수 있게 되었습니다. 이미 GitHub에서 Terraform 검사기를 사용 중이라면 마이그레이션 안내를 따라 새로운 기능을 활용하세요.
문제점
Terraform의 인프라 자동화는 애플리케이션 제공에 사용되는 인프라 및 서비스의 배포를 자동화하여 민첩성을 높이고 오류를 줄입니다.
기업에서는 애플리케이션을 더 빠르게 개발하고 변화에 빠르게 대응하기 위해 지속적 배포를 구현합니다. 인프라 변경은 흔한 일이며 자주 변경되는 경우도 많습니다. 특히 여러 사업부에서 발생하는 인프라의 모든 변경사항을 모니터링해 자동화된 방식으로 요청을 빠르고 효율적으로 처리하기란 어려울 수 있습니다. 조직 내에서 Terraform을 확장할 때 잘못된 구성과 사람의 실수가 발생할 위험이 커집니다. 사용자가 작성한 구성 변경사항으로 인해 조직이 규정 준수 또는 예산상의 위험에 노출되는 인프라 취약 기간이 늘어날 수 있습니다. 조직이 규모에 맞춰 빠르고 안전하게 비용 효율적으로 변화하려면 정책 가드레일이 필요하며, 개발 프로세스 초기에 도입할수록 향후 감사를 통해 문제가 드러날 위험이 줄어듭니다.
솔루션
gcloud beta terraform vet은 Terraform 구성에 대한 가드레일과 거버넌스를 제공하여 조직의 정책을 위반하는 Google Cloud 리소스의 잘못된 구성을 줄이도록 도와줍니다.
gcloud beta terraform vet 사용 시 다음과 같은 이점이 있습니다.
- 애플리케이션 개발의 어느 단계에서나 조직의 정책 시행
- 정책 검사 자동화로 수동 오류 방지
- 배포 전 확인을 통한 빠른 실패
새로운 기능
CAI 기반 제약조건을 만드는 것 외에도 이제 Terraform의 모든 google 및 google-beta 제공업체 리소스에 대한 정책을 작성할 수 있습니다. 이는 GitHub에서 terraform 검사기 기존 사용자들에게 접수된 의견을 토대로 추가한 기능입니다. 지금 gcloud beta terraform vet으로 마이그레이션하여 새로운 기능을 활용해 보세요.
정책 검사의 기본 사용 사례
플랫폼팀에서는 인프라 CI/CD 파이프라인(계획 단계와 적용 단계 사이)에 가드레일을 쉽게 추가하여 모든 인프라 요청이 클라우드에 배포되기 전에 검사받도록 할 수 있습니다. 배포 전 확인 중에 최종 사용자에게 위반한 정책을 알려주는 실패 메시지를 제공하므로 플랫폼팀의 개입 부담이 줄어듭니다.
애플리케이션팀과 개발자가 조직의 중앙 정책 라이브러리를 기준으로 Terraform 구성을 검사하여 개발 프로세스 초기에 잘못된 구성을 식별할 수 있습니다. CI/CD 파이프라인에 제출하기 전에 쉽게 Terraform 구성이 조직 정책을 준수하도록 할 수 있으므로 시간과 수고를 아낄 수 있습니다.
보안팀은 조직 내 모든 팀이 정책 위반을 식별하고 방지하기 위해 사용할 수 있는 중앙화된 정책 라이브러리를 만들 수 있습니다. 조직 구조에 따라 보안팀(또는 다른 신뢰할 수 있는 팀)이 회사의 요구사항 또는 규정 준수 요구사항에 따라 필요한 정책을 추가할 수 있습니다.
시작하기
빠른 시작에서 시작 방법에 대한 자세한 안내가 제공됩니다. 대략적인 프로세스를 살펴보겠습니다.
1. 먼저 정책 라이브러리를 클론합니다. 여기에는 시작을 위한 샘플 제약조건 템플릿과 번들이 포함되어 있습니다. 제약조건 템플릿은 제약조건에서 사용되는 로직을 지정합니다.
2. 제약조건을 policies/constraints 폴더에 추가합니다. 이는 시행할 정책을 나타냅니다. 예를 들어 IAM 도메인 제한 제약조건에서는 모든 IAM 정책 구성원이 'gserviceaccount.com' 도메인에 있도록 합니다. 그 밖의 샘플은 샘플 제약조건을 참조하세요.
Terraform 계획을 생성하여 JSON 형식으로 변환합니다.
gcloud 구성요소인 terraform-tools를 설치합니다.
gcloud beta terraform vet을 실행합니다.
마지막으로, 결과를 확인합니다. 정책 확인 위반사항이 있는 경우 다음과 같은 출력이 표시됩니다.
통과:
실패: 실제로는 출력이 훨씬 길며 여기에서는 스니펫을 표시합니다.
피드백
이 기능이 여러분께 어떤 도움을 주고 있는지 궁금합니다. 개선 방안에 대한 아이디어도 들려 주세요.