이미지 입력 검증
이미지 입력 검증 (Validating image inputs)
FROM 명령과 COPY --from 참조는 추가 이미지를 pull해요. 이 이미지들을 검증하면 손상된 레지스트리, 예상치 못한 업데이트, 승인되지 않은 베이스 이미지로부터 빌드 공급망을 보호할 수 있어요.
이 가이드는 기본 허용 목록(allowlist)에서 고급 자격 증명 검사까지, 이미지 입력을 검증하는 정책 작성법을 가르쳐요.
출처: 문서
본문
사전 요구사항 (Prerequisites)
Introduction 문서의 정책 기초를 이해하고 있어야 해요.
이미지 입력이란? (What are image inputs?)
이미지 입력은 두 가지 Dockerfile 명령에서 와요:
# FROM 명령
FROM alpine:3.22
FROM golang:1.25-alpine AS builder
# COPY --from 참조
COPY --from=builder /app /app
COPY --from=nginx:latest /etc/nginx/nginx.conf /nginx.conf
이 참조들 각각이 정책 평가를 촉발해요. 정책에서 이미지 메타데이터를 검사하고, 자격 증명을 검증하고, 빌드가 진행되기 전에 제약을 강제할 수 있어요.
특정 저장소 허용 목록 (Allowlist specific repositories)
가장 간단한 이미지 정책은 사용할 수 있는 저장소를 제한하는 것이에요. 이렇게 하면 개발자가 임의의 이미지를 승인 없이 쓰는 것을 방지할 수 있어요. 예:
package docker
default allow = false
allow if {
input.image.repo == "alpine"
}
(고급) 자격 증명 검증
이미지에 부착된 SBOM·provenance 자격 증명을 요구하는 정책도 작성할 수 있어요. 각 검증 기법의 자세한 Rego 예시는 원본 문서를 참고해요.