Docker Buildx Bake SBOM 사용법 완벽 가이드! Container Software 구성 요소 분석하기

Docker Image를 운영 환경에서 사용할 때는 단순히 Image가 정상적으로 실행되는 것뿐만 아니라 내부에 어떤 Software가 포함되어 있는지도 확인해야 합니다.

특히 서버 운영 환경에서는 다음 정보가 중요합니다.

  • 어떤 Package가 설치되어 있는가?
  • 어떤 Library Version을 사용하는가?
  • 취약점이 존재하는 Package는 없는가?
  • 배포된 Image를 어떻게 관리할 것인가?

기존 방식:

Dockerfile

↓

Image 생성

↓

운영 서버 배포

문제:

Image 내부 구성 요소 확인 어려움

예:

Node.js Image

↓

수백 개 Package 포함

↓

직접 확인 어려움

Docker Buildx Bake에서는 SBOM(Software Bill of Materials) 기능을 사용하여 Image 내부 Software 구성 정보를 생성하고 관리할 수 있습니다.

예:

docker buildx bake production \
--attest type=sbom

결과:

Image Build

↓

SBOM 생성

↓

Package 목록 저장

이번 글에서는 Docker Buildx Bake SBOM의 개념부터 SBOM 생성 방법, 취약점 관리, CI/CD 활용, Production 보안 운영까지 자세히 알아보겠습니다.

Docker Buildx Bake SBOM이란 무엇인가?

SBOM은 Software Bill of Materials의 약자로, Software 구성 요소 목록을 의미합니다.

쉽게 설명하면:

Docker Image

↓

포함된 모든 Software 목록

입니다.

예:

Application Image

├── Ubuntu

├── OpenSSL

├── Node.js

├── npm Package

└── Application Code

SBOM은 이러한 구성 요소를 문서화합니다.

Docker Buildx Bake SBOM이 필요한 이유

Container Image는 다양한 Package를 포함합니다.

예:

Node Image

↓

Node Runtime

↓

System Library

↓

npm Package

문제:

  • 취약점 확인 어려움
  • 오래된 Package 관리 어려움
  • 보안 감사 대응 어려움

SBOM 사용:

Image

↓

Software 목록 확인

↓

취약점 분석

장점:

  • 보안 관리 향상
  • Package 추적 가능
  • 취약점 대응 가능
  • 기업 보안 기준 대응

Docker Buildx Bake SBOM 기본 사용법

명령어:

docker buildx bake app \
--attest type=sbom

동작:

Docker Build

↓

Package 분석

↓

SBOM 생성

↓

Image 연결

Docker Buildx Bake SBOM docker-bake.hcl 설정

Bake 파일에서도 설정 가능합니다.

예:

target "production" {

  attest = [

    "type=sbom"

  ]

}

실행:

docker buildx bake production

결과:

Image 생성

+

SBOM 정보 생성

Docker Buildx Bake SBOM과 Provenance 차이

SBOM과 Provenance는 비슷해 보이지만 목적이 다릅니다.

SBOM

Software 구성 정보 관리

예:

Package

↓

Version

↓

License

Provenance

Build 과정 정보 관리

예:

Source

↓

Builder

↓

Build 과정

비교:

기능관리 정보
SBOMImage 내부 Software
ProvenanceBuild 과정 정보

보안 환경에서는 두 가지를 함께 사용하는 경우가 많습니다.

Docker Buildx Bake SBOM과 취약점 관리

SBOM은 Container 보안 분석에 활용됩니다.

예:

SBOM 생성

↓

Package 목록 확인

↓

취약점 검사

↓

업데이트 진행

예:

OpenSSL 1.x

↓

취약점 발견

↓

최신 Version 업데이트

운영 서버에서는 매우 중요한 과정입니다.

Docker Buildx Bake SBOM CI/CD 활용

CI/CD Pipeline에서 자동 SBOM 생성이 가능합니다.

구조:

Code Push

↓

CI 실행

↓

Docker Build

↓

SBOM 생성

↓

보안 검사

↓

배포

예:

- name: Build Image

  run: |

    docker buildx bake production \
    --attest type=sbom

효과:

  • 배포 전 보안 검사
  • 자동 Compliance 관리
  • Image 품질 향상

Docker Buildx Bake SBOM Registry 저장

Registry Push와 함께 사용할 수 있습니다.

예:

docker buildx bake production \
--push \
--attest type=sbom

구조:

Container Registry

├── Image

└── SBOM 정보

Image와 Software 정보를 함께 관리할 수 있습니다.

Docker Buildx Bake SBOM Multi-platform 활용

Multi-platform Image에서도 SBOM 생성이 가능합니다.

예:

target "production" {

  platforms = [

    "linux/amd64",

    "linux/arm64"

  ]

  attest = [

    "type=sbom"

  ]

}

결과:

amd64 Image

+

arm64 Image

↓

각 Platform SBOM 생성

Docker Buildx Bake SBOM 실무 예제

프로젝트:

project/

├── Dockerfile

├── docker-bake.hcl

└── app/

docker-bake.hcl:

target "production" {

  tags = [

    "registry.company.com/app:v1"

  ]

  attest = [

    "type=sbom",

    "type=provenance"

  ]

}

실행:

docker buildx bake production --push

결과:

Image Build

↓

SBOM 생성

↓

Provenance 생성

↓

Registry 저장

Docker Buildx Bake SBOM 확인 방법

Image 정보 확인:

docker buildx imagetools inspect image-name

확인:

  • SBOM 정보
  • Attestation 정보
  • Manifest

보안 도구와 연동:

SBOM

↓

취약점 Scanner

↓

결과 확인

Docker Buildx Bake SBOM 문제 해결

SBOM이 생성되지 않는 경우

확인:

  • Buildx Version
  • Builder 지원 여부
  • Registry Push 여부

Registry에서 SBOM 확인 불가

확인:

  • --push 사용
  • Registry 지원 여부

Build 시간이 증가하는 경우

원인:

Package 분석 과정 추가

해결:

  • Release Build에서 적용
  • CI 단계 분리

Docker Buildx Bake SBOM 사용 시 주의사항

첫 번째는 SBOM에 포함되는 Software 정보를 관리해야 합니다.

두 번째는 공개 Registry에서는 노출 범위를 고려해야 합니다.

세 번째는 Production Image는 정기적인 SBOM 검사가 필요합니다.

네 번째는 Vulnerability Scanner와 함께 사용하는 것이 좋습니다.

Best Practice

Docker Buildx Bake SBOM 활용 방법:

  • Production Image 적용
  • CI/CD 자동 생성
  • Vulnerability 검사 연결
  • Provenance 함께 사용
  • Registry 관리
  • 정기 Package 점검

자주 묻는 질문

Docker Buildx Bake SBOM은 무엇인가요?

Docker Image 내부 Software 구성 요소 목록을 생성하는 기능입니다.

SBOM이 왜 필요한가요?

Container 내부 Package와 취약점을 관리하기 위해 필요합니다.

Provenance와 같이 사용할 수 있나요?

가능합니다.

두 기능을 함께 사용하면 Image 구성과 Build 과정을 모두 검증할 수 있습니다.

운영 서버에서도 필요한가요?

대규모 서비스와 보안 관리가 필요한 환경에서는 매우 유용합니다.

마무리

Docker Buildx Bake SBOM은 Container 보안을 강화하기 위한 핵심 기능입니다.

Image 내부에 포함된 Software 구성 요소를 정확하게 파악하면 취약점 관리와 보안 감사 대응이 쉬워집니다.

특히 서버 운영, Kubernetes, Cloud 환경에서는 SBOM과 Provenance를 함께 활용하는 방식이 점점 중요해지고 있습니다.

댓글 남기기