In diesem Leitfaden erfahren Sie, wie Sie die Binärautorisierung einrichten, um die richtlinienbasierte Bereitstellung von Cloud Run-Diensten und -Jobs zu erzwingen.
Hinweis
So richten Sie Cloud Run ein und aktivieren APIs:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Binärautorisierung für einen vorhandenen Cloud Run-Dienst aktivieren
Sie können die Erzwingung der Binärautorisierung für einen vorhandenen Dienst aktivieren. Zum Aktivieren der Erzwingung nach dem Aktivieren müssen Sie möglicherweise eine Überarbeitung bereitstellen oder den Diensttraffic aktualisieren.
Sie können die Erzwingung der Binärautorisierung für einen vorhandenen Dienst mit der Google Cloud Console oder der Google Cloud CLI aktivieren:
Console
Rufen Sie die Cloud Run-Seite in der Google Cloud Console auf.
Klicken Sie auf den Dienst.
Klicken Sie auf den Tab Sicherheit.
Klicken Sie auf Aktivieren, um die Binärautorisierung für den Dienst zu aktivieren.
Optional: Klicken Sie auf Richtlinie konfigurieren, um die Richtlinie für die Binärautorisierung zu konfigurieren.
gcloud
Aktivieren Sie die Binärautorisierung für den Dienst und stellen Sie ihn bereit:
gcloud run services update SERVICE_NAME --binary-authorization=default
Ersetzen Sie SERVICE_NAME
mit einem Namen für das Dienstkonto.
YAML
Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
gcloud run services describe SERVICE --format export > service.yaml
Aktualisieren Sie die Annotation
run.googleapis.com/binary-authorization:
so:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/binary-authorization: POLICY name: SERVICE spec: template:
Ersetzen Sie Folgendes:
- SERVICE: Der Name Ihres Cloud Runs
- Legen Sie für POLICY
default
fest.
Ersetzen Sie den Dienst mit dem folgenden Befehl durch die neue Konfiguration:
gcloud run services replace service.yaml
Binärautorisierung für einen vorhandenen Cloud Run-Job aktivieren
Sie können die Erzwingung der Binärautorisierung für einen vorhandenen Job mit der Google Cloud Console oder der Google Cloud CLI aktivieren:
Console
Rufen Sie die Seite mit den Cloud Run-Jobs in der Google Cloud Console auf.
Klicken Sie auf den gewünschten Job, um die Jobdetails zu öffnen.
Klicken Sie auf den Tab Konfiguration.
Wählen Sie unter Binärautorisierung eine Richtlinie aus der Richtlinienliste aus.
Klicken Sie auf Anwenden, um die Erzwingung der Binärautorisierung für den Job zu aktivieren.
Optional: Klicken Sie auf Richtlinie konfigurieren, um die Richtlinie für die Binärautorisierung zu konfigurieren.
gcloud
Aktivieren Sie die Binärautorisierung für den Job:
gcloud run jobs update JOB_NAME --binary-authorization=POLICY
Ersetzen Sie Folgendes:
JOB_NAME
: der Name des Jobs.POLICY
: die Richtlinie, die Sie anwenden möchten. Verwenden Sie den Wertdefault
, um die Standardrichtlinie zu verwenden.
Wir empfehlen, dass Sie eine Binärautorisierung für Cloud Run erfordern, indem Sie eine entsprechende Organisationsrichtlinie konfigurieren. Die Binärautorisierung kann von Cloud Run-Entwicklern deaktiviert werden, wenn die Richtlinie nicht konfiguriert ist.
Richtlinie ansehen
Klicken Sie auf Richtlinie ansehen, um die Richtlinie aufzurufen.
Weitere Informationen finden Sie unter Richtlinie für die Binärautorisierung konfigurieren.
Fehler bei der Dienst- oder Jobbereitstellung
Wenn Ihr Dienst oder Job nicht bereitgestellt werden kann, weil er gegen die Richtlinie für die Binärautorisierung verstößt, wird möglicherweise ein Fehler wie der folgende angezeigt:
Revision REVISION_NAME uses an unauthorized container image. Container image IMAGE_NAME is not authorized by policy.
Der Fehler enthält auch Informationen darüber, warum das Image gegen die Richtlinie verstößt. In diesem Fall können Sie mit Break-Glass die Richtlinienerzwingung umgehen und das Image bereitstellen.
Binärautorisierung für einen neuen Dienst aktivieren
Sie können die Binärautorisierung für einen neuen Dienst über die Google Cloud Console oder die Google Cloud CLI aktivieren:
Console
Zur Seite „Cloud Run“
Klicken Sie auf Dienst erstellen.
Im Formular Dienst erstellen:
- Wählen Sie Cloud Run als Entwicklungsplattform aus.
- Wählen Sie die Region aus, in der sich Ihr Dienst befinden soll.
- Geben Sie den Namen des Dienstes ein.
- Klicken Sie auf Weiter, um zur Seite Erste Überarbeitung des Dienstes konfigurieren zu gelangen.
- Wählen Sie Überarbeitung aus dem vorhandenen Container-Image bereitstellen.
- Geben Sie das bereitzustellende Image ein oder wählen Sie es aus.
- Maximieren Sie den Abschnitt Erweiterte Einstellungen.
- Klicken Sie auf den Tab Sicherheit.
Klicken Sie auf das Kästchen Container-Deployment mit Binärautorisierung prüfen.
Optional: Klicken Sie auf Richtlinie konfigurieren, um die Richtlinie für die Binärautorisierung zu konfigurieren. Weitere Informationen zum Konfigurieren einer Richtlinie finden Sie unter Richtlinie konfigurieren.
Stellen Sie den Dienst bereit.
gcloud
Aktivieren Sie die Binärautorisierung für den Dienst und stellen Sie ihn bereit:
gcloud run deploy SERVICE_NAME --image=IMAGE_URL --binary-authorization=default --region=REGION
Ersetzen Sie Folgendes:
SERVICE_NAME
: Ein Name für Ihren DienstIMAGE_URL
: das Image, das Sie bereitstellen möchtenREGION
: die Region, in der Sie Ihren Dienst bereitstellen möchten
Binärautorisierung für einen neuen Job aktivieren
Sie können die Binärautorisierung für einen neuen Job über die Google Cloud CLI aktivieren:
gcloud
Erstellen Sie einen neuen Job mit aktivierter Binärautorisierung:
gcloud run jobs create JOB_NAME \ --image IMAGE_URL OPTIONS \ --binary-authorization=POLICY \ --region=REGION
Ersetzen Sie Folgendes:
JOB_NAME
: der Name des Jobs, den Sie erstellen möchten. Sie können diesen Parameter auch weglassen, werden dann jedoch nach dem Jobnamen gefragt.POLICY
: die Richtlinie, die Sie anwenden möchten. Verwenden Sie den Wertdefault
, um die Standardrichtlinie zu verwenden.- IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/job:latest
. REGION
: die Region, in der dieser Job ausgeführt wird.OPTIONS
: Alle verfügbaren Optionen, die auf der Cloud Run-Seite zur Joberstellung beschrieben werden.
Warten Sie, bis die Joberstellung abgeschlossen ist. Nach erfolgreichem Abschluss zeigt die Console eine Erfolgsmeldung an.
Informationen zum Ausführen des Jobs finden Sie unter Jobs ausführen oder Jobs nach einem Zeitplan ausführen.
Wenn Sie einen neuen Job erstellen, muss der Cloud Run-Dienst-Agent auf den Container zugreifen können. Dies ist standardmäßig der Fall.
YAML
Erstellen Sie eine neue
service.yaml
-Datei mit folgendem Inhalt:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/binary-authorization: POLICY spec: template: spec: containers: - image: IMAGE
Ersetzen Sie Folgendes:
- SERVICE: Der Name Ihres Cloud Runs
- IMAGE: die URL Ihres Container-Images
- Legen Sie für POLICY
default
fest.
Stellen Sie den neuen Dienst mit dem folgenden Befehl bereit:
gcloud run services replace service.yaml
Nächste Schritte
- Verwenden Sie den Attestierer
built-by-cloud-build
, um nur von Cloud Build erstellte Images bereitzustellen. - Konfigurieren Sie die Richtlinie für die Binärautorisierung mithilfe der Google Cloud Console oder des Befehlszeilentools.
- Verwenden Sie Attestierungen, um nur signierte Container-Images bereitzustellen.
- Sehen Sie sich ein Video an, um zu erfahren, wie Sie mit der Binärautorisierung in Cloud Run nur genehmigte Builds bereitstellen.