이미지 입력 검증

이미지 입력 검증 (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 예시는 원본 문서를 참고해요.

더 알아보기 (Learn more)