알아두면 좋은 상위 7개 Terraform 스캐닝 도구
Source: Dev.to
Terraform에 대한 IaC 스캐닝이 의미하는 바는?
IaC 스캐닝은 배포 전에 Terraform 코드를 자동으로 분석하여 보안, 규정 준수 및 구성 문제를 감지하는 것을 말합니다. 이를 통해 인프라스트럭처 코드 파일에서 잘못된 구성, 하드코딩된 비밀, 정책 위반 등을 식별할 수 있습니다.
IaC 스캐닝 도구는 .tf 파일을 분석하여 IAM 역할, 보안 그룹, S3 버킷과 같은 리소스가 보안 및 규정 준수 모범 사례를 따르는지 확인합니다.
IaC 스캐닝은 일반적으로 CI/CD 파이프라인이나 Git 워크플로에 통합되어 위험한 인프라가 배포되는 것을 방지합니다. 개발 라이프사이클 초기에 문제를 잡아내는 shift‑left 보안을 지원합니다.
최고의 Terraform 스캐닝 도구
Terrascan
Terrascan은 Tenable이 유지 관리하는 오픈소스 IaC 보안 스캐너로, 정책‑as‑code 규칙에 대한 잘못된 구성을 사전 배포 단계에서 감지하고, 멀티‑클라우드 대상을 지원하며, 개발자 워크플로와 CI/CD에 머신‑읽기 가능한 출력 및 원격 저장소 스캔을 제공하도록 플러그인됩니다.
# Scan Terraform in the current directory (default IaC provider) and target AWS policies
terrascan scan -t aws -d .
# CI‑friendly example: Terraform scan with SARIF output
terrascan scan -i terraform -o sarif -d .
주요 기능
- OPA/Rego 기반 정책‑as‑code: Rego로 규칙을 작성·확장하고, 규칙 JSON으로 메타데이터를 관리하며,
terrascan init으로 로컬/번들 정책을 업데이트하고, 필요 시 규칙을 선택적으로 건너뛸 수 있음. - 광범위한 Terraform 및 멀티‑클라우드 지원: Terraform(HCL2)을 공급자‑별 정책(
-t aws)과 함께 스캔하고, 필요 시 다른 IaC 유형도 지원. - 파이프라인·개발자 친화적: GitHub/GitLab 및 pre‑commit과 통합되고, JSON/YAML/JUnit‑XML/SARIF 등 자동 게이트용 출력을 제공하며, 주요 컨테이너 레지스트리에서 취약점 결과를 가져올 수 있음.
공식 문서:
자세히 보기: What is Terrascan? Features, Use Cases & Custom Policies
Checkov
Checkov은 오픈소스 정적 분석 도구로, IaC 템플릿(Terraform, CloudFormation, Kubernetes, Helm, ARM, Serverless 등)을 배포 파이프라인 초기에 검사해 잘못된 구성, 정책 위반 및 보안 결함을 감지합니다.
# Run Checkov against a Terraform directory
checkov -d ./infrastructure/terraform
# Example: scan a Terraform plan (JSON) with SARIF output
terraform plan -out tfplan
terraform show -json tfplan > tfplan.json
checkov -f tfplan.json --output sarif
주요 기능
- 방대한 내장 정책 라이브러리: 주요 클라우드와 템플릿을 아우르는 750개 이상의 사전 정의 체크를 제공하며, CIS, PCI‑DSS 등 다양한 규정 준수 프레임워크를 지원.
- 그래프 기반 리소스 관계 분석: IaC 리소스 그래프를 구축하고 종속성을 분석해 보다 깊은 구성 문제를 포착.
- 유연한 CI/CD·워크플로 통합: GitHub, GitLab, pre‑commit 훅, IDE 등에 플러그인 가능하고, JSON, JUnit‑XML, SARIF 등 다양한 출력 포맷을 지원.
공식 문서:
자세히 보기: What is Checkov? Features, Use Cases & Examples
tfsec
tfsec은 Aqua Security에서 만든 오픈소스 Terraform 보안 스캐너로, HCL에 대한 정적 분석을 수행해 apply 전에 위험하거나 비규격인 구성을 표시합니다. 스캔 엔진은 Aqua의 Trivy에서도 사용할 수 있습니다.
# Scan the current Terraform project and emit SARIF for CI code scanning
tfsec . --format sarif
주요 기능
- Terraform‑우선 분석: 공식 HCL 파서를 사용해 빠르게 로컬에서 실행되며 클라우드 자격증명이나 상태 파일이 필요 없고, 주요 공급자 전반에 걸친 잘못된 구성을 목표로 함.
- 다양한 출력 및 CI 훅: JSON, CSV, Checkstyle, JUnit, SARIF 등으로 결과를 내보내며, 파이프라인 게이팅용 GitHub Action을 바로 제공.
- 간단한 JSON/YAML 기반 사용자 정의 규칙:
.tfsec/디렉터리에*_tfchecks.json|yaml파일을 추가하거나--custom-check-dir·--custom-check-url옵션으로 로드 가능.
공식 문서:
자세히 보기: What is tfsec? How to Install, Config, Ignore Checks
참고: tfsec은 현재 Trivy의 일부입니다.
KICS
KICS는 IaC용 무료 오픈소스 정적 분석 엔진으로, Terraform, Kubernetes 매니페스트, CloudFormation, Ansible, Pulumi, Helm 차트 등 다양한 구성 파일을 배포 전 검사해 잘못된 구성, 규정 준수 문제 및 보안 위험을 탐지합니다.
# Scan a directory of Terraform / IaC files with KICS (Docker)
docker run -v "$(pwd)":/path checkmarx/kics:latest scan -p /path -o /path/results
# CLI‑only example
kics scan -p ./infrastructure/terraform -o ./scan-output.json --report-formats json
주요 기능
- 광범위한 플랫폼 지원 및 방대한 규칙 라이브러리: Terraform, CloudFormation, Kubernetes, Pulumi, Dockerfile, Ansible 등에서 동작하며 약 1900개 이상의 내장 쿼리를 제공.
- 확장 가능한 쿼리 엔진: 각 체크는 쿼리 형태로 정의돼 수정·추가·비활성화가 가능해 맞춤 정책 및 특수 규정 준수 프레임워크 구현 가능.
- CI/CD·개발자 친화적 통합: 파이프라인에 손쉽게 삽입(Docker, CLI, GitHub Actions, VS Code) 가능하고, JSON/SARIF/HTML 출력으로 IaC 보안을 개발 및 PR 워크플로에 shift‑left 할 수 있음.
공식 문서:
TFLint
TFLint는 Terraform용 플러그인 가능한 린터로, HCL을 정적으로 분석해 공급자‑특정 이슈, 사용 중단된 구문, 모범 사례 위반 등을 잡아냅니다. AWS, Azure, Google Cloud 등에 대한 풍부한 플러그인 생태계를 지원하고, 사용자 정의 규칙도 만들 수 있습니다.
# Basic usage: lint the current directory
tflint
# With a specific configuration file
tflint --config .tflint.hcl
주요 기능
- 공급자 인식 린팅: AWS, Azure, Google Cloud 등에 대한 내장 규칙을 제공하며, 커뮤니티 플러그인으로 확장 가능.
- 사용자 정의 규칙 지원: Go로 커스텀 체크를 작성하거나
--enable-rule플래그로 분석을 세밀하게 조정 가능. - CI/CD 통합: JSON 출력으로 파이프라인에서 쉽게 활용할 수 있고, pre‑commit 훅과도 연동됨.
공식 문서: