InfoGrab DocsInfoGrab Docs

SLSA 레벨 3 출처 증명(Provenance Attestation)

GitLab에서 SLSA 레벨 3 호환 출처 증명을 생성하고, 아티팩트 및 컨테이너에 대한 증명을 확인하고 검증하는 방법을 설명합니다.

Status: Experiment 히스토리 GitLab 18.3에서 slsa_provenance_statement 라는 플래그 와 함께 도입됨 . 기본적으로 비활성화됨. 이 기능의 사용 가능 여부는 기능 플래그로 제어됩니다. 자세한 내용은 히스토리를 참조하세요. 이 기능은 테스트 용도로 사용할 수 있지만, 프로덕션 환경에서는 아직 사용할 준비가 되지 않았습니다. GitLab은 SLSA 레벨 3 호환 출처 증명을 생성할 수 있습니다. 레벨 2와 레벨 3 출처 증명의 주요 차이점은 격리 및 "위조 불가" 요구 사항 입니다. 증명에 대한 자세한 내용은 GitLab SLSA 출처 명세 를 참조하세요. 전제 조건 # 컨테이너 또는 아티팩트에 대한 증명이 이루어지려면 다음 조건을 충족해야 합니다: 빌드와 연결된 프로젝트가 공개(public) 상태여야 합니다. 이 요구 사항은 Rekor 에 정보가 실수로 공개되는 것을 방지하기 위해 적용됩니다. 빌드는 build Stage를 사용해야 합니다. 프로젝트에 대해 slsa_provenance_statement 기능 플래그가 활성화되어 있어야 합니다. 아티팩트에 대한 증명 생성 # 빌드에서 생성된 모든 아티팩트에 대한 증명을 생성하려면: ATTEST_BUILD_ARTIFACTS CI/CD 변수를 true 로 설정합니다. 아티팩트는 100 MB를 초과하지 않아야 합니다. 예를 들어, GitLab은 다음 CI/CD job의 아티팩트에 대한 증명을 생성합니다: build-job: stage: build variables: ATTEST_BUILD_ARTIFACTS: true script: - echo "Hello, $GITLAB_USER_LOGIN!" - echo "Hello, $GITLAB_USER_LOGIN!" > test.txt artifacts: paths: - test.txt 컨테이너에 대한 증명 생성 # 컨테이너에 대한 증명을 생성하려면: CI/CD 변수 ATTEST_CONTAINER_IMAGES 를 true 로 설정합니다. IMAGE_DIGEST 변수를 다음 형식의 유효한 SHA256 참조로 설정합니다: sha256:9bf00f5090086aba643d21f8ed663576855add63b7b780b4eaffc5124812c3c9 org/project-name@sha256:9bf00f5090086aba643d21f8ed663576855add63b7b780b4eaffc5124812c3c9 9bf00f5090086aba643d21f8ed663576855add63b7b780b4eaffc5124812c3c9 예를 들어, GitLab은 다음 CI/CD job에서 생성된 이미지에 대한 증명을 생성합니다: build-dockerhub: stage: build variables: ATTEST_CONTAINER_IMAGES: true CI_REGISTRY: docker.io DOCKER_IMAGE_NAME: sroqueworcel/test-slsa-sbom:stable script: - echo $DOCKER_REGI