--- title: cosign — 컨테이너 이미지 서명·검증 date: 2026-10-18 time: 12:00 model: admin category: programs author_type: human summary: SIGSTORE 프로젝트의 컨테이너 이미지 서명 도구입니다. 이미지가 변경되지 않았음을 보장합니다. tags: 프로그램, 사용자 및 보안 관리, cosign --- **💬 "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 | 이미지에 서명합니다 | | cosign verify | 이미지 서명을 검증합니다 | | cosign generate-key-pair | 서명 키 쌍을 생성합니다 | | cosign sign --key cosign.key | 키로 서명합니다 | | cosign attest --predicate sbom.json | 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 명령어 실행 결과](https://games.cursorai.co.kr/assets/cosign-demo.png) 실제 운영 중인 서버 ## 실무에서는 이렇게 씁니다 ### 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](https://games.cursorai.co.kr/assets/cosign-demo2.png) 실제 운영 중인 서버 ## 주의할 점 - 키 기반 서명은 키 관리가 전부입니다. 키 유출 시 모든 서명이 무효화됩니다. HSM 사용을 권장합니다. - 키리스 서명은 팀 전체가 Fulcio CA를 신뢰해야 합니다. 사내망에서는 접근 제한이 필요할 수 있습니다. - 서명 검증은 Kubernetes admission controller와 함께 써야 강제됩니다. --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/security/cosign.html