Auf dieser Seite wird beschrieben, wie Sie Ihre Softwarelieferkette schützen. Dazu konfigurieren Sie die Binärautorisierung so, dass nur von Cloud Build erstellte Container-Images bereitgestellt werden können.
Sie konfigurieren diese Bereitstellungskontrolle durch Anfordern des Attestierers built-by-cloud-build
in Ihrer Richtlinie für die Binärautorisierung. Cloud Build erstellt automatisch den Attestierer built-by-cloud-build
in Ihrem Projekt, wenn Sie einen Build ausführen, der Images generiert. Nachdem die Images erfolgreich erstellt wurden, signiert Cloud Build automatisch Attestierungen für die Images. Im Moment der Bereitstellung überprüft die Binärautorisierung die Attestierungen mit dem Attestierer built-by-cloud-build
. Verifizierte Images dürfen bereitgestellt werden.
Images, für die die Prüfung fehlschlägt, werden nicht bereitgestellt und der Fehler wird in Cloud-Audit-Logs protokolliert.
Eine End-to-End-Anleitung, in der die Verwendung der von Cloud Build aufgezeichneten Metadaten und der Binärautorisierung beschrieben wird, finden Sie unter Signierte Herkunft und Binärautorisierung verwenden.
Hinweis
Damit Sie diese Funktion verwenden können, müssen Sie zuerst Folgendes tun:
- Binärautorisierung für die Plattform einrichten.
Richten Sie Cloud Build ein und erstellen Sie ein Image.
Richtlinie konfigurieren
In diesem Abschnitt konfigurieren Sie die Richtlinie für die Binärautorisierung so, dass der Attestierer built-by-cloud-build
erforderlich ist.
Führen Sie die folgenden Schritte aus, um die Bereitstellung von Images zu erlauben, die von Cloud Build erstellt wurden:
Console
Rufen Sie in der Google Cloud Console die Seite Binärautorisierung auf.
Im Tab Richtlinie klicken Sie auf Richtlinie bearbeiten.
Wählen Sie im Dialogfeld Richtlinie bearbeiten die Option Nur Images zulassen, die von allen folgenden Attestierern genehmigt wurden aus.
Klicken Sie auf Attestierer hinzufügen.
Führen Sie im Dialogfeld Attestierer hinzufügen die folgenden Schritte aus:
- Wählen Sie Nach Projekt und Attestierername hinzufügen aus und führen Sie die folgenden Schritte aus:
- Geben Sie im Feld Projektname das Projekt ein, in dem Sie Cloud Build ausführen.
- Klicken Sie auf das Feld Name des Attestierers und prüfen Sie, ob der Attestierer
built-by-cloud-build
verfügbar ist. - Klicken Sie auf
built-by-cloud-build
.
Alternativ können Sie Nach Attestierer-Ressourcen-ID hinzufügen auswählen. Geben Sie unter Attestierer-Ressourcen-ID Folgendes ein:
projects/PROJECT_ID/attestors/built-by-cloud-build
Ersetzen Sie
PROJECT_ID
durch das Projekt, in dem Sie Cloud Build ausführen.
- Wählen Sie Nach Projekt und Attestierername hinzufügen aus und führen Sie die folgenden Schritte aus:
Klicken Sie auf 1 Attestierer hinzufügen.
Klicken Sie auf Save Policy (Richtlinie speichern).
gcloud
Exportieren Sie Ihre vorhandene Richtlinie mit dem folgenden Befehl in eine Datei:
gcloud container binauthz policy export > /tmp/policy.yaml
Bearbeiten Sie die Richtliniendatei.
Bearbeiten Sie eine der folgenden Regeln:
defaultAdmissionRule
clusterAdmissionRules
istioServiceIdentityAdmissionRules
kubernetesServiceAccountAdmissionRules
Fügen Sie der Regel einen
requireAttestationsBy
-Block hinzu, sofern noch keiner vorhanden ist.Fügen Sie im Block
requireAttestationsBy
Folgendes hinzu:projects/PROJECT_ID/attestors/built-by-cloud-build
Ersetzen Sie
PROJECT_ID
durch das Projekt, in dem Sie Cloud Build ausführen.Speichern Sie die Richtliniendatei.
Importieren Sie die Richtliniendatei.
gcloud container binauthz policy import /tmp/policy.yaml
Das folgende Beispiel zeigt eine Richtliniendatei, die den Verweis auf
built-by-cloud-build-attestor
enthält:defaultAdmissionRule: evaluationMode: REQUIRE_ATTESTATION enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG requireAttestationsBy: - projects/PROJECT_ID/attestors/built-by-cloud-build name: projects/PROJECT_ID/policy
Ersetzen Sie
PROJECT_ID
durch die Projekt-ID, in der Sie Cloud Build ausführen.
Nächste Schritte
- Anstatt die Bereitstellung von Images nicht zuzulassen, können Sie den Probelaufmodus dazu verwenden, Richtlinienverletzungen zu protokollieren.
- Audit-Log-Ereignisse für nicht zulässige Images in Google Kubernetes Engine (GKE) oder Cloud Run ansehen.