필수 조건
이 가이드를 시작하기 전에 다음 사항을 숙지해야 합니다.
- 아티팩트 증명의 사용 및 보안상의 이점입니다. 아티팩트 증명을(를) 참조하세요.
- 아티팩트 증명을 생성하기. 아티팩트 증명을 사용하여 빌드의 출처 설정을(를) 참조하세요.
- 재사용 가능한 워크플로를 작성하고 사용하기. 워크플로 다시 사용을(를) 참조하세요.
1단계: 빌드 구성
먼저 아티팩트 증명과 재사용 가능한 워크플로를 모두 사용하여 빌드해야 합니다.
재사용 가능한 워크플로를 사용하여 빌드
재사용 가능한 워크플로를 사용하여 소프트웨어를 빌드하지 않은 경우, 빌드 단계를 수행하고 재사용 가능한 워크플로로 이동해야 합니다.
아티팩트 증명을 사용하여 빌드
소프트웨어를 빌드하는 데 사용하는 재사용 가능한 워크플로도 빌드 출처를 설정하기 위해 아티팩트 증명을 생성해야 합니다.
재사용 가능한 워크플로를 사용하여 아티팩트 증명을 생성하는 경우 호출 워크플로와 재사용 가능한 워크플로 모두에 다음 권한이 있어야 합니다.
permissions: attestations: write contents: read id-token: write
permissions:
attestations: write
contents: read
id-token: write
컨테이너 이미지를 빌드하는 경우 packages: write
권한도 포함해야 합니다.
2단계: 재사용 가능한 워크플로를 사용하여 빌드한 아티팩트 증명 확인
빌드를 사용하여 생성된 아티팩트 증명을 확인하려면 GitHub CLI에서 gh attestation verify
를 사용할 수 있습니다.
gh attestation verify
명령은 --owner
또는 --repo
플래그를 함께 사용해야 합니다. 이 플래그들은 두 가지 작업을 수행합니다.
- 증명을 가져올 위치를
gh attestation verify
에게 알려줍니다. 이는 항상 호출자 워크플로가 됩니다. - 서명을 한 워크플로가 어디에서 왔는지
gh attestation verify
에게 알려줍니다. 이는 항상attest-build-provenance
작업을 사용하는 워크플로이며 재사용할 수 있는 워크플로일 수 있습니다.
선택적으로 gh attestation verify
명령과 함께 플래그를 사용할 수 있습니다.
- 재사용 가능한 워크플로가 호출자 워크플로와 동일한 리포지토리에 없는 경우
--signer-repo
플래그를 사용하여 재사용 가능한 워크플로가 포함된 리포지토리를 지정합니다. - 아티팩트 증명이 특정 워크플로로 서명되도록 하려면
--signer-workflow
플래그를 사용하여 사용해야 하는 워크플로 파일을 지정합니다.
예를 들어 호출하는 워크플로가 ORGANIZATION_NAME/REPOSITORY_NAME/.github/workflows/calling.yml
이고 REUSABLE_ORGANIZATION_NAME/REUSABLE_REPOSITORY_NAME/.github/workflows/reusable.yml
를 사용하는 경우, 다음을 수행할 수 있습니다.
gh attestation verify -o ORGANIZATION_NAME --signer-repo REUSABLE_ORGANIZATION_NAME/REUSABLE_REPOSITORY_NAME PATH/TO/YOUR/BUILD/ARTIFACT-BINARY
gh attestation verify -o ORGANIZATION_NAME --signer-repo REUSABLE_ORGANIZATION_NAME/REUSABLE_REPOSITORY_NAME PATH/TO/YOUR/BUILD/ARTIFACT-BINARY
또는 정확한 워크플로를 지정하려는 경우 다음과 같이 수행할 수 있습니다.
gh attestation verify -o ORGANIZATION_NAME --signer-workflow REUSABLE_ORGANIZATION_NAME/REUSABLE_REPOSITORY_NAME/.github/workflows/reusable.yml PATH/TO/YOUR/BUILD/ARTIFACT-BINARY
gh attestation verify -o ORGANIZATION_NAME --signer-workflow REUSABLE_ORGANIZATION_NAME/REUSABLE_REPOSITORY_NAME/.github/workflows/reusable.yml PATH/TO/YOUR/BUILD/ARTIFACT-BINARY