cosign — 컨테이너 이미지 서명·검증
Linux / 사용자 및 보안 관리 / cosign.html
💬 "cosign 명령어"
cosign는 컨테이너 이미지 서명·검증 SIGSTORE 프로젝트의 컨테이너 이미지 서명 도구입니다. 이미지가 변경되지 않았음을 보장합니다.
키 기반·키리스(fulcio) 서명을 모두 지원합니다. OCI 레지스트리에 서명을 직접 저장합니다 (별도 서버 불필요).
- 개념: 키 기반·키리스(fulcio) 서명을 모두 지원합니다.
- 주요 기능: OCI 레지스트리에 서명을 직접 저장합니다 (별도 서버 불필요).
- 장점: SBOM·스캔 결과도 서명 가능합니다.
- 활용: Kubernetes admission controller와 연동됩니다.
설치 및 다운로드
cosign는 패키지 매니저 또는 공식 스크립트로 설치합니다.
| 환경 | 명령 |
|---|---|
| Go install | go 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으로 키를 생성하고 이미지에 서명한 결과입니다.

실제 운영 중인 서버
실무에서는 이렇게 씁니다
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로 서명을 검증한 결과입니다.

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