증명을 오프라인으로 검증하기
증명을 오프라인으로 검증하기
아티팩트 증명은 인터넷 연결 없이도 검증할 수 있어요.
출처: 문서
본문
아티팩트 증명은 인터넷 연결 없이도 검증할 수 있어요.
사전 요구 사항
이 가이드를 시작하기 전에 빌드에 대한 아티팩트 증명을 생성하고 있어야 합니다. Using artifact attestations to establish provenance for builds 참고.
1단계: 증명 번들 다운로드하기
먼저 증명 API에서 증명 번들(attestation bundle)을 가져오세요.
온라인 상태인 머신에서 다음 명령으로 가져올 수 있습니다:
gh attestation download PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME
명령의 예시 출력은 다음과 같아요:
Wrote attestations to file sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl.
Any previous content has been overwritten
The trusted metadata is now available at sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl
2단계: 신뢰 루트 다운로드하기
다음으로 신뢰 루트(trusted roots)에서 키 자료를 가져오세요.
아티팩트 증명은 공개 저장소에는 Sigstore public good 인스턴스를, 비공개 저장소에는 GitHub의 Sigstore 인스턴스를 사용해요. 하나의 명령으로 두 신뢰 루트를 모두 가져올 수 있습니다:
gh attestation trusted-root > trusted_root.jsonl
오프라인 환경에서 신뢰 루트 정보 업데이트하기
새로 서명된 자료를 오프라인 환경으로 가져올 때마다 새 trusted_root.jsonl 파일을 생성하는 것이 모범 사례입니다.
trusted_root.jsonl의 키 자료에는 내장 만료 날짜가 없으므로, 신뢰 루트 파일을 생성하기 전에 서명된 모든 것은 계속 성공적으로 검증됩니다. 파일이 생성된 후에 서명된 것은 해당 Sigstore 인스턴스가 키 자료를 교체할 때(보통 연간 몇 번)까지 검증됩니다. 마지막으로 신뢰 루트 파일을 생성한 이후 키 자료가 폐기되었는지는 알 수 없습니다.
3단계: 오프라인 검증 수행하기
이제 아티팩트를 오프라인으로 검증할 준비가 되었습니다.
오프라인 환경으로 가져와야 할 것은:
- GitHub CLI
- 아티팩트
- 번들 파일
- 신뢰 루트 파일
그런 다음 다음 명령으로 오프라인 검증을 수행할 수 있어요:
gh attestation verify PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME --bundle sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl --custom-trusted-root trusted_root.jsonl