Docker Hardened Images의 사용 가능한 유형

Docker Hardened Images의 사용 가능한 유형 (Available types of Docker Hardened Images)

DHI 카탈로그의 다양한 이미지 유형과 변형을 알아볼게요.

출처: 문서

본문

Docker Hardened Images(DHI)는 다양한 개발·프로덕션 요구를 충족하도록 빌드된 보안 강화 컨테이너 이미지의 포괄적인 카탈로그예요.

Docker Hub에서 DHI 카탈로그를 탐색하거나 DHI CLI로 명령줄에서 사용 가능한 이미지, 태그, 메타데이터를 탐색할 수 있어요.

프레임워크 및 애플리케이션 이미지 (Framework and application images)

DHI는 보안과 규정 준수를 보장하도록 각각 강화·유지 관리되는 인기 프레임워크·애플리케이션 이미지 선택을 포함해요. 이 이미지들은 기존 워크플로우에 매끄럽게 통합되어, 개발자가 보안을 희생하지 않고 애플리케이션 구축에 집중하게 해줘요.

예를 들어 DHI 카탈로그에서 다음과 같은 저장소를 찾을 수 있어요:

  • node: Node.js 애플리케이션용 프레임워크
  • python: Python 애플리케이션용 프레임워크
  • nginx: 웹 서버 이미지

기본 이미지 배포판 (Base image distributions)

Docker Hardened Images는 서로 다른 기본 이미지 옵션으로 제공되어, 환경과 워크로드 요구 사항에 가장 잘 맞는 것을 선택할 수 있는 유연성을 줘요:

  • Debian 기반 이미지: 이미 glibc 기반 환경에서 작업 중이라면 잘 맞아요. Debian은 널리 사용되며 많은 언어 생태계와 엔터프라이즈 시스템에서 강한 호환성을 제공해요.
  • Alpine 기반 이미지: musl libc를 사용하는 더 작고 가벼운 옵션이에요. 이 이미지들은 작아서 풀(pull)이 빠르고 공간을 덜 차지해요.

각 이미지는 셸, 패키지 매니저, 디버깅 도구 같은 비필수 구성 요소를 제거해 최소·안전 런타임 계층을 유지해요. 이는 공통 런타임 환경과의 호환성을 유지하면서 공격 표면을 줄이는 데 도움을 줘요. 이 날씬하고 안전한 기반을 유지하기 위해 DHI는 glibc 기반 이미지에 Debian을 표준화해, 복잡성과 유지 관리 오버헤드를 최소화하면서 넓은 호환성을 제공해요.

예시 태그:

  • 3.9.23-alpine3.21: Python 3.9.23용 Alpine 기반 이미지
  • 3.9.23-debian12: Python 3.9.23용 Debian 기반 이미지

어느 것을 고를지 모르겠다면 이미 익숙한 기반으로 시작하세요. Debian이 가장 넓은 호환성을 제공하는 경향이 있어요.

개발 및 런타임 변형 (Development and runtime variants)

애플리케이션 수명주기의 여러 단계를 수용하기 위해 DHI는 모든 언어 프레임워크 이미지와 일부 애플리케이션 이미지를 두 변형으로 제공해요:

  • 개발(dev) 이미지: 필요한 개발 도구와 라이브러리를 갖춘 이미지로, 안전한 환경에서 애플리케이션을 빌드·테스트하는 데 도움을 줘요. 셸, 패키지 매니저, root 사용자, 기타 개발에 필요한 도구를 포함해요.
  • 런타임 이미지: 개발 도구가 제거되어, 애플리케이션 실행에 필요한 필수 구성 요소만 포함해 프로덕션에서 최소 공격 표면을 보장해요.

이 분리는 멀티 스테이지 빌드를 지원해, 개발자가 안전한 빌드 환경에서 코드를 컴파일하고 날씬한 런타임 이미지로 배포할 수 있게 해줘요.

예를 들어 DHI 저장소에서 다음과 같은 태그를 찾을 수 있어요:

  • 3.9.23-debian12: Python 3.9.23용 런타임 이미지
  • 3.9.23-debian12-dev: Python 3.9.23용 개발 이미지

FIPS 및 STIG 변형 (FIPS and STIG variants)

일부 Docker Hardened Images는 -fips 변형을 포함해요. 이 변형들은 안전한 암호화 작업을 위한 미국 정부 표준인 FIPS 140 하에서 검증된 암호화 모듈을 사용해요.

FIPS 변형은 민감하거나 규제된 환경의 암호화 사용과 관련된 규제·규정 준수 요구 사항을 충족하는 데 도움을 주도록 설계되었어요.

FIPS 변형은 -fips를 포함한 태그로 알아볼 수 있어요.

예를 들어:

  • 3.13-fips: Python 3.13 이미지의 FIPS 변형
  • 3.9.23-debian12-fips: Debian 기반 Python 3.9.23 이미지의 FIPS 변형

FIPS 변형은 다른 Docker Hardened Image와 같은 방식으로 사용할 수 있으며, 규제 산업이나 암호화 검증을 요구하는 규정 준수 프레임워크 하에서 운영되는 팀에 이상적이에요.

FIPS 변형에 더해 일부 Docker Hardened Images는 STIG 준비 변형도 포함해요. 이 이미지들은 사용자 정의 STIG 기반 프로파일에 대해 스캔되고, 감사·규정 준수 보고를 지원하는 서명된 STIG 스캔 증명과 함께 제공돼요. STIG 준비 변형을 식별하려면 Docker Hub 카탈로그의 이미지 태그 목록에서 Compliance 열의 STIG를 찾으세요.

호환성 변형 (Compatibility variants)

일부 Docker Hardened Images는 호환성 변형을 포함해요. 이 변형들은 최소 기본 이미지를 부풀리지 않고 특정 사용 사례를 위한 추가 도구와 구성을 제공해요.

호환성 변형은 다음을 지원하도록 만들어졌어요:

  • Helm 차트 호환성: Helm 차트와 Kubernetes로 배포되고, 인기 Helm 차트와의 매끄러운 통합을 위한 특정 런타임 구성이나 유틸리티를 요구하는 애플리케이션.
  • 특수 애플리케이션 사용 사례: 최소 이미지에 없는 선택적 도구가 필요한 애플리케이션.

별도의 이미지 풍미로 제공함으로써 DHI는 최소 이미지를 날씬하고 안전하게 유지하면서, 전용 변형에서 필요한 도구를 제공해요. 이 접근은 표준 배포의 최소 공격 표면을 유지하면서 필요할 때 특수 요구 사항을 지원해요.

호환성 변형은 -compat를 포함한 태그로 알아볼 수 있어요.

Helm 차트나 특정 도구 요구 사항이 있는 애플리케이션처럼 최소 런타임 너머의 추가 도구가 배포에 필요할 때 호환성 변형을 사용하세요.

Socket Firewall 변형 (Socket Firewall variants)

일부 Docker Hardened Images는 Socket Firewall 변형을 포함해요. 이들은 개발과 CI 빌드 중 패키지 매니저 활동을 모니터링하고 악성 패키지를 차단하도록 Socket이 사전 설치된 dev 변형이에요.

태그 접미사로 식별되는 두 계층이 제공돼요:

  • -sfw-dev: Socket Firewall Free. API 키 불필요.
  • -sfw-ent-dev: Socket Firewall Enterprise. Socket의 API 키 필요.

모든 이미지가 두 계층을 모두 제공하는 것은 아니에요.

이미지별 변형 (Image-specific variants)

일부 이미지는 일반 dev, compat, sfw 패턴을 넘어서는 변형을 포함해요. 이들은 그 이미지에 특정한 별개의 에디션, 번들된 도구, 런타임 구성을 나타내요. 예시로 웹 서버 통합용 PHP-FPM 변형, 더 빠른 시작을 위한 네이티브 바이너리 빌드, 또는 특정 데이터베이스 에디션이 있어요.

이 변형들은 태그 접미사로 식별할 수 있어요. 태그 접미사의 이미지 이름이 보통 포함되거나 다른 내용을 반영해요.

더 알아보기 (Learn more)