Secrets für Jobs konfigurieren

Für die Abhängigkeiten Ihres Jobs sind möglicherweise API-Schlüssel, Passwörter, Zertifikate oder andere vertrauliche Informationen erforderlich. Für Cloud Run empfiehlt Google, diese vertraulichen Informationen in einem Secret zu speichern, das Sie in Secret Manager erstellen.

Sie können ein Secret für Ihre Container auf eine der folgenden Arten verfügbar machen:

  • Wenn Sie jedes Secret als Volume bereitstellen, stellt Cloud Run das Secret dem Container als Dateien zur Verfügung. Beim Lesen eines Volumes ruft Cloud Run immer den Secret-Wert aus Secret Manager ab, um den Wert mit der neuesten Version zu verwenden. Diese Methode funktioniert auch gut mit der Secret-Rotation.
  • Übergeben Sie ein Secret mithilfe von Umgebungsvariablen. Umgebungsvariablen werden beim Starten der Instanz aufgelöst. Wenn Sie diese Methode verwenden, empfiehlt Google, dass Sie das Secret auf eine bestimmte Version statt auf latest setzen.

Weitere Informationen finden Sie unter Best Practices für Secret Manager.

So werden Secrets bei der Bereitstellung und zur Laufzeit geprüft

Während der Joberstellung werden alle von Ihnen verwendeten Secrets von Cloud Run überprüft. Mit der Prüfung wird sichergestellt, dass das Dienstkonto, mit dem der Container ausgeführt wird, die Berechtigung hat, auf diese Secrets zuzugreifen.

Während der Laufzeit beim Start von Instanzen:

  • Wenn das Secret eine Umgebungsvariable ist, ruft Cloud Run den Wert des Secrets vor dem Starten der Instanz ab. Wenn der Secret-Abruf fehlschlägt, wird die Instanz nicht gestartet.
  • Wenn Sie das Secret als Volume bereitstellen, führt Cloud Run beim Start der Instanz keine Prüfungen durch. Während der Laufzeit schlägt jedoch der Zugriff auf ein bereitgestelltes Volume fehl, wenn auf ein Secret nicht zugegriffen werden kann.

Volume-Inhaberschaft

Die Inhaberschaft eines Cloud Run-Secret-Volumes variiert je nach Ausführungsumgebung und Bereitstellungstyp.

Wenn Sie ein Secret-Volume mit der Ausführungsumgebung der zweiten Generation bereitstellen, was bei Jobs immer der Fall ist, gehört das Volume dem Root.

Hinweise

  1. Enable the Secret Manager API.

    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 API

  2. Verwenden Sie ein vorhandenes Secret oder erstellen Sie ein Secret in Secret Manager, wie unter Secret erstellen beschrieben.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zur Konfiguration von Secrets benötigen:

Damit Cloud Run auf das Secret zugreifen kann, muss die Dienstidentität die folgende Rolle haben:

Eine Anleitung zum Hinzufügen des Dienstidentitätshauptkontos zur Rolle „Secret Manager Secret Accessor“ finden Sie unter Zugriff auf Secrets verwalten.

Eine Liste der IAM-Rollen und -Berechtigungen im Zusammenhang mit Cloud Run finden Sie unter IAM-Rollen für Cloud Run und IAM-Berechtigungen für Cloud Run. Wenn Ihr Cloud Run-Job mitGoogle Cloud APIs wie Cloud-Clientbibliotheken verknüpft ist, lesen Sie die Konfigurationsanleitung für Dienstidentitäten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Bereitstellungsberechtigungen und Zugriff verwalten.

Secret für Cloud Run zugänglich machen

Sie können ein Secret für Ihren Job über die Google Cloud Console, die Google Cloud CLI oder YAML zugänglich machen:

Konsole

  1. Wechseln Sie in der Google Cloud -Console zur Seite „Cloud Run-Jobs“:

    Zu Cloud Run

  2. Wählen Sie im Menü Jobs aus und klicken Sie auf Container bereitstellen, um die Seite mit den anfänglichen Jobeinstellungen auszufüllen. Wenn Sie einen vorhandenen Job konfigurieren, wählen Sie den Job aus und klicken Sie dann auf Jobkonfiguration ansehen und bearbeiten.

  3. Klicken Sie auf Container, Volumes, Verbindungen, Sicherheit, um die Seite mit den Jobattributen zu maximieren.

  4. Klicken Sie auf den Tab Variablen und Secrets.

    Bild

    • Auf dem Tab "Variablen und Secrets":

      • So machen Sie das Secret als Umgebungsvariable verfügbar:

        1. Klicken Sie auf den Tab Container.
        2. Klicken Sie auf dem Tab Variablen und Secrets auf Secret-Referenz.
        3. Geben Sie im Feld Name 1 den Namen der Umgebungsvariable ein.
        4. Wählen Sie in der Liste Secret das Secret aus, das Sie verwenden möchten.
        5. Wählen Sie in der Liste Version 1 die Version des Secrets aus, auf die verwiesen werden soll.
        6. Klicken Sie auf Fertig.
        7. Klicken Sie auf Erstellen oder Bereitstellen.
      • So stellen Sie ein Secret als Volume bereit:

        1. Klicken Sie auf den Tab Volumes und wählen Sie Volume hinzufügen aus.
        2. Wählen Sie in der Liste Volume-Typ die Option Secret aus.
        3. Geben Sie im Feld Volume name einen Namen ein oder übernehmen Sie den Standardnamen.
        4. Wählen Sie in der Liste Secret das Secret aus, das Sie verwenden möchten.
        5. Geben Sie im Feld Path 1 den Namen der Datei ein, die bereitgestellt werden soll.
        6. Wählen Sie in der Liste Version 1 die Version des Secrets aus, auf die verwiesen werden soll. Standardmäßig ist die neueste Version ausgewählt. Sie können bei Bedarf eine bestimmte Version auswählen.
        7. Klicken Sie auf Fertig.
        8. Wechseln Sie zum Tab Container, um das Secret im Container bereitzustellen.
        9. Klicken Sie auf dem Tab Volume-Bereitstellungen auf Volume bereitstellen.
        10. Wählen Sie in der Liste Name 1 den Namen des Volumes aus.
        11. Geben Sie im Feld Bereitstellungspfad 1 den Bereitstellungspfad für dieses Secret ein. In diesem Verzeichnis werden alle Versionen Ihres Secrets abgelegt.
        12. Klicken Sie auf Fertig.
        13. Klicken Sie auf Erstellen oder Bereitstellen.
  5. Klicken Sie auf Erstellen oder Aktualisieren.

gcloud

  • So geben Sie das Secret in einer Umgebungsvariablen an, wenn Sie einen neuen Job erstellen:

    gcloud run jobs create JOB_NAME \
    --image IMAGE_URL \
    --set-secrets ENV_VAR_NAME=SECRET_NAME:VERSION

    Ersetzen Sie Folgendes:

    • JOB_NAME: der Name des Jobs.
    • ENV_VAR_NAME: Der Name der Umgebungsvariablen, die für das Secret verwendet werden soll.
    • SECRET_NAME: der Secret-Name im selben Projekt, z. B. mysecret.
    • VERSION: die Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.

    Mit einer durch Kommas getrennten Liste können Sie mehrere Umgebungsvariablen/Secret-Paare angeben.

  • So geben Sie das Secret in einer Umgebungsvariablen an, wenn Sie einen Job aktualisieren:

    gcloud run jobs update JOB_NAME \
    --set-secrets ENV_VAR_NAME=SECRET_NAME:VERSION
  • So stellen Sie das Secret beim Erstellen eines Jobs als Volume bereit:

    gcloud run jobs create JOB_NAME \
    --image IMAGE_URL \
    --set-secrets=PATH=SECRET_NAME:VERSION

    Ersetzen Sie Folgendes:

    • JOB_NAME: der Name des Jobs.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • PATH: der Bereitstellungspfad des Volumes und der Dateiname des Secrets. Sie muss mit einem Schrägstrich beginnen, z. B. /etc/secrets/dbconfig/password, wobei /etc/secrets/dbconfig/ der Bereitstellungspfad des Volumes und password der Dateiname des Secrets ist.
    • SECRET_NAME: der Secret-Name im selben Projekt, z. B. mysecret.
    • VERSION: die Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.
  • So aktualisieren Sie ein Secret in einem vorhandenen Job:

    gcloud run jobs update JOB_NAME \
    --update-secrets=PATH=SECRET_NAME:VERSION

YAML

Aufgrund von Einschränkungen zur API-Kompatibilität müssen die Secret-Standorte in einer Annotation gespeichert werden.

  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 jobs describe JOB_NAME --format export > job.yaml
  2. Für Secrets, die als Umgebungsvariablen bereitgestellt werden:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - env:
                - name: SECRET_NAME
                  valueFrom:
                    secretKeyRef:
                      key: VERSION
                      name: SECRET_LOOKUP_NAME
                image: IMAGE_URL 

    Ersetzen Sie Folgendes:

    • JOB: der Name des Jobs.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • SECRET_NAME: der Name des Secrets, z. B. mysecret.
    • VERSION: die Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.
    • SECRET_LOOKUP_NAME: ein beliebiger Name mit einer gültigen Syntax für Secret-Namen, z. B. my-secret. Er kann mit SECRET_NAME identisch sein.
  3. Für Secrets, die als Dateipfade bereitgestellt werden:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB_NAME
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE_URL
                volumeMounts:
                - mountPath: MOUNT_PATH
                  name: VOLUME_NAME
              volumes:
              - name: VOLUME_NAME
                secret:
                  items:
                  - key: VERSION
                    path: FILENAME
                  secretName: SECRET_LOOKUP_NAME

    Ersetzen Sie Folgendes:

    • JOB_NAME: der Name des Jobs.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • PATH: der Bereitstellungspfad des Volumes und der Dateiname des Secrets. Sie muss mit einem Schrägstrich beginnen, z. B. /etc/secrets/dbconfig/password, wobei /etc/secrets/dbconfig/ der Bereitstellungspfad des Volumes und password der Dateiname des Secrets ist.
    • PROJECT_NUMBER: die Projektnummer des Projekts, in dem das Secret erstellt wurde.
    • SECRET_NAME: der Name des Secrets, z. B. mysecret.
    • VERSION: die Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.
    • SECRET_LOOKUP_NAME: ein beliebiger Name mit einer gültigen Syntax für Secret-Namen, z. B. my-secret. Er kann mit SECRET_NAME identisch sein.
    • VOLUME_NAME: Ein beliebiger Name, z. B. my-volume. Sie kann mit SECRET_NAME identisch sein.

Terraform

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Fügen Sie einer google_cloud_run_v2_job-Ressource in Ihrer Terraform-Konfiguration Folgendes hinzu:

Für Secrets, die als Umgebungsvariablen bereitgestellt werden:

resource "google_cloud_run_v2_job" "default" {
  name     = "JOB_NAME"
  location = "REGION"

  template {
    template {
      containers {
        image = "IMAGE_URL"

        env {
          name = "SECRET_NAME"

          value_source {
            secret_key_ref {
              secret = "SECRET_NAME"
              version = "VERSION"
            }
          }
        }
      }
    }
  }
}

Ersetzen Sie Folgendes:

  • JOB_NAME: Der Name Ihres Cloud Run-Jobs.
  • REGION: die Google Cloud Region. Beispiel: europe-west1.
  • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
  • SECRET_NAME: der Name des Secrets, z. B. mysecret.
  • VERSION: die Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.

Für Secrets, die als Dateipfade bereitgestellt werden:

resource "google_cloud_run_v2_job" "default" {
  name     = "JOB_NAME"
  location = "REGION"

  template {
    template {
      containers {
        image = "IMAGE_URL"

        volume_mounts {
          name       = "VOLUME_NAME"
          mount_path = "MOUNT_PATH"
        }
      }

      volumes {
        name = "VOLUME_NAME"
        secret {
          secret = "SECRET_NAME"
        }
      }
    }
  }
}

Ersetzen Sie Folgendes:

  • JOB_NAME: Der Name Ihres Cloud Run-Jobs.
  • REGION: die Google Cloud Region. Beispiel: europe-west1.
  • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
  • VOLUME_NAME: Ein beliebiger Name, z. B. my-volume. Sie kann mit SECRET_NAME identisch sein.
  • MOUNT_PATH: der Bereitstellungspfad des Volumes und der Dateiname des Secrets. Sie muss mit einem Schrägstrich beginnen, z. B. /etc/secrets/dbconfig/password, wobei /etc/secrets/dbconfig/ der Bereitstellungspfad des Volumes und password der Dateiname des Secrets ist.
  • SECRET_NAME: der Name des Secrets, z. B. mysecret.

Auf Secrets aus anderen Projekten verweisen

Sie können auf ein Secret von einem anderen Projekt verweisen, wenn dem Dienstkonto Ihres Projekts Zugriff auf das Secret gewährt wurde.

Konsole

  1. Wechseln Sie in der Google Cloud -Console zur Seite „Cloud Run-Jobs“:

    Zu Cloud Run

  2. Wählen Sie im Menü Jobs aus und klicken Sie auf Container bereitstellen, um die Seite mit den anfänglichen Jobeinstellungen auszufüllen. Wenn Sie einen vorhandenen Job konfigurieren, wählen Sie den Job aus und klicken Sie dann auf Jobkonfiguration ansehen und bearbeiten.

  3. Klicken Sie auf Container, Volumes, Verbindungen, Sicherheit, um die Seite mit den Jobattributen zu maximieren.

  4. Klicken Sie auf den Tab Variablen und Secrets.

    Bild

    • Auf dem Tab "Variablen und Secrets":

      • So machen Sie das Secret als Umgebungsvariable verfügbar:

        1. Klicken Sie auf den Tab Container.
        2. Klicken Sie auf dem Tab Variablen und Secrets auf Secret-Referenz.
        3. Geben Sie im Feld Name 1 den Namen der Umgebungsvariable ein.
        4. Klicken Sie in der Liste Secret auf Secret manuell eingeben.
        5. Geben Sie die Ressourcen-ID des Secrets im folgenden Format ein:

          projects/PROJECT_NUMBER/secrets/SECRET_NAME
          

          Ersetzen Sie Folgendes:

          • Ersetzen Sie PROJECT_NUMBER durch die Google Cloud Projektnummer. Eine detaillierte Anleitung zum Ermitteln der Projektnummer finden Sie unter Projekte erstellen und verwalten.

          • SECRET_NAME: Der Name des Secrets im Secret Manager.

        6. Wählen Sie in der Liste Version 1 die Version des Secrets aus, auf die verwiesen werden soll.

        7. Klicken Sie auf Fertig.

        8. Klicken Sie auf Erstellen oder Bereitstellen.

      • So stellen Sie ein Secret als Volume bereit:

        1. Klicken Sie auf den Tab Volumes und wählen Sie Volume hinzufügen aus.
        2. Wählen Sie in der Liste Volume-Typ die Option Secret aus.
        3. Geben Sie im Feld Volume name einen Namen ein oder übernehmen Sie den Standardnamen.
        4. Klicken Sie in der Liste Secret auf Secret manuell eingeben.
        5. Geben Sie die Ressourcen-ID des Secrets im folgenden Format ein:

          projects/PROJECT_NUMBER/secrets/SECRET_NAME
          

          Ersetzen Sie Folgendes:

          • Ersetzen Sie PROJECT_NUMBER durch die Google Cloud Projektnummer. Eine detaillierte Anleitung zum Ermitteln der Projektnummer finden Sie unter Projekte erstellen und verwalten.

          • SECRET_NAME: Der Name des Secrets im Secret Manager.

        6. Geben Sie im Feld Path 1 den Namen der Datei ein, die bereitgestellt werden soll.

        7. Wählen Sie in der Liste Version 1 die Version des Secrets aus, auf die verwiesen werden soll. Standardmäßig ist die neueste Version ausgewählt. Sie können bei Bedarf eine bestimmte Version auswählen.

        8. Klicken Sie auf Fertig.

        9. Wechseln Sie zum Tab Container, um das Secret im Container bereitzustellen.

        10. Klicken Sie auf dem Tab Volume-Bereitstellungen auf Volume bereitstellen.

        11. Wählen Sie in der Liste Name 1 den Namen des Volumes aus.

        12. Geben Sie im Feld Bereitstellungspfad 1 den Bereitstellungspfad für dieses Secret ein. In diesem Verzeichnis werden alle Versionen Ihres Secrets abgelegt.

        13. Klicken Sie auf Fertig.

        14. Klicken Sie auf Erstellen oder Bereitstellen.

  5. Klicken Sie auf Erstellen oder Aktualisieren.

gcloud

  • So stellen Sie ein Secret beim Aktualisieren eines Jobs als Volume bereit:

    gcloud run jobs update JOB_NAME \
    --image IMAGE_URL \
    --update-secrets=PATH=projects/PROJECT_NUMBER/secrets/SECRET_NAME:VERSION
    • JOB_NAME: der Name des Jobs.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • PATH: der Bereitstellungspfad des Volumes und der Dateiname des Secrets. Sie muss mit einem Schrägstrich beginnen, z. B. /etc/secrets/dbconfig/password, wobei /etc/secrets/dbconfig/ der Bereitstellungspfad des Volumes und password der Dateiname des Secrets ist.
    • PROJECT_NUMBER: die Projektnummer des Projekts, in dem das Secret erstellt wurde.
    • SECRET_NAME: der Name des Secrets, z. B. mysecret.
    • VERSION: die Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.

YAML

  1. Wenn Sie einen neuen Job erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:

    gcloud run jobs describe JOB_NAME --format export > job.yaml

Aufgrund von Einschränkungen zur API-Kompatibilität müssen die Secret-Standorte in einer Annotation gespeichert werden.

  1. Für Secrets, die als Umgebungsvariablen bereitgestellt werden:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/secrets: SECRET_LOOKUP_NAME:projects/PROJECT_NUMBER/secrets/SECRET_NAME
        spec:
          template:
            spec:
              containers:
              - env:
                - name: SECRET_NAME
                  valueFrom:
                    secretKeyRef:
                      key: VERSION
                      name: SECRET_LOOKUP_NAME
                image: IMAGE_URL 

    Ersetzen Sie Folgendes:

    • JOB: der Name des Jobs.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • SECRET_NAME: der Name des Secrets, z. B. mysecret.
    • VERSION: die Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.
    • PROJECT_NUMBER: die Projektnummer des Projekts, in dem das Secret erstellt wurde.
    • SECRET_LOOKUP_NAME: ein beliebiger Name mit einer gültigen Syntax für Secret-Namen, z. B. my-secret. Er kann mit SECRET_NAME identisch sein.
  2. Für Secrets, die als Dateipfade bereitgestellt werden:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB_NAME
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/secrets: SECRET_LOOKUP_NAME:projects/PROJECT_NUMBER/secrets/SECRET_NAME
        spec:
          template:
            spec:
              containers:
              - image: IMAGE_URL
                volumeMounts:
                - mountPath: MOUNT_PATH
                  name: VOLUME_NAME
              volumes:
              - name: VOLUME_NAME
                secret:
                  items:
                  - key: VERSION
                    path: FILENAME
                  secretName: SECRET_LOOKUP_NAME

    Ersetzen Sie Folgendes:

    • JOB_NAME: der Name des Jobs.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • PATH: der Bereitstellungspfad des Volumes und der Dateiname des Secrets. Sie muss mit einem Schrägstrich beginnen, z. B. /etc/secrets/dbconfig/password, wobei /etc/secrets/dbconfig/ der Bereitstellungspfad des Volumes und password der Dateiname des Secrets ist.
    • PROJECT_NUMBER: die Projektnummer des Projekts, in dem das Secret erstellt wurde.
    • SECRET_NAME: der Name des Secrets, z. B. mysecret.
    • VERSION: die Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.
    • SECRET_LOOKUP_NAME: ein beliebiger Name mit einer gültigen Syntax für Secret-Namen, z. B. my-secret. Dieser kann SECRET_NAME entsprechen.
    • VOLUME_NAME: ein beliebiger Name, z. B. my-volume. Er kann mit SECRET_NAME identisch sein.

Terraform

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Fügen Sie einer google_cloud_run_v2_job-Ressource in Ihrer Terraform-Konfiguration Folgendes hinzu:

Für Secrets, die als Umgebungsvariablen bereitgestellt werden:

resource "google_cloud_run_v2_job" "default" {
  name     = "JOB_NAME"
  location = "REGION"

  template {
    template {
      containers {
        image = "IMAGE_URL"
        env {
          name = "SECRET_NAME"
          value_source {
            secret_key_ref {
              secret = "projects/PROJECT_ID/secrets/SECRET_NAME"
              version = "VERSION"
            }
          }
        }
      }
    }
  }
}

Ersetzen Sie Folgendes:

  • JOB_NAME: Der Name Ihres Cloud Run-Jobs.
  • REGION: die Google Cloud Region. Beispiel: europe-west1.
  • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
  • SECRET_NAME: der Name des Secrets, z. B. mysecret.
  • PROJECT_ID: die Projekt-ID des Projekts, in dem das Secret erstellt wurde.
  • VERSION: die Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.

Für Secrets, die als Dateipfade bereitgestellt werden:

resource "google_cloud_run_v2_job" "default" {
  name     = "JOB_NAME"
  location = "REGION"

  template {
    template {
      containers {
        image = "IMAGE_URL"

        volume_mounts {
          name       = "VOLUME_NAME"
          mount_path = "MOUNT_PATH"
        }
      }

      volumes {
        name = "VOLUME_NAME"
        secret {
          secret = "projects/PROJECT_ID/secrets/SECRET_NAME"
        }
      }
    }
  }
}

Ersetzen Sie Folgendes:

  • JOB_NAME: Der Name Ihres Cloud Run-Jobs.
  • REGION: die Google Cloud Region, z. B. europe-west1.
  • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
  • VOLUME_NAME: ein beliebiger Name, z. B. my-volume. Er kann mit SECRET_NAME identisch sein.
  • MOUNT_PATH: der Bereitstellungspfad des Volumes und der Dateiname des Secrets. Sie muss mit einem Schrägstrich beginnen, z. B. /etc/secrets/dbconfig/password, wobei /etc/secrets/dbconfig/ der Bereitstellungspfad des Volumes und password der Dateiname des Secrets ist.
  • PROJECT_ID: die Projekt-ID des Projekts, in dem das Secret erstellt wurde.
  • SECRET_NAME: der Name des Secrets, z. B. mysecret.

Einstellungen für Secrets aufrufen

So rufen Sie die aktuellen Secret-Einstellungen für Ihren Cloud Run-Job auf:

Konsole

  1. Wechseln Sie in der Google Cloud -Console zur Seite „Cloud Run-Jobs“:

    Zu Cloud Run-Jobs

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

  3. Klicken Sie auf Jobkonfiguration ansehen und bearbeiten.

  4. Suchen Sie die CPU-Einstellung in den Konfigurationsdetails.

gcloud

  1. Verwenden Sie den folgenden Befehl:

    gcloud run jobs describe JOB_NAME
  2. Suchen Sie in der zurückgegebenen Konfiguration nach der Einstellung für Secrets.

Unzulässige Pfade und Einschränkungen

Für das Einbinden von Secrets gelten die folgenden Einschränkungen:

  • Mit Cloud Run können Sie keine Secrets unter /dev, /proc und /sys oder in ihren Unterverzeichnissen bereitstellen.
  • Mit Cloud Run können Sie nicht mehrere Secrets auf demselben Pfad bereitstellen, da zwei Volume-Bereitstellungen nicht an demselben Speicherort bereitgestellt werden können.

Verzeichnis überschreiben

Wenn das Secret als Volume in Cloud Run bereitgestellt wird und das letzte Verzeichnis im Volume-Bereitstellungspfad bereits vorhanden ist, sind alle Dateien oder Ordner im vorhandenen Verzeichnis nicht mehr zugänglich.

Wenn z. B. ein Secret mit dem Namen my-secret im Pfad /etc/app_data bereitgestellt wird, wird der gesamte Inhalt im Verzeichnis app_data überschrieben und die einzige sichtbare Datei ist /etc/app_data/my-secret.

Um das Überschreiben von Dateien in einem vorhandenen Verzeichnis zu vermeiden, erstellen Sie ein neues Verzeichnis für die Bereitstellung des Secrets, z. B. /etc/app_data/secrets, sodass der Bereitstellungspfad für das Secret /etc/app_data/secrets/my-secret lautet.