Secrets verwenden

Ihr Dienst oder Job muss möglicherweise Abhängigkeiten haben, die API-Schlüssel, Passwörter oder andere vertrauliche Informationen erfordern. Für Cloud Run empfiehlt Google, diese Art von vertraulichen Informationen in einem Secret zu speichern, das in Secret Manager erstellt wurde.

Es gibt zwei Möglichkeiten, ein Secret für Ihre Container verfügbar zu machen:

  • Stellen Sie jedes Secret als Volume bereit, das dem Container als Datei zur Verfügung steht. Beim Lesen eines Volumes wird immer der Secret-Wert aus Secret Manager abgerufen, sodass er mit der neuesten Version verwendet werden kann. 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 die neueste Version setzen.

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

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

Während der Dienstbereitstellung oder der Joberstellung werden alle verwendeten Secrets, ob als Umgebungsvariable oder als Volume, überprüft und sichergestellt, dass das Dienstkonto, das zum Ausführen des Containers verwendet wird, darauf zugreifen kann. Wenn eine Prüfung fehlschlägt, schlägt die Bereitstellung oder Joberstellung fehl.

Während der Laufzeit beim Start von Instanzen:

  • Wenn das Secret eine Umgebungsvariable ist, wird der Wert des Secrets vor dem Starten der Instanz abgerufen. Wenn also der Secret-Abruf fehlschlägt, wird die Instanz nicht gestartet.
  • Wenn das Secret als Volume bereitgestellt wird, wird beim Start der Instanz keine Prüfung durchgeführt. Während der Laufzeit schlägt jedoch der Zugriff auf ein bereitgestelltes Volume fehl, wenn auf ein Secret nicht zugegriffen werden kann.

Volume-Inhaberschaft variiert je nach Ausführungsumgebung und Bereitstellungstyp

Cloud Run-Zugriff auf Secret gewähren

Sie können ein vorhandenes Secret Manager-Secret verwenden oder ein neues Secret erstellen. Um jedoch einem Cloud Run-Dienst den Zugriff auf das Geheimnis zu ermöglichen, müssen Sie dem Cloud Run-Dienstkonto die Secret Manager Secret Accessor-Rolle gewähren:

  1. Rufen Sie in der Google Cloud Console die Seite Secret Manager auf:

  2. Wählen Sie das Secret aus und klicken Sie im rechten Tab „Berechtigungen“ auf Hauptkonto hinzufügen.

  3. Geben Sie im Textfeld Neue Hauptkonten die E-Mail-Adresse des Dienstkontos für Ihren Cloud Run-Dienst ein.

  4. Gewähren Sie ihm die Rolle Secret Manager Secret Accessor.

Secret für Cloud Run zugänglich machen

Sie können Secrets für Dienste und für Jobs verfügbar machen.

Für Cloud Run-Dienste

Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.

Sie können ein Secret für Ihren Dienst über die Googlr Cloud Console, die Google Cloud CLI oder eine YAML-Datei bereitstellen, wenn Sie einen neuen Dienst bereitstellen oder einen vorhandenen Dienst aktualisieren und eine Überarbeitung bereitstellen:

Console

  1. Rufen Sie in der Google Cloud Console Cloud Run auf.

    Öffnen Sie Cloud Run.

  2. Klicken Sie auf Dienst erstellen, wenn Sie einen neuen Dienst für die Bereitstellung konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren möchten, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

  3. Wenn Sie einen neuen Dienst konfigurieren, füllen Sie die Seite mit den anfänglichen Diensteinstellungen wie gewünscht aus und klicken Sie dann auf Container, Netzwerk, Sicherheit, um die Seite zur Dienstkonfiguration zu maximieren.

  4. Klicken Sie auf den Tab Container.

    Image

    • Unter Secrets:
      • Klicken Sie auf Auf ein Secret verweisen.
      • Wählen Sie aus der Drop-down-Liste Secret das gewünschte Secret aus.
      • Wählen Sie im Drop-down-Menü Referenzmethode aus, wie Sie Ihr Secret verwenden möchten: als Volume oder als Umgebungsvariable bereitgestellt.
      • Wenn Sie das Secret als Volume bereitstellen:
        1. Geben Sie unter Bereitstellungspfad den Bereitstellungspfad an, den Sie für Secrets verwenden.
        2. Standardmäßig ist die neueste Version ausgewählt. Sie können bei Bedarf eine bestimmte Version auswählen. Geben Sie unter Angegebene Pfade für Secret-Versionen den Pfad zur Version und zur Versionsnummer an.
        3. Klicken Sie auf Fertig.
      • Wenn Sie das Secret als Umgebungsvariable bereitstellen möchten:
        1. Geben Sie den Namen der Variablen an und wählen Sie die Secret-Version aus. Mit Neueste können Sie immer die aktuelle Secret-Version verwenden.
        2. Klicken Sie auf Fertig.
  5. Klicken Sie auf Erstellen oder Bereitstellen.

Befehlszeile

Geben Sie einen der folgenden Befehle ein, damit Ihr Dienst auf ein Secret zugreifen kann:

  • So stellen Sie das Secret beim Bereitstellen eines Dienstes als Volume bereit:

    gcloud run deploy SERVICE --image IMAGE_URL  \
    --update-secrets=PATH=SECRET_NAME:VERSION

    Ersetzen Sie:

    • SERVICE durch den Namen des Dienstes.
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Bei Verwendung von Artifact Registry hat die URL die Form REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • PATH durch den Bereitstellungspfad des Volumes und des Dateinamens 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 durch den Secret-Namen im selben Projekt, z. B. mysecret.
    • VERSION mit der Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.
  • So geben Sie das Secret beim Bereitstellen eines Dienstes als Umgebungsvariable an:

    gcloud run deploy SERVICE --image IMAGE_URL --update-secrets=ENV_VAR_NAME=SECRET_NAME:VERSION

    Ersetzen Sie:

    • SERVICE durch den Namen des Dienstes.
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Bei Verwendung von Artifact Registry hat die URL die Form REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • ENV_VAR_NAME durch den Namen der Umgebungsvariable, die Sie mit dem Secret verwenden möchten.
    • SECRET_NAME durch den Secret-Namen im selben Projekt, z. B. mysecret.
    • VERSION mit der Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.
  • Sie können mehrere Secrets gleichzeitig aktualisieren. Trennen Sie dazu die Konfigurationsoptionen für jedes Secret durch ein Komma. Mit dem folgenden Befehl wird ein Secret aktualisiert, das als Volume bereitgestellt wird, und ein weiteres Secret, das als Umgebungsvariable bereitgestellt wird.

    Geben Sie den folgenden Befehl ein, um vorhandene Secrets zu aktualisieren:

    gcloud run deploy SERVICE --image IMAGE_URL \
    --update-secrets=PATH=SECRET_NAME:VERSION,ENV_VAR_NAME=SECRET_NAME:VERSION
  • Mit dem Flag --set-secrets können Sie vorhandene Secrets löschen und ein neues Secret für den Dienst zugänglich machen:

    gcloud run services update SERVICE \
    --set-secrets="ENV_VAR_NAME=SECRET_NAME:VERSION"

YAML

Sie können vorhandene Dienstkonfigurationen mit dem Befehl gcloud run services describe --format export herunterladen und aufrufen, was bereinigte Ergebnisse im YAML-Format liefert. Anschließend können Sie die unten beschriebenen Felder ändern und die geänderte YAML-Datei mit dem Befehl gcloud run services replace hochladen. Achten Sie darauf, dass Sie die Felder nur wie dokumentiert ändern.

  1. So rufen Sie die Konfiguration auf und laden sie herunter:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Für Secrets, die als Umgebungsvariablen bereitgestellt werden, env, aktualisieren Sie ENV_VAR, VERSION und/oder SECRET_NAME wunschgemäß. Wenn Sie mehrere Secrets als Umgebungsvariablen bereitgestellt haben, sind mehrere dieser Attribute vorhanden.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE_URL
            env:
            - name: ENV_VAR
              valueFrom:
                secretKeyRef:
                  key: VERSION
                  name: SECRET_NAME
  3. Aktualisieren Sie MOUNT_PATH, VOLUME_NAME, VERSION, FILENAME und/oder SECRET_NAME wie gewünscht für Secrets, die als Dateipfade bereitgestellt werden. Wenn Sie mehrere Secrets als Dateipfade bereitgestellt haben, sind mehrere dieser Attribute vorhanden.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE_URL
            volumeMounts:
            - mountPath: MOUNT_PATH
              name: VOLUME_NAME
          volumes:
          - name: VOLUME_NAME
            secret:
              items:
              - key: VERSION
                path: FILENAME
              secretName: SECRET_NAME

    Beachten Sie, dass VOLUME_NAME auf einen beliebigen Namen gesetzt werden kann.

    Ersetzen

    • SERVICE durch den Namen Ihres Cloud Run-Dienstes
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Bei Verwendung von Artifact Registry hat die URL die Form REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • REVISION durch einen neuen Überarbeitungsnamen oder löschen (falls vorhanden). Wenn Sie einen neuen Überarbeitungsnamen angeben, muss er die folgenden Kriterien erfüllen:
      • Beginnt mit SERVICE-
      • Enthält nur Kleinbuchstaben, Ziffern und -
      • Endet nicht mit -
      • Darf nicht mehr als 63 Zeichen enthalten
  4. Ersetzen Sie den Dienst mit dem folgenden Befehl durch die neue Konfiguration:

    gcloud run services replace service.yaml

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.

Console

  1. Rufen Sie in der Google Cloud Console Cloud Run auf.

    Öffnen Sie Cloud Run.

  2. Klicken Sie auf Dienst erstellen, wenn Sie einen neuen Dienst für die Bereitstellung konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren möchten, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

  3. Wenn Sie einen neuen Dienst konfigurieren, füllen Sie die Seite mit den anfänglichen Diensteinstellungen wie gewünscht aus und klicken Sie dann auf Container, Netzwerk, Sicherheit, um die Seite zur Dienstkonfiguration zu maximieren.

  4. Klicken Sie auf den Tab Container.

    Image

    • Unter Secrets:
      • Klicken Sie auf Auf ein Secret verweisen.
      • Wählen Sie Ihr Secret wird nicht angezeigt? Geben Sie die Secret-Ressourcen-ID aus der Drop-down-Liste Secret ein, um das folgende Formular aufzurufen:

        Projektübergreifende Secrets

      • Geben Sie im Formular Secret nach Ressourcen-ID hinzufügen das Secret aus dem anderen Projekt im Format projects/PROJECT_NUMBER/secrets/SECRET_NAME ein. Sie können alternativ die Ressourcen-ID aus dem anderen Projekt kopieren und einfügen, wenn Sie Zugriff darauf haben, indem Sie das Secret auswählen, auf die Ellipse Aktionen rechts neben dem Secret klicken und Ressourcen-ID kopieren aus dem Pull-down-Menü auswählen.
      • Klicken Sie auf Secret hinzufügen.
      • Wählen Sie im Drop-down-Menü Referenzmethode aus, wie Sie Ihr Secret verwenden möchten: als Volume oder als Umgebungsvariable bereitgestellt.
      • Wenn Sie das Secret als Volume bereitstellen:
        1. Geben Sie unter Bereitstellungspfad den Bereitstellungspfad an, den Sie für Secrets verwenden.
        2. Standardmäßig ist die neueste Version ausgewählt. Sie können bei Bedarf eine bestimmte Version auswählen. Geben Sie unter Angegebene Pfade für Secret-Versionen den Pfad zur Version und zur Versionsnummer an.
        3. Klicken Sie auf Fertig.
      • Wenn Sie das Secret als Umgebungsvariable bereitstellen möchten:
        1. Geben Sie den Namen der Variablen an und wählen Sie die Secret-Version aus. Mit Neueste können Sie immer die aktuelle Secret-Version verwenden.
        2. Klicken Sie auf Fertig.
  5. Klicken Sie auf Erstellen oder Bereitstellen.

Befehlszeile

  • So stellen Sie ein Secret beim Bereitstellen eines Dienstes als Volume bereit:

    gcloud run deploy SERVICE --image IMAGE_URL  \
    --update-secrets=PATH=projects/PROJECT_NUMBER/secrets/SECRET_NAME:VERSION

    Ersetzen Sie:

    • SERVICE durch den Namen des Dienstes.
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Bei Verwendung von Artifact Registry hat die URL die Form REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • PATH durch den Bereitstellungspfad des Volumes und des Dateinamens 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 durch die Projektnummer des Projekts, in dem das Secret erstellt wurde.
    • SECRET_NAME durch den Secret-Namen, z. B. mysecret.
    • VERSION mit der Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.

YAML

Sie können vorhandene Dienstkonfigurationen mit dem Befehl gcloud run services describe --format export herunterladen und aufrufen, was bereinigte Ergebnisse im YAML-Format liefert. Anschließend können Sie die unten beschriebenen Felder ändern und die geänderte YAML-Datei mit dem Befehl gcloud run services replace hochladen. Achten Sie darauf, dass Sie die Felder nur wie dokumentiert ändern.

  1. So rufen Sie die Konfiguration auf und laden sie herunter:

    gcloud run services describe SERVICE --format export > service.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: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/secrets: SECRET_LOOKUP_NAME:projects/PROJECT_NUMBER/secrets/SECRET_NAME
        spec:
          containers:
          - image: IMAGE_URL
            env:
            - name: ENV_VAR
              valueFrom:
                secretKeyRef:
                  key: VERSION
                  name: SECRET_LOOKUP_NAME

    Ersetzen Sie:

    • SERVICE durch den Namen des Dienstes.
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Bei Verwendung von Artifact Registry hat die URL die Form REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • ENV_VAR
    • PROJECT_NUMBER durch die Projektnummer des Projekts, in dem das Secret erstellt wurde.
    • SECRET_NAME durch den Secret-Namen, z. B. mysecret.
    • VERSION mit der Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.
    • SECRET_LOOKUP_NAME durch einen Namen mit einer gültigen Syntax für Secret-Namen (z. B. my-secret); dieser kann SECRET_NAME entsprechen.
  2. Für Secrets, die als Dateipfade bereitgestellt werden:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/secrets: SECRET_LOOKUP_NAME:projects/PROJECT_NUMBER/secrets/SECRET_NAME
        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:

    • SERVICE durch den Namen des Dienstes.
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Bei Verwendung von Artifact Registry hat die URL die Form REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • PATH durch den Bereitstellungspfad des Volumes und des Dateinamens 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 durch die Projektnummer des Projekts, in dem das Secret erstellt wurde.
    • SECRET_NAME durch den Secret-Namen, z. B. mysecret.
    • VERSION mit der Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.
    • SECRET_LOOKUP_NAME durch einen Namen mit einer gültigen Syntax für Secret-Namen (z. B. my-secret); dieser kann SECRET_NAME entsprechen.
    • VOLUME_NAME durch einen beliebigen Namen (z. B. my-volume). Er kann mit SECRET_NAME identisch sein.

Für Cloud Run-Jobs

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

Console

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

    Öffnen Sie Cloud Run.

  2. Klicken Sie auf den Tab Jobs und füllen Sie die Seite mit den anfänglichen Jobeinstellungen wie gewünscht aus, wenn Sie einen neuen Job konfigurieren. Klicken Sie auf den Job und dann auf Bearbeiten, wenn Sie einen vorhandenen Job konfigurieren.

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

  4. Klicken Sie auf den Tab Variablen und Secrets.

    Image

    • Auf dem Tab "Variablen und Secrets":
      • Klicken Sie unter Secrets auf Secret-Referenz.
      • Wählen Sie aus der Drop-down-Liste Secret das gewünschte Secret aus.
      • Wählen Sie im Drop-down-Menü Referenzmethode aus, wie Sie Ihr Secret verwenden möchten: als Volume oder als Umgebungsvariable bereitgestellt.
      • Wenn Sie das Secret als Volume bereitstellen,
        1. Geben Sie unter Bereitstellungspfad den Bereitstellungspfad an, den Sie für Secrets verwenden.
        2. Standardmäßig ist die neueste Version ausgewählt. Sie können bei Bedarf eine bestimmte Version auswählen. Geben Sie unter Angegebene Pfade für Secret-Versionen den Pfad zur Version und zur Versionsnummer an.
        3. Klicken Sie auf Fertig.
      • Wenn Sie das Secret als Umgebungsvariable bereitstellen möchten:
        1. Geben Sie den Namen der Variablen an und wählen Sie die Secret-Version aus. Mit Neueste können Sie immer die aktuelle Secret-Version verwenden.
        2. Klicken Sie auf Fertig.
  5. Klicken Sie auf Erstellen oder Aktualisieren.

Befehlszeile

  • 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

    • JOB_NAME durch den Namen des Jobs.
    • ENV_VAR_NAME durch den Namen der Umgebungsvariablen, die für das Secret verwendet werden soll.
    • SECRET_NAME durch den Secret-Namen im selben Projekt, z. B. mysecret.
    • VERSION mit der Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.
    • Ersetzen Sie IMAGE_URL durch einen 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:

    • JOB_NAME durch den Namen des Jobs.
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • PATH durch den Bereitstellungspfad des Volumes und des Dateinamens 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 durch den Secret-Namen im selben Projekt, z. B. mysecret.
    • VERSION mit der 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.

Laden Sie die vorhandene Jobkonfiguration herunter und verwenden Sie den Befehl gcloud run jobs describe --format export, um bereinigte Ergebnisse im YAML-Format zu erhalten. Ändern Sie dann die unten beschriebenen Felder und laden Sie die geänderte YAML-Datei mit dem Befehl gcloud run jobs replace hoch. Achten Sie darauf, dass Sie die Felder nur wie dokumentiert ändern.

  1. So rufen Sie die Konfiguration auf und laden sie 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:

    • JOB durch den Namen des Jobs.
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Bei Verwendung von Artifact Registry hat die URL die Form REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • SECRET_NAME durch den Secret-Namen, z. B. mysecret.
    • VERSION mit der Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.
    • SECRET_LOOKUP_NAME durch einen Namen mit einer gültigen Syntax für Secret-Namen (z. B. my-secret); dieser kann SECRET_NAME entsprechen.
  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:

    • JOB_NAME durch den Namen des Jobs.
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Bei Verwendung von Artifact Registry hat die URL die Form REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • PATH durch den Bereitstellungspfad des Volumes und des Dateinamens 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 durch die Projektnummer des Projekts, in dem das Secret erstellt wurde.
    • SECRET_NAME durch den Secret-Namen, z. B. mysecret.
    • VERSION mit der Secret-Version. Verwenden Sie latest für die neueste Version oder eine Zahl, z. B. 2.
    • SECRET_LOOKUP_NAME durch einen Namen mit einer gültigen Syntax für Secret-Namen (z. B. my-secret); dieser kann SECRET_NAME entsprechen.
    • VOLUME_NAME durch einen beliebigen Namen (z. B. my-volume). Er kann mit SECRET_NAME identisch sein.

Einstellungen für Secrets aufrufen

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

Console

  1. Rufen Sie in der Google Cloud Console Cloud Run auf.

    Öffnen Sie Cloud Run.

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

  3. Klicken Sie auf den Tab Überarbeitungen.

  4. Im Detailbereich auf der rechten Seite wird die Einstellung für Secrets auf dem Tab Variablen und Secrets aufgeführt.

Befehlszeile

  1. Verwenden Sie den folgenden Befehl:

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

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

Console

  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 den Tab Konfiguration.

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

Befehlszeile

  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.

Secrets in Ihrem Code verwenden

Beispiele für den Zugriff auf Secrets in Ihrem Code als Umgebungsvariablen finden Sie in der Anleitung zur Endnutzerauthentifizierung, insbesondere im Abschnitt Vertrauliche Konfigurationen mit Secret Manager verarbeiten.

Unzulässige Pfade und Einschränkungen

Mit Cloud Run können Sie keine Secrets unter /dev, /proc und /sys oder in ihren Unterverzeichnissen bereitstellen.

Wenn Sie Secrets unter /tmp bereitstellen und die Ausführungsumgebung der ersten Generation verwenden, lesen Sie die Informationen zum bekannten Problem unter Secrets unter /tmp 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.