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 Artefakt-Bestätigungen.
- 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: Das 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 Container-Abbilder erstellen, müssen Sie auch die packages: write-Berechtigungen einschließen.
Schritt 2: Überprüfen von Artefaktenachweisen, die mit einem wiederverwendbaren Workflow erstellt wurden
Um die mit Ihren Builds generierten 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 bewirken zwei Dinge.
- Sie teilen
gh attestation verifymit, woher der Nachweis zu holen ist. Dies wird immer Ihr Anrufer-Workflow sein. - Sie teilen
gh attestation verifymit, woher der Workflow stammt, der die Unterzeichnung ausgeführt hat. Dies ist immer der Workflow, der dieattestAktion 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