Prérequis
Avant de commencer ce guide, vous devez connaître :
- Les avantages liés à l’utilisation et à la sécurité des attestations d’authenticité. Consultez Attestations d’artefacts.
- Générer des attestations d’artefacts. Consultez « Using artifact attestations to establish provenance for builds ».
- Écriture et utilisation de flux de travail réutilisables. Consultez « Réutiliser des workflows ».
Étape 1 : configuration de vos builds
Tout d’abord, nous devons élaborer des builds avec des attestations d’artefacts et un flux de travail réutilisable.
Création de builds avec un flux de travail réutilisable
Si vous n’utilisez pas déjà des flux de travail réutilisables pour développer votre logiciel, vous devrez intégrer vos étapes de développement dans un flux de travail réutilisable.
Créer des builds avec des attestations d’artefact
Le flux de travail réutilisable que vous utilisez pour créer votre logiciel doit également générer des attestations d’artefacts pour établir la provenance de la création de builds.
Lorsque vous utilisez un flux de travail réutilisable pour générer des attestations d’artefacts, le flux de travail appelant et le flux de travail réutilisable doivent disposer des autorisations suivantes.
permissions: attestations: write contents: read id-token: write
permissions:
attestations: write
contents: read
id-token: write
Si vous créez des images conteneur, vous devez également inclure l’autorisation packages: write
.
Étape 2 : vérification des attestations d’artefact générées avec un flux de travail réutilisable
Pour vérifier les attestations d’artefact générées avec vos builds, vous pouvez utiliser gh attestation verify
à partir de l’interface CLI de GitHub.
La commande gh attestation verify
nécessite l’utilisation des indicateurs --owner
ou --repo
. Ces indicateurs font deux choses.
- Ils indiquent à
gh attestation verify
à quel endroit récupérer l’attestation. Il s’agit toujours du flux de travail de l’appelant. - Ils indiquent à
gh attestation verify
l’emplacement du flux de travail qui a effectué la signature. Il s’agit toujours du flux de travail qui utilise l’actionattest-build-provenance
, qui peut être un flux de travail réutilisable.
Vous pouvez utiliser des indicateurs optionnels avec la commande gh attestation verify
.
- Si votre flux de travail réutilisable ne se trouve pas dans le même référentiel que le flux de travail de l’appelant, utilisez l’indicateur
--signer-repo
pour spécifier le référentiel qui contient le flux de travail réutilisable. - Si vous souhaitez que l’attestation d’un artefact soit signée à l’aide d’un flux de travail spécifique, utilisez l’indicateur
--signer-workflow
pour indiquer le fichier de flux de travail qui doit être utilisé.
Par exemple, si votre flux de travail appelant est ORGANIZATION_NAME/REPOSITORY_NAME/.github/workflows/calling.yml
et qu’il utilise REUSABLE_ORGANIZATION_NAME/REUSABLE_REPOSITORY_NAME/.github/workflows/reusable.yml
vous pouvez effectuer les opérations suivantes :
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
Ou si vous souhaitez spécifier le flux de travail exact :
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