Voraussetzungen
Bevor Sie mit dieser Anleitung beginnen, sollten Sie mit den folgenden Themen vertraut sein:
- Nutzungs- und Sicherheitsvorteile von Artefaktnachweisen. Weitere Informationen findest du unter Nachweisartefakte.
- Generieren von Artefaktnachweisen. Weitere Informationen findest du unter Verwenden von Artefaktnachweisen zur Ermittlung der Herkunft von Builds.
- Schreiben und Verwenden wiederverwendbarer Workflows. Weitere Informationen findest du unter Wiederverwenden von Workflows.
Schritt 1: Konfigurieren Ihrer Builds
Zunächst müssen wir sowohl Artefaktnachweise als auch einen wiederverwendbaren Workflow erstellen.
Erstellen mit einem wiederverwendbaren Workflow
Wenn Sie für die Erstellung Ihrer Software noch keinen wiederverwendbaren Workflow verwenden, müssen Sie Ihre Erstellungsschritte in einen wiederverwendbaren Workflow übertragen.
Erstellen mit Artefaktnachweisen
Der wiederverwendbare Workflow, den Sie zur Erstellung Ihrer Software verwenden, muss auch Artefaktnachweise erstellen, um die Herkunft des Builds zu belegen.
Wenn Sie einen wiederverwendbaren Workflow verwenden, um Artefaktnachweise zu erstellen, müssen sowohl der aufrufende Workflow als auch der wiederverwendbare Workflow über die folgenden Berechtigungen verfügen.
permissions: attestations: write contents: read id-token: write
permissions:
attestations: write
contents: read
id-token: write
Wenn Sie Containerimages erstellen, müssen Sie auch die packages: write
-Berechtigung einschließen.
Schritt 2: Überprüfen von Artefaktenachweisen, die mit einem wiederverwendbaren Workflow erstellt wurden
Um die mit Ihren Builds erzeugten Artefaktnachweise zu überprüfen, können Sie gh attestation verify
aus der GitHub CLI verwenden.
Der gh attestation verify
-Befehl erfordert entweder die Verwendung von --owner
- oder --repo
-Flags. Diese Flags führen zwei Dinge aus.
- Sie teilen
gh attestation verify
mit, woher der Nachweis zu holen ist. Dies ist immer Ihr aufrufender Workflow. - Sie teilen
gh attestation verify
mit, woher der Workflow stammt, der die Unterschrift geleistet hat. Dies ist immer der Workflow, der eineattest-build-provenance
-Aktion verwendet, was möglicherweise ein wiederverwendbarer Workflow ist.
Sie können optionale Flags mit dem Befehl gh attestation verify
verwenden.
- Wenn sich Ihr wiederverwendbarer Workflow nicht im selben Repository wie der aufrufende Workflow befindet, verwenden Sie das Flag
--signer-repo
, um das Repository anzugeben, das den wiederverwendbaren Workflow enthält. - Wenn Sie möchten, dass ein Artefaktnachweis mit einem bestimmten Workflow signiert wird, verwenden Sie das Flag
--signer-workflow
, um die zu verwendende Workflow-Datei anzugeben.
Wenn Ihr aufrufender Workflow ORGANIZATION_NAME/REPOSITORY_NAME/.github/workflows/calling.yml
ist und REUSABLE_ORGANIZATION_NAME/REUSABLE_REPOSITORY_NAME/.github/workflows/reusable.yml
verwendet, könnten Sie zum Beispiel Folgendes tun:
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
Oder wenn Sie den genauen Workflow angeben möchten:
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