SLSA provenance 명세
GitLab v19.4Offering: GitLab.com
요약
이 기능의 가용성은 기능 플래그로 제어됩니다. SLSA provenance 명세는 buildType 참조를 문서화하고 공개할 것을 요구합니다. 자세한 내용은 SLSA의 buildType 문서를 참조합니다. 이 공식 SLSA Provenance buildType 참조는 다음과 같습니다.
히스토리
- GitLab 18.3에서
slsa_provenance_statement라는 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다.
이 기능의 가용성은 기능 플래그로 제어됩니다. 자세한 내용은 히스토리를 참조합니다. 이 기능은 테스트용으로 제공되며, 프로덕션 환경에서 사용할 준비가 되어 있지 않습니다.
SLSA provenance 명세는 buildType 참조를 문서화하고
공개할 것을 요구합니다. 이 참조는 GitLab SLSA attestation을 사용하는 이들이 GitLab SLSA provenance
statement에 고유한 특정 필드를 파싱하는 데 도움을 주기 위한 것입니다.
자세한 내용은 SLSA의 buildType 문서를
참조합니다.
buildType#
이 공식 SLSA Provenance buildType 참조는 다음과
같습니다.
- GitLab CI/CD job의 실행을 설명합니다.
- GitLab에서 호스팅하고 관리합니다.
설명#
이 buildType은 소프트웨어 아티팩트를 빌드하는 워크플로의 실행을 설명합니다.
사용자는 인식되지 않는 외부 매개변수를 무시해야 합니다. 어떤 변경도 기존 외부 매개변수의 시맨틱을 변경해서는 안 됩니다.
외부 매개변수#
외부 매개변수는 다음과 같습니다.
| Field | Value |
|---|---|
source |
프로젝트의 URL입니다. |
entryPoint |
빌드를 트리거한 CI/CD job의 이름입니다. |
variables |
빌드에 사용된 다음 CI/CD 변수의 값입니다: CI_PIPELINE_ID, CI_PIPELINE_URL, CI_JOB_ID, CI_JOB_URL, CI_JOB_NAME, CI_PROJECT_ID, CI_PROJECT_NAME. |
내부 매개변수#
내부 매개변수는 기본적으로 채워집니다.
| Field | Value |
|---|---|
name |
러너의 이름입니다. |
executor |
러너 executor입니다. |
architecture |
CI/CD job이 실행되는 아키텍처입니다. |
job |
빌드를 트리거한 CI/CD job의 ID입니다. |
예시#
다음 예시는 GitLab이 생성한 provenance statement의 형식을 보여줍니다.
{
"_type": "https://in-toto.io/Statement/v1",
"subject": [
{
"name": "artifacts.zip",
"digest": {
"sha256": "717a1ee89f0a2829cf5aad57054c83615675b04baa913bdc19999d7519edf3f2"
}
}
],
"predicateType": "https://slsa.dev/provenance/v1",
"predicate": {
"buildDefinition": {
"buildType": "",
"externalParameters": {
"source": "http://gdk.test:3000/root/repo_name",
"entryPoint": "build-job",
"variables": {
"CI_PIPELINE_ID": "576",
"CI_PIPELINE_URL": "http://gdk.test:3000/root/repo_name/-/pipelines/576",
"CI_JOB_ID": "412",
"CI_JOB_URL": "http://gdk.test:3000/root/repo_name/-/jobs/987",
"CI_JOB_NAME": "job_name",
"CI_PROJECT_ID": "123",
"CI_PROJECT_NAME": "repo_name",
}
},
"internalParameters": {
"architecture": "arm64",
"executor": "docker",
"job": 412,
"name": "9-mfdkBG"
},
"resolvedDependencies": [
{
"uri": "http://gdk.test:3000/root/repo_name",
"digest": {
"gitCommit": "a288201509dd9a85da4141e07522bad412938dbe"
}
}
]
},
"runDetails": {
"builder": {
"id": "http://gdk.test:3000/groups/user/-/runners/33",
"version": {
"gitlab-runner": "4d7093e1"
}
},
"metadata": {
"invocationId": 412,
"startedOn": "2025-06-05T01:33:18Z",
"finishedOn": "2025-06-05T01:33:23Z"
}
}
}
}