Überblick zur Binärautorisierung

Auf dieser Seite finden Sie eine Übersicht über die Binärautorisierung.

Was ist Binärautorisierung?

Die Binärautorisierung ist ein Google Cloud-Produkt, mit dem Sie Sicherheitsmaßnahmen für die Softwarelieferkette implementieren können, wenn Sie containerbasierte Anwendungen entwickeln und bereitstellen.

Welche Funktion hat die Binärautorisierung?

Mit der Binärautorisierung können Sie Folgendes tun:

Welche Plattformen unterstützt die Binärautorisierung?

Die Binärautorisierung unterstützt die folgenden Plattformen:

Die Binärautorisierung ist Teil einer Deployment-Architektur, die die folgenden zugehörigen Produkte enthält:

  • Artifact Registry, Container Registry und andere Registries, in denen die Images gespeichert sind, die Sie bereitstellen möchten.
  • Artefaktanalyse bietet Informationen zu Sicherheitslücken, die Sie mit der Binärautorisierung zum Steuern des Deployments verwenden können. Unabhängig davon speichert Artefaktanalyse vertrauenswürdige Metadaten, die im Autorisierungsprozess verwendet werden.
  • Sicherheitsmonitoring, ein Dashboard, mit dem Sie den Sicherheitsstatus Ihrer Anwendung über unterschiedliche Google Cloud-Produkte hinweg prüfen können, einschließlich der Binärautorisierung.
  • Cloud Build, das Attestierungen und Herkunftsbelege enthält, die von der Binärautorisierung für die Erzwingung und das Monitoring verwendet werden können.
  • Cloud Deploy ist ein verwalteter Dienst für die kontinuierliche Bereitstellung, der die Bereitstellung von Anwendungen in einer Reihe von Zielumgebungen in einer definierten Abfolge automatisiert.

Die Binärautorisierung basiert auf der Spezifikation Kritis, die Teil des Open-Source-Projekts Grafeas ist.

Hintergrund

Die Sicherheit der Softwarelieferkette soll gewährleisten, dass Software nach internen Best Practices und Standards erstellt, getestet, veröffentlicht und bereitgestellt wird.

Containerbasierte Architekturen ermöglichen es Teams, stark entkoppelte Systeme zu entwickeln (z. B. auf Mikrodienstarchitekturen basierende Systeme) und die Verwendung von Entwicklungspraktiken mit kurzem Lebenszyklus wie Continuous Integration (CI) und Continuous Deployment zu fördern (CD).

In einer containerbasierten Entwicklungsumgebung können Images in einer Abfolge von Clustern bereitgestellt werden, z. B. Tests, Staging und Freigabe, die Teil der Softwarelieferkette sind.

Die Binärautorisierung verringert das Risiko, dass in dieser Art von Umgebung defekte, anfällige oder nicht autorisierte Software bereitgestellt wird. Mit diesem Dienst können Sie verhindern, dass Images bereitgestellt werden, es sei denn, dies erfüllt eine von Ihnen definierte Richtlinie.

Die Binärautorisierung legt zwar keine internen Prozesse oder Best Practices fest, hilft Ihnen aber, Ihre eigenen Praktiken zu steuern. Dazu beschränken Sie die Bereitstellung von Images, die nicht die erforderlichen Prüfungen bestanden haben.

Lebenszyklus

Ein Deployment-Lebenszyklus für Images kann aus den folgenden Phasen bestehen, wobei das Abschließen einer Phase eine Voraussetzung für das vorangehende Vorgehen ist. Beispiel:

  1. Builds und Einheitentests
  2. Deployment in einer Entwicklungsumgebung, in der keine Nutzer betroffen sind
  3. Deployment in einer QA-Umgebung, in der nur interne Nutzer betroffen sind
  4. Deployment in einer Canary-Umgebung, in der nur ein Bruchteil der externen Nutzer betroffen ist
  5. Deployment in der Produktion

Jede Phase kann eine eigene Bereitstellungsumgebung haben, z. B. einen GKE-Cluster oder ein Google Cloud-Projekt, sowie eigene Kriterien, die erfüllt sein müssen, bevor ein Image in die nächste Phase übergehen kann. Mit der Binärautorisierung können Sie Regeln definieren, nach denen ein Image von einer Phase in eine andere übergeben wird. Außerdem haben Sie damit die Möglichkeit, diese Regeln zu erzwingen.

Attestierungen

Bei den häufigsten Anwendungsfällen der Binärautorisierung werden Attestierungen genutzt. Eine Attestierung bestätigt, dass ein bestimmtes Image wie oben beschrieben eine vorherige Phase abgeschlossen hat. Sie konfigurieren die Richtlinie für die Binärautorisierung so, dass die Attestierung geprüft wird, bevor das Image bereitgestellt werden kann. Zum Zeitpunkt de Bereitstellung muss die Binärautorisierung nur prüfen, ob die Attestierung bestätigt wurde, anstatt Aktivitäten zu wiederholen, die in früheren Phasen abgeschlossen wurden.

Zu Anwendungsfällen mit Attestierungen gehören:

  • Build-Überprüfung, bei der die Binärautorisierung mithilfe von Attestierungen prüft, ob ein Image von einem bestimmten Build-System oder einer CI-Pipeline (Continuous Integration) erstellt wurde.

    Informationen zum Einrichten einer CI-Pipeline auf der Grundlage von Cloud Build, die eine Attestierung erstellen kann, finden Sie unter Cloud Build-Einbindung.

  • Das Scannen auf Sicherheitslücken, wobei das CI-integrierte Image auch von Artefaktanalyse auf Sicherheitslücken gescannt wurde. In diesem Fall wird die Attestierung nur erstellt, wenn erkannte Sicherheitslücken eine Signaturrichtlinie für Sicherheitslücken erfüllen.

    So richten Sie eine CI-Pipeline zum Scannen auf Sicherheitslücken mit Voucher oder Kritis Signer ein.

  • Manuelle Prüfung, bei der eine Person, z. B. ein QA-Ansprechpartner, die Attestierung manuell erstellt.

    Informationen zum manuellen Erstellen einer Attestierung finden Sie unter Attestierungen erstellen.

Eine vollständige End-to-End-Bestätigungsanleitung finden Sie unter Erste Schritte mit der Google Cloud Console.

Features

Die Binärautorisierung bietet folgende Features:

  • Ein Richtlinienmodell, mit dem Sie die Einschränkungen für das Bereitstellen von Container-Images festlegen können
  • Ein Attestierungsmodell, mit dem Sie vertrauenswürdige Zertifizierungsstellen definieren können, die attestieren oder prüfen, ob die erforderlichen Prozesse in Ihrer Umgebung vor dem Deployment abgeschlossen wurden
  • Ein Erzwingungsmodul zur Bereitstellungszeit, das verhindert, dass Images bereitgestellt werden, die gegen die Richtlinie verstoßen

Richtlinienmodell

Die Binärautorisierung implementiert ein Richtlinienmodell, wobei eine Richtlinie ein Satz von Regeln ist, die das Deployment von Container-Images steuern. Regeln in einer Richtlinie geben bestimmte Kriterien an, die ein Image erfüllen muss, bevor es bereitgestellt werden kann.

Weitere Informationen zum Richtlinienmodell der Binärautorisierung und zu anderen Konzepten finden Sie unter Schlüsselkonzepte.

Einrichtung

Zum Einrichten der Binärautorisierung müssen Sie zuerst den Dienst für die Google Cloud-Projekte aktivieren, aus denen die Bereitstellungs- und Autorisierungspipeline besteht.

Anschließend definieren Sie die Richtlinie, in der die Einschränkungen für das Deployment von Container-Images festgelegt sind. Wenn Ihre Richtlinie vor der Bereitstellung Attestierungen verlangt, müssen Sie außerdem Attestierer einrichten, die die Attestierungen prüfen, bevor die zugehörigen Container-Images bereitgestellt werden können.

Informationen zum Einrichten der Binärautorisierung finden Sie in den folgenden Anleitungen:

Autorisierung

Damit ein Container-Image bereitgestellt werden kann, müssen alle erforderlichen Signaturgeber eine Attestierung erstellen, mit der bestätigt wird, dass das Image für die nächste Bereitstellungsphase bereit ist. Die Attestierung ist ein Eintrag, der den Registry-Pfad und den Digest des Container-Images enthält und der mit dem privaten kryptografischen Schlüssel des Signaturgebers digital signiert wurde.

Weitere Informationen zur Autorisierung finden Sie unter Attestierungen verwenden.

Erzwingung

Wenn Sie ein Image bereitstellen, prüft die Binärautorisierung die Richtlinie und erzwingt jede Regel, die die Bereitstellung bestimmt.

Wenn das Image die in der Richtlinie definierten Einschränkungen erfüllt, wird es von der Binärautorisierung bereitgestellt. Ist dies nicht der Fall, blockiert der Dienst die Bereitstellung und schreibt eine Nachricht in das Audit-Log. In dieser ist angegeben, warum das Image nicht der Richtlinie entspricht.

Informationen zum Aufrufen der Ereignisse für die Binärautorisierung in Cloud-Audit-Logs finden Sie in den folgenden Anleitungen:

Weitere Informationen zur Bereitstellung finden Sie in den folgenden Leitfäden:

Kontinuierliche Validierung

Die kontinuierliche Validierung (Continuous Validation, CV) mit prüfbasierten Plattformrichtlinien ist eine Funktion der Binärautorisierung, die regelmäßig die Metadaten von Container-Images prüft, die mit ausgeführten Pods verknüpft sind, um die Richtliniencompliance aufrechtzuerhalten.

Weitere Informationen zu CV

Sichere Binärautorisierung mit VPC Service Controls

Mit VPC Service Controls lässt sich das Risiko verringern, dass unbefugt Daten aus von Google verwalteten Diensten und Ressourcen kopiert oder übertragen werden.

Weitere Informationen zum Schützen von Ressourcen für die Binärautorisierung finden Sie unter Mit VPC Service Controls schützen.

Software Delivery Shield

Die Binärautorisierung ist Teil der Software Delivery Shield-Lösung. Software Delivery Shield ist eine vollständig verwaltete, End-to-End-Sicherheitslösung für die Softwarelieferkette, mit der Sie den Sicherheitsstatus von Entwickler-Workflows und -Tools, Softwareabhängigkeiten und CI/CD-Systemen, die zum Erstellen und Bereitstellen Ihrer Software verwendet werden, verbessern können und auch von Software und Laufzeitumgebungen wie Google Kubernetes Engine und die Cloud Run-Laufzeitumgebung den Sicherheitsstatus verbessern können. Informationen dazu, wie Sie die Binärautorisierung mit anderen Komponenten des Software Delivery Shield verwenden, um den Sicherheitsstatus Ihrer Softwarelieferkette zu verbessern, finden Sie unter Software Delivery Shield – Übersicht.

Nächste Schritte