Binärautorisierung für Cloud Run aktivieren

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:

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  7. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  13. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  14. 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

    1. Rufen Sie in der Google Cloud Console die Seite „Cloud Run“ auf.

      Zu Cloud Run

    2. Klicken Sie auf den Dienst.

    3. Klicken Sie auf den Tab Sicherheit.

    4. Klicken Sie auf Aktivieren, um die Binärautorisierung für den Dienst zu aktivieren.

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

    1. 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
    2. 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.
    3. 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 derGoogle Cloud -Konsole oder der Google Cloud CLI aktivieren:

    Console

    1. Rufen Sie in der Google Cloud Console die Seite mit den Cloud Run-Jobs auf.

      Zu Cloud Run

    2. Klicken Sie auf den gewünschten Job, um die Jobdetails zu öffnen.

    3. Klicken Sie auf den Tab Konfiguration.

    4. Wählen Sie unter Binärautorisierung eine Richtlinie aus der Richtlinienliste aus.

    5. Klicken Sie auf Anwenden, um die Erzwingung der Binärautorisierung für den Job zu aktivieren.

    6. 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 Wert default, 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

    1. Zur Seite „Cloud Run“

      Öffnen Sie Cloud Run.

    2. Klicken Sie auf Dienst erstellen.

    3. Im Formular Dienst erstellen:

      1. Wählen Sie Cloud Run als Entwicklungsplattform aus.
      2. Wählen Sie die Region aus, in der sich Ihr Dienst befinden soll.
      3. Geben Sie den Namen des Dienstes ein.
      4. Klicken Sie auf Weiter, um zur Seite Erste Überarbeitung des Dienstes konfigurieren zu gelangen.
      5. Wählen Sie Überarbeitung aus dem vorhandenen Container-Image bereitstellen.
      6. Geben Sie das bereitzustellende Image ein oder wählen Sie es aus.
      7. Maximieren Sie den Abschnitt Erweiterte Einstellungen.
      8. Klicken Sie auf den Tab Sicherheit.
      9. Klicken Sie auf das Kästchen Container-Deployment mit Binärautorisierung prüfen.

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

      11. 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 Dienst
    • IMAGE_URL: das Image, das Sie bereitstellen möchten
    • REGION: 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 mit einer der folgenden Methoden aktivieren:

    Console

    1. Rufen Sie die Seite „Cloud Run-Jobs“ auf:

      Zu Cloud Run-Jobs

    2. Klicken Sie auf Job erstellen, um das Formular Job erstellen aufzurufen.

      1. Geben Sie im Formular das Container-Image an, das den Jobcode enthält, oder wählen Sie es aus einer Liste von Containern aus, die zuvor bereitgestellt wurden.
      2. Der Jobname wird automatisch aus dem Container-Image generiert. Sie haben aber die Möglichkeit, den Jobnamen nach Bedarf zu bearbeiten oder zu ändern. Nach dem Erstellen des Jobs kann der Jobname nicht mehr geändert werden.
      3. Wählen Sie die Region aus, in der sich Ihr Job befinden soll.
      4. Geben Sie an, wie viele Aufgaben im Job ausgeführt werden sollen. Ein Job ist erst erfolgreich, wenn alle Aufgaben erfolgreich ausgeführt werden. Die Aufgaben werden standardmäßig parallel ausgeführt.
    3. Klicken Sie auf Container, Variablen und Secrets, Verbindungen, Sicherheit, um zusätzliche Jobattribute festzulegen.

      • Klicken Sie auf den Tab Einstellungen. Konfigurieren Sie im Abschnitt Ressourcen Folgendes:

        1. Im Menü Arbeitsspeicher geben Sie an, wie viel Arbeitsspeicher erforderlich ist. Der Standardwert ist der Mindestwert von 512 MiB.
        2. Im Menü CPU geben Sie die erforderliche CPU-Menge an. Der Standardwert ist der Mindestwert von 1 CPU.
      • Im Abschnitt Aufgabenkapazität:

        1. Geben Sie unter Zeitlimit der Aufgabe die maximale Zeit in Sekunden an, in der die Aufgabe ausgeführt werden soll (bis zu 168 Stunden bzw. 7 Tage). Jede Aufgabe muss innerhalb des angegebenen Zeitraums abgeschlossen werden. Der Standardwert ist 10 Minuten.

        2. Unter Anzahl der Wiederholungsversuche pro fehlgeschlagener Aufgabe geben Sie die Anzahl der Wiederholungen im Fall von Aufgabenfehlern an. Der Standardwert beträgt 3 Wiederholungsversuche.

      • Im Abschnitt Parallelität:

        1. In den meisten Fällen können Sie So viele Aufgaben wie möglich gleichzeitig ausführen auswählen.
        2. Wenn Sie aufgrund von Skalierungsbeschränkungen für Ressourcen, auf die Ihr Auftrag zugreift, eine niedrigere Grenze festlegen müssen, wählen Sie die Option Maximale Anzahl gleichzeitiger Aufgaben begrenzen und geben Sie die Anzahl der gleichzeitigen Aufgaben im Feld Benutzerdefinierte Parallelitätsgrenze an.
    4. Wenn Sie die Konfiguration Ihres Jobs abgeschlossen haben, klicken Sie auf Erstellen, um den Job in Cloud Run zu erstellen.

    5. Informationen zum Ausführen des Jobs finden Sie unter Jobs ausführen oder Jobs nach einem Zeitplan ausführen.

    gcloud

    1. 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 Wert default, um die Standardrichtlinie zu verwenden.
      • IMAGE_URL: Ein 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.
    2. Warten Sie, bis die Joberstellung abgeschlossen ist. Nach erfolgreichem Abschluss zeigt die Console eine Erfolgsmeldung an.

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

    1. Erstellen Sie eine neue job.yaml-Datei mit folgendem Inhalt:

      apiVersion: run.googleapis.com/v1
      kind: Job
      metadata:
        name: JOB
        annotations:
          run.googleapis.com/binary-authorization: POLICY
      spec:
        template:
          spec:
            containers:
            - image: IMAGE

      Ersetzen Sie Folgendes:

      • JOB: Der Name Ihres Cloud Run-Jobs.
      • IMAGE: die URL Ihres Container-Images
      • Legen Sie für POLICY default fest.
    2. Stellen Sie den neuen Job mit dem folgenden Befehl bereit:

      gcloud run jobs replace job.yaml

    Nächste Schritte