Sichere Image-Pipeline verwenden

Nachdem Sie eine sichere Image-Pipeline erstellt haben, können Sie den Workflow des Generierens signierter Images automatisieren, sobald Sie Änderungen am Quellcode vornehmen.

Auf dieser Seite wird erläutert, wie Sie mit der Image-Pipeline sichere, attestierte Images erstellen können.

Hinweis

Erstellen Sie die sichere Image-Pipeline und machen Sie sich mit den von der Pipeline erstellten Ressourcen vertraut.

Pipeline verwenden

Der Quellcode für die Basis-Images befindet sich im Repository baseimgfct-[some number]-containers in der GitHub-Organisation, die Sie beim Einrichten der sicheren Image-Pipeline angegeben haben. Zum Aktualisieren eines Images bearbeiten Sie die entsprechende Datei im Repository und senden eine Pull-Anfrage mit den Änderungen an ein Teammitglied zur Prüfung. Wenn Sie die Pull-Anfrage erstellen, erstellt Cloud Build die Trigger in YOUR_PROJECT_NAME-builder und aktualisiert das Image per Push in das Artifact Registry-Repository in YOUR_PROJECT_NAME-stage.

Wenn ein Teammitglied die Images in YOUR_PROJECT_NAME-stage getestet und verifiziert hat, kann es Ihre Pull-Anfrage genehmigen und zusammenführen. Die Zusammenführungsaktion erstellt, scannt und bestätigt die Images und überträgt die Images aus dem Staging-Projekt nach YOUR_PROJECT_NAME-verified.

In den folgenden Schritten wird der Entwickler-Workflow für die Verwendung einer sicheren Image-Pipeline beschrieben:

  1. Öffnen Sie das Repository baseimgfact-[some number]-containers.

  2. Öffnen Sie den Ordner, der dem Image entspricht, das Sie ändern möchten, z. B. ubuntu_18_0_4.

  3. Nehmen Sie die Änderungen vor. Bearbeiten Sie beispielsweise Dockerfile, um ein Container-Image zu aktualisieren.

  4. Wählen Sie Neuen Branch für diesen Commit erstellen und Pull-Anfrage starten aus.

  5. Klicken Sie auf Änderungen vorschlagen.

  6. Geben Sie unter Kommentarbeschreibung /gcbrun ein. Dies soll gewährleisten, dass nur autorisierte Nutzer Änderungen am Repository vorschlagen.

  7. Klicken Sie auf Create pull request.

    Wenn Sie eine Pull-Anfrage erstellen, wird der Build mit den Build-Triggern in YOUR_PROJECT_NAME-builder erstellt und an YOUR_PROJECT_NAME-stage übertragen.

  8. Fügen Sie ein Teammitglied hinzu, um Ihre Pull-Anfrage zu prüfen.

  9. Nach der manuellen Prüfung des Images genehmigt das Teammitglied die Pull-Anfrage und führt sie zusammen.

    Die Zusammenführungsaktion erstellt, testet und prüft das Image auf Sicherheitslücken und bestätigt das Image, wenn es sich um ein Container-Image handelt. Anschließend wird das Image per Push an YOUR_PROJECT_NAME-verified übertragen.

Benutzerdefinierte Sicherheitsrichtlinie angeben

Wenn Sie die sichere Image-Pipeline verwenden, um Basis-Container-Images zu generieren und zu verwalten, können Sie eine benutzerdefinierte Sicherheitsrichtlinie angeben, für die das Image verifiziert wird.

YOUR_PROJECT_NAME-stage führt einen Instanz-Voucher aus. Dies ist ein Open-Source-Tool, das eine Reihe von Prüfungen von Container-Images ausführt und Attestierungen für die Binärautorisierung erstellt. 101} für die Bilder. Wenn ein Image in YOUR_PROJECT_NAME-stage manuell verifiziert wurde und ein Teammitglied die Pull-Anfrage im GitHub-Container-Image-Repository zusammenführt, prüft Voucher das Image auf Sicherheitslücken, die in der Gutscheinkonfiguration definiert sind. Datei. Wenn nach Abschluss der Prüfung alle identifizierten Sicherheitslücken unter den Schwellenwert fallen, erstellt Voucher eine Attestierung für die Binärautorisierung für das Image und das Image wird an YOUR_PROJECT_NAME-verified übertragen. Wenn eine der identifizierten Sicherheitslücken den Schwellenwert erreicht oder überschreitet, erstellt der Gutschein keine Attestierung. Ohne verifizierte Attestierung verhindert der Binärautorisierungserzwinger, dass das Image per Push an YOUR_PROJECT_NAME-verified übertragen wird.

In der Konfigurationsdatei des Gutschein-Servers können Sie festlegen, welche Prüfungen ausgeführt werden sollen und weitere Kriterien. Eine Anleitung dazu finden Sie unter Gutscheinserver erstellen und konfigurieren.