sbx kit sign — 키트 아티팩트 서명
sbx kit sign — 키트 아티팩트 서명
sandbox kit의 하위 명령인 sbx kit sign은 키트 아티팩트에 cosign 호환 Sigstore 서명을 만들어요. 로컬 디렉토리면 별도 서명 번들 파일로, OCI 참조면 OCI referrer로 서명을 붙여서, 키트의 무결성과 발신자를 검증할 수 있게 해요.
출처: 문서
본문
실험적(Experimental)
이 명령은 실험적이에요. 실험적 기능은 테스트와 피드백을 위한 것이며, 기능이나 설계가 릴리스 사이에 예고 없이 바뀌거나 향후 릴리스에서 완전히 제거될 수 있어요.
설명 (Description)
키트 아티팩트를 cosign 호환 Sigstore 서명으로 서명해요.
로컬 디렉토리라면 spec.yaml 옆에 별도(detached) 서명 번들 kit.sig.bundle이 작성돼요. OCI 참조라면 서명이 키트 매니페스트에 OCI referrer로 붙어요.
서명은 기본적으로 키리스(keyless, Fulcio + Rekor) 방식이며, 이 경우 OIDC 신원 토큰이 필요해요. CI에서는 감지된 플랫폼(GitHub Actions, Buildkite, GCP, SPIFFE, 또는 디스크의 projected service-account 토큰)이 토큰을 자동으로 발급해요. 그 외에는 --identity-token-file이나 --identity-token으로 제공하거나, 인터랙티브 브라우저 로그인을 완료하면 돼요. 파일 형태를 선호해요: 프로세스 인자는 다른 로컬 사용자도 읽을 수 있고 셸 히스토리에 기록되거든요. 토큰은 절대 SIGSTORE_ID_TOKEN에서 읽지 않아서, 환경 변수를 설정할 수 있는 어떤 것도 토큰을 고를 수 없어요. 키 기반 서명에는 암호화되지 않은 PEM 개인 키로 --key를 사용해요.
서명 이벤트가 공개 로그로 새지 않아야 하는 비공개 키트라면 --tlog-upload=false를 전달해 Rekor transparency log를 건너뛸 수 있어요. 이는 키리스 서명에만 영향을 주고(키 기반 서명은 절대 Rekor에 업로드하지 않아요), 서명 설정이 타임스탬프 기관(timestamp authority)을 제공해 단기 인증서가 만료된 뒤에도 서명이 검증 가능한 상태를 유지하도록 해야 해요. 완전히 오프라인인 비공개 서명에는 --key로 하는 키 기반 서명을 권장해요.
옵션 (Options)
| 옵션 | 기본값 | 설명 | | --identity-token | | 키리스 서명용 OIDC 신원 토큰; 주변 CI 제공자, 그다음 인터랙티브 브라우저 로그인을 기본으로 사용 | | --identity-token-file | | OIDC 신원 토큰이 담긴 파일; 프로세스 인자에서 벗어나도록 유지 | | --key | | 키 기반 서명용 개인 키 (PEM); 키리스 서명을 하려면 생략 | | --tlog-upload | true | 키리스 서명을 Rekor transparency log에 업로드; 비공개 키트에는 false로 설정 |
전역 옵션 (Global options)
| 옵션 | 기본값 | 설명 | | --cloud | | 로컬 sandboxd 대신 Docker Cloud Sandboxes API로 디스패치 (점점 더 많은 동사 지원 — 현재 목록은 'sbx --cloud --help' 실행) | | -D, --debug | | 디버그 로깅 활성화 |
예시 (Examples)
# 로컬 키트 디렉토리를 키리스로 서명
sbx kit sign ./my-kit/
# OCI 키트를 키 기반으로 서명
sbx kit sign --key cosign.key ghcr.io/org/my-kit:1.0
# 공개 transparency log에 올리지 않고 키리스 서명
sbx kit sign --tlog-upload=false ghcr.io/org/private-kit:1.0
더 알아보기 (Learn more)
sbx kit verify로 만든 서명을 검증하고,sbx kit push --sign으로 푸시와 함께 서명해요.- 키리스 서명 원리는 Sigstore의 Fulcio와 Rekor를 참고해요.