Writing
Conftest와 OPA Rego 정책을 활용한 Dockerfile 보안 점검
Open Policy Agent를 이용한 Dockerfile 보안 정책 검증 및 모범 사례.
Table of Contents
Conftest와 OPA Rego 정책을 활용한 Dockerfile 보안 점검
Docker는 어디에나 있습니다! 현대의 일상적인 개발 및 운영 환경에서 개발자 노트북, 라즈베리 파이, 스테이징 서버, 프로덕션 환경에 이르기까지 애플리케이션을 실행하기 위해 Docker 이미지와 컨테이너를 사용합니다.
최신 기술과 도구를 사용하면서 배포 전 보안 검증을 간과하기 쉽습니다. 그렇기 때문에 보안 규칙을 정책(Policy as Code)으로 작성하고 이를 Dockerfile(IaC)과 대조 검증하여 프로덕션 배포 전에 잠재적인 보안 위험을 식별할 수 있습니다.
Conftest란 무엇인가요?
Conftest는 구조화된 설정 데이터를 대상으로 테스트를 작성할 수 있도록 돕는 유틸리티입니다. 예를 들어 Kubernetes 설정, Terraform 코드, Serverless 설정 등 다양한 구조화된 데이터를 검증할 수 있습니다. 본 글에서는 지원 중단된 Kubernetes API 버전에 대한 유효성 검사 정책을 작성하는 데 활용합니다. Conftest는 규칙 작성을 위해 Open Policy Agent의 Rego 언어를 기반으로 작동합니다.
OPA (Open Policy Agent)란?
Open Policy Agent(OPA, ‘오파’로 발음)는 전체 스택에 걸쳐 정책 적용을 통합하는 오픈소스 범용 정책 엔진입니다. 선언형 고수준 언어를 제공하여 정책을 코드로 명시하고, 소프트웨어의 정책 결정 로직을 분리할 수 있는 간단한 API를 제공합니다.
Rego 플레이그라운드 예제: https://play.openpolicyagent.org/p/hSVfocnUgg
docker-security-checker란?
docker-security-checker는 Conftest를 사용하여 Dockerfile 보안 검사를 수행하는 Open Policy Agent Rego 정책 모음입니다.
자세한 내용은 https://github.com/madhuakula/docker-security-checker 에서 확인하세요.