InfoGrab Docs

Sigstore를 사용한 키 없는 서명 및 검증

GitLab CI/CD에서 Sigstore와 Cosign을 사용하여 컨테이너 이미지와 빌드 아티팩트에 키 없는 서명 및 검증을 수행하는 방법을 알아보세요.

Sigstore 프로젝트는 GitLab CI/CD로 빌드된 컨테이너 이미지에 키 없는 서명을 사용할 수 있는 Cosign 이라는 CLI를 제공합니다. 키 없는 서명은 개인 키를 관리, 보호 및 교체할 필요가 없다는 점을 포함하여 많은 이점이 있습니다. Cosign은 서명에 사용할 단기 키 쌍을 요청하고, 인증서 투명성 로그에 기록한 다음 폐기합니다. 키는 파이프라인을 실행한 사용자의 OIDC 신원을 사용하여 GitLab 서버에서 얻은 토큰을 통해 생성됩니다. 이 토큰에는 토큰이 CI/CD 파이프라인에 의해 생성되었음을 인증하는 고유한 클레임이 포함됩니다. 자세한 내용은 키 없는 서명에 대한 Cosign 문서 를 참조하세요. GitLab OIDC 클레임과 Fulcio 인증서 확장 간의 매핑에 대한 자세한 내용은 OIDC 토큰 클레임을 Fulcio OID에 매핑하기 의 GitLab 열을 참조하세요. 전제 조건: GitLab.com을 사용해야 합니다. 프로젝트의 CI/CD 구성이 프로젝트에 위치해야 합니다. Cosign을 사용하여 컨테이너 이미지 및 빌드 아티팩트 서명 또는 검증 # Cosign을 사용하여 컨테이너 이미지와 빌드 아티팩트를 서명하고 검증할 수 있습니다. 전제 조건: >= 2.0.1 버전의 Cosign을 사용해야 합니다. 알려진 문제 CI/CD 구성 파일의 id_tokens 부분은 빌드 및 서명 대상 프로젝트에 위치해야 합니다. AutoDevOps, 다른 저장소에서 포함된 CI 파일, 자식 파이프라인은 지원되지 않습니다. 이 제한 사항을 제거하기 위한 작업은 에픽 11637 에서 추적 중입니다. 모범 사례 : 서명 전에 이미지/아티팩트가 변조되는 것을 방지하기 위해 동일한 job에서 이미지/아티팩트를 빌드하고 서명하세요. 컨테이너 이미지를 서명할 때 태그 대신 다이제스트(변경 불가)에 서명하세요. GitLab ID 토큰 은 Cosign의 키 없는 서명 에 사용할 수 있습니다. 토큰에는 aud 클레임으로 sigstore 가 설정되어 있어야 합니다. SIGSTORE_ID_TOKEN 환경 변수에 설정하면 Cosign이 토큰을 자동으로 사용할 수 있습니다. Cosign 설치 방법에 대한 자세한 내용은 Cosign 설치 문서 를 참조하세요. 서명 # 컨테이너 이미지 # Cosign.gitlab-ci.yml 템플릿을 사용하여 GitLab CI에서 컨테이너 이미지를 빌드하고 서명할 수 있습니다. 서명은 이미지와 동일한 컨테이너 저장소에 자동으로 저장됩니다. include: - template: Cosign.gitlab-ci.yml 컨테이너 서명에 대한 자세한 내용은 Cosign 컨테이너 서명 문서 를 참조하세요. 빌드 아티팩트 # 다음 예시는 GitLab CI에서 빌드 아티팩트를 서명하는 방법을 보여줍니다. 서명 검증에 사용되는 cosign sign-blob 으로 생성된 cosign.bundle 파일을 저장해야 합니다. 아티팩트 서명에 대한 자세한 내용은 Cosign 블롭 서명 문서 를 참조하세요. build_and_sign_artifact