Nur von Cloud Build erstellte Images bereitstellen

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:

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

  1. Rufen Sie in der Google Cloud Console die Seite Binärautorisierung auf.

    Zur Binärautorisierung

  2. Im Tab Richtlinie klicken Sie auf Richtlinie bearbeiten.

  3. Wählen Sie im Dialogfeld Richtlinie bearbeiten die Option Nur Images zulassen, die von allen folgenden Attestierern genehmigt wurden aus.

  4. Klicken Sie auf Attestierer hinzufügen.

  5. Führen Sie im Dialogfeld Attestierer hinzufügen die folgenden Schritte aus:

    1. Wählen Sie Nach Projekt und Attestierername hinzufügen aus und führen Sie die folgenden Schritte aus:
      1. Geben Sie im Feld Projektname das Projekt ein, in dem Sie Cloud Build ausführen.
      2. Klicken Sie auf das Feld Name des Attestierers und prüfen Sie, ob der Attestierer built-by-cloud-build verfügbar ist.
      3. Klicken Sie auf built-by-cloud-build.
    2. 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.

  6. Klicken Sie auf 1 Attestierer hinzufügen.

  7. Klicken Sie auf Save Policy (Richtlinie speichern).

gcloud

  1. Exportieren Sie Ihre vorhandene Richtlinie mit dem folgenden Befehl in eine Datei:

    gcloud container binauthz policy export > /tmp/policy.yaml
    
  2. Bearbeiten Sie die Richtliniendatei.

  3. Bearbeiten Sie eine der folgenden Regeln:

    • defaultAdmissionRule
    • clusterAdmissionRules
    • istioServiceIdentityAdmissionRules
    • kubernetesServiceAccountAdmissionRules
  4. Fügen Sie der Regel einen requireAttestationsBy-Block hinzu, sofern noch keiner vorhanden ist.

  5. 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.

  6. Speichern Sie die Richtliniendatei.

  7. 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