Introduction
Les attestations d’artefact vous permettent de créer des garanties de provenance et d’intégrité non vérifiables pour le logiciel que vous créez.
Par défaut, les attestations sont stockées dans l’API d’attestation de GitHub, que gh attestation verify
interroge quand vous vérifiez votre attestation. Cette commande contacte également les serveurs de GitHub pour rechercher les éléments clés mis à jour à utiliser pour vérifier l’attestation.
Cette commande peut fonctionner sans connectivité Internet, mais vous devez manuellement fournir le bundle d’attestation et le matériel de clé dans la racine approuvée.
Avant de commencer ce guide, vous devez utiliser la génération d’attestations d’artefact. Consulter « Utilisation d’attestations d’artefact pour établir la provenance des builds ».
Étape 1 : Télécharger le bundle d’attestation
Tout d’abord, obtenez le bundle d’attestation à partir de l’API d’attestation.
Vous pouvez le faire avec la commande suivante à partir d’un ordinateur en ligne :
gh attestation download PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME
gh attestation download PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME
Voici un exemple de sortie de cette commande :
Wrote attestations to file sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl.
Any previous content has been overwritten
The trusted metadata is now available at sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl
Étape 2 : Télécharger les racines approuvées
Ensuite, obtenez le matériel clé auprès des racines approuvées.
Les attestations d’artefact utilisent l’instance publique Sigstore correcte pour les dépôts publics et l’instance Sigstore de GitHub pour les dépôts privés. Vous pouvez utiliser une commande pour obtenir les deux racines approuvées :
gh attestation trusted-root > trusted_root.jsonl
gh attestation trusted-root > trusted_root.jsonl
Mise à jour des informations racines approuvées dans un environnement hors connexion
Il est recommandé de générer un nouveau fichier trusted_root.jsonl
chaque fois que vous importez de nouveaux documents signés dans votre environnement hors connexion.
Le matériel de clé dans trusted_root.jsonl
n’a pas de date d’expiration intégrée. Par conséquent, tout ce qui est signé avant de générer le fichier racine approuvé continuera à être vérifié correctement. Tout ce qui est signé après la génération du fichier est vérifié jusqu’à ce que l’instance Sigstore change de matériel de clé, ce qui se produit généralement quelques fois par an. Vous ne saurez pas si le matériel de clé a été révoqué depuis la dernière génération du fichier racine approuvé.
Étape 3 : Effectuer la vérification hors connexion
Vous pouvez maintenant vérifier l’artefact hors connexion.
Dans votre environnement hors connexion, vous devez importer :
- GitHub CLI
- Votre artefact
- Le fichier de bundle
- Le fichier racine approuvé
Vous pouvez ensuite effectuer une vérification hors connexion avec la commande suivante :
gh attestation verify PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME --bundle sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl --custom-trusted-root trusted_root.jsonl
gh attestation verify PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME --bundle sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl --custom-trusted-root trusted_root.jsonl
Conclusion
Vous vérifiez maintenant les attestations d’artefact dans un environnement hors connexion. Nous vous recommandons d’importer une nouvelle racine approuvée chaque fois que vous introduisez de nouveaux artefacts signés dans votre environnement hors connexion.