English

cosign — 컨테이너 이미지 서명·검증

Linux / 사용자 및 보안 관리 / cosign.html

사용자 및 보안 관리원문등록 2026-10-18T22:00:00+09:00

💬 "cosign 명령어"

cosign는 컨테이너 이미지 서명·검증 SIGSTORE 프로젝트의 컨테이너 이미지 서명 도구입니다. 이미지가 변경되지 않았음을 보장합니다.

키 기반·키리스(fulcio) 서명을 모두 지원합니다. OCI 레지스트리에 서명을 직접 저장합니다 (별도 서버 불필요).

  • 개념: 키 기반·키리스(fulcio) 서명을 모두 지원합니다.
  • 주요 기능: OCI 레지스트리에 서명을 직접 저장합니다 (별도 서버 불필요).
  • 장점: SBOM·스캔 결과도 서명 가능합니다.
  • 활용: Kubernetes admission controller와 연동됩니다.

설치 및 다운로드

cosign는 패키지 매니저 또는 공식 스크립트로 설치합니다.

환경명령
Go installgo install github.com/sigstore/cosign/v2/cmd/cosign@latest
macOS (brew)brew install cosign
공식 바이너리github.com/sigstore/cosign/releases
확인cosign version

설치 확인은 cosign --version으로 합니다.

자주 쓰는 옵션

옵션설명
cosign sign <image>이미지에 서명합니다
cosign verify <image>이미지 서명을 검증합니다
cosign generate-key-pair서명 키 쌍을 생성합니다
cosign sign --key cosign.key <image>키로 서명합니다
cosign attest --predicate sbom.json <image>SBOM을 첨부합니다

필수 명령어 조합 3가지

  • cosign generate-key-pair — 서명 키 생성
  • cosign sign --key cosign.key myrepo/app:v1 — 키로 서명
  • cosign verify --key cosign.pub myrepo/app:v1 — 배포 전 검증

💬 "실제 서버에서 cosign를 사용하는 예시를 보여줘"

실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.

1단계 · 키 생성

서명 키 쌍을 생성합니다.

cosign generate-key-pair

2단계 · 서명

빌드한 이미지에 서명합니다.

cosign sign --key cosign.key myrepo/app:v1

3단계 · 검증

서명을 검증합니다.

cosign verify --key cosign.pub myrepo/app:v1

실제 실행 화면

cosign으로 키를 생성하고 이미지에 서명한 결과입니다.

cosign 명령어 실행 결과

실제 운영 중인 서버

실무에서는 이렇게 씁니다

1. 빌드 후 서명

상황 — 빌드한 이미지에 서명합니다.

cosign generate-key-pair
cosign sign --key cosign.key myrepo/app:v1

결과 — 서명이 OCI 레지스트리에 저장됩니다.

포인트 — 이미지 digest와 서명이 연결됩니다.

2. 배포 전 검증

상황 — 배포 전에 서명을 검증합니다.

cosign verify --key cosign.pub myrepo/app:v1

결과 — 검증 성공 시에만 배포가 허용됩니다.

포인트 — 서명 키를 가진 사람만 프로모션할 수 있습니다.

실제 실행 화면

cosign verify로 서명을 검증한 결과입니다.

cosign 명령어 실행 결과 2

실제 운영 중인 서버

주의할 점

  • 키 기반 서명은 키 관리가 전부입니다. 키 유출 시 모든 서명이 무효화됩니다. HSM 사용을 권장합니다.
  • 키리스 서명은 팀 전체가 Fulcio CA를 신뢰해야 합니다. 사내망에서는 접근 제한이 필요할 수 있습니다.
  • 서명 검증은 Kubernetes admission controller와 함께 써야 강제됩니다.