Docker Buildx Bake Attestations 사용법 완벽 가이드! 이미지 보안 검증 및 메타데이터 관리하기

Docker 이미지를 운영 환경에서 사용할 때 단순히 이미지를 생성하는 것만으로는 충분하지 않습니다.

최근에는 다음과 같은 정보 관리가 중요해지고 있습니다.

  • 이미지가 어디서 생성되었는지
  • 어떤 소스 코드로 빌드되었는지
  • 빌드 과정이 안전한지
  • 이미지 내부 구성 요소가 무엇인지
  • 보안 취약점 확인이 가능한지

이러한 문제를 해결하기 위해 Docker Buildx에서는 Attestations(증명 정보) 기능을 제공합니다.

Docker Buildx Bake에서는 빌드 과정에서 이미지에 대한 추가 메타데이터를 생성할 수 있습니다.

예:

docker-bake.hcl

target "app" {

  tags = [
    "company/app:v1"
  ]

  attest = [
    "type=provenance",
    "type=sbom"
  ]

}

실행:

docker buildx bake app --push

결과:

Docker Image 생성

↓

Provenance 정보 생성

↓

SBOM 정보 생성

↓

Registry 저장

이번 글에서는 Docker Buildx Bake Attestations의 개념부터 Provenance, SBOM 생성, 보안 검증, CI/CD 활용 방법까지 자세히 알아보겠습니다.

Docker Buildx Bake Attestations란 무엇인가?

Docker Buildx Bake Attestations는 Docker Image와 함께 추가적인 증명 정보를 생성하는 기능입니다.

일반적인 Image:

Docker Image

↓

Container 실행

Attestation 적용:

Docker Image

+

Build 정보

+

Software 목록

+

검증 데이터

즉, 이미지가 어떻게 만들어졌는지 확인할 수 있는 정보를 함께 저장합니다.

Docker Buildx Bake Attestations가 필요한 이유

현대적인 서버 환경에서는 공급망 보안(Supply Chain Security)이 중요합니다.

기존 방식:

Docker Image

↓

누가 만들었는지 확인 어려움

Attestation 사용:

Docker Image

↓

빌드 정보 확인

↓

출처 검증 가능

장점:

  • 이미지 신뢰성 향상
  • 보안 감사 가능
  • 배포 안정성 증가
  • 취약점 분석 지원

Docker Buildx Bake Attestations 종류

대표적으로 두 가지 Attestation을 사용합니다.

Provenance Attestation

빌드 과정 정보를 기록합니다.

포함 정보:

  • 빌드 시간
  • Build 명령
  • 소스 정보
  • Build 환경

설정:

attest = [
  "type=provenance"
]

생성된 정보로 이미지 생성 과정을 확인할 수 있습니다.

SBOM Attestation

Software Bill of Materials의 약자입니다.

이미지 내부에 포함된 소프트웨어 목록을 생성합니다.

포함 정보:

  • 패키지 목록
  • 라이브러리 정보
  • 버전 정보

설정:

attest = [
  "type=sbom"
]

보안 취약점 분석에 활용됩니다.

Docker Buildx Bake Attestations 기본 사용법

docker-bake.hcl:

target "production" {

  context = "."

  tags = [
    "company/app:v1"
  ]

  attest = [
    "type=provenance",
    "type=sbom"
  ]

}

실행:

docker buildx bake production --push

결과:

Image 생성

↓

Provenance 생성

↓

SBOM 생성

↓

Registry Push

Docker Buildx Bake Provenance 설정하기

Provenance는 기본 빌드 정보를 기록합니다.

예:

target "app" {

  attest = [
    "type=provenance"
  ]

}

생성되는 정보:

Build 정보

├── Builder 정보

├── Source 정보

├── Build 시간

└── 설정 정보

CI/CD 환경에서 이미지 출처 확인에 유용합니다.

Docker Buildx Bake SBOM 설정하기

SBOM은 이미지 내부 소프트웨어 목록을 제공합니다.

설정:

target "app" {

  attest = [
    "type=sbom"
  ]

}

활용:

  • 보안 검사
  • 라이선스 관리
  • 취약점 분석

예:

Image

├── Ubuntu

├── OpenSSL

├── Python

└── Application Library

포함된 구성 요소를 확인할 수 있습니다.

Docker Buildx Bake Attestations와 Registry 저장

Attestation 정보는 Registry에 함께 저장됩니다.

예:

docker buildx bake app --push

저장 구조:

Registry

├── Image

├── Provenance

└── SBOM

이미지를 가져오는 사용자는 해당 정보를 확인할 수 있습니다.

Docker Buildx Bake Attestations CI/CD 활용

GitHub Actions 예:

- name: Build Image

  run: |

    docker buildx bake \
    production \
    --push

docker-bake.hcl:

target "production" {

  attest = [
    "type=provenance",
    "type=sbom"
  ]

}

자동 흐름:

Code Push

↓

CI 실행

↓

Docker Build

↓

Attestation 생성

↓

Registry 저장

Docker Buildx Bake Attestations와 Kubernetes 활용

Kubernetes 환경에서는 많은 이미지가 운영됩니다.

문제:

어떤 코드로 만들어졌는가?

↓

확인 어려움

Attestation 적용:

Image

↓

Provenance 확인

↓

배포 신뢰성 향상

대규모 Kubernetes 환경에서 이미지 검증에 활용할 수 있습니다.

Docker Buildx Bake Attestations 실무 예제

프로젝트:

project/

├── Dockerfile

├── docker-bake.hcl

└── deployment.yaml

docker-bake.hcl:

target "production" {

  tags = [
    "registry.company.com/app:v1"
  ]

  platforms = [
    "linux/amd64",
    "linux/arm64"
  ]

  attest = [
    "type=provenance",
    "type=sbom"
  ]

}

실행:

docker buildx bake production --push

결과:

Docker Image

+

Build Metadata

+

Software Inventory

보안성이 강화된 Image를 생성할 수 있습니다.

Docker Buildx Bake Attestations 확인 방법

빌드 후 Image 정보를 확인합니다.

명령:

docker buildx imagetools inspect company/app:v1

확인 가능:

  • Image Manifest
  • Platform 정보
  • Attestation 정보

Docker Buildx Bake Attestations 문제 해결

Attestation이 생성되지 않는 경우

확인:

docker buildx version

최신 Buildx 버전 사용이 필요합니다.

Registry Push 실패

확인:

docker login

Registry 인증 상태를 확인합니다.

SBOM 정보 부족

확인:

  • Base Image
  • Package Manager
  • Build 설정

Docker Buildx Bake Attestations 사용 시 주의사항

첫 번째는 Attestation은 Image 크기를 증가시킬 수 있습니다.

두 번째는 Registry가 OCI Artifact 저장을 지원해야 합니다.

세 번째는 민감한 Build 정보 노출 여부를 확인해야 합니다.

네 번째는 운영 환경에서는 Provenance 정책을 정하는 것이 좋습니다.

Best Practice

Docker Buildx Bake Attestations 활용 방법:

  • Production Image에 적용
  • Provenance 활성화
  • SBOM 생성
  • Registry 저장
  • CI/CD 자동화 연결
  • 보안 검사 시스템 연동

자주 묻는 질문

Docker Buildx Bake Attestations는 무엇인가요?

Docker Image와 함께 빌드 증명 정보를 생성하는 기능입니다.

Provenance와 SBOM 차이는 무엇인가요?

Provenance는 이미지가 어떻게 만들어졌는지 기록하고, SBOM은 이미지 내부 소프트웨어 목록을 제공합니다.

Kubernetes에서도 사용할 수 있나요?

가능합니다.

Registry에 저장된 Attestation 정보를 활용하여 이미지 검증에 사용할 수 있습니다.

CI/CD에서 자동 생성할 수 있나요?

가능합니다.

GitHub Actions, GitLab CI, Jenkins 등과 함께 사용할 수 있습니다.

마무리

Docker Buildx Bake Attestations는 단순한 Docker Image 생성을 넘어 이미지의 신뢰성과 보안성을 높이는 기능입니다.

Provenance를 통해 빌드 과정을 기록하고 SBOM을 통해 내부 소프트웨어 구성을 관리할 수 있어 현대적인 DevOps 환경에서 중요한 역할을 합니다.

특히 Kubernetes, CI/CD, Private Registry 환경에서는 Docker Buildx Bake Attestations를 적용하면 더욱 안전하고 검증 가능한 Docker 운영 환경을 구축할 수 있습니다.

댓글 남기기