Configura i secret

Il tuo servizio potrebbe avere dipendenze che richiedono chiavi API, password, certificati o altre informazioni sensibili. Per Cloud Run, Google consiglia di memorizzare questo tipo di informazioni sensibili in un segreto creato in Secret Manager.

Puoi rendere disponibile un segreto per i tuoi contenitori in due modi:

  • Monta ogni secret come volume, in modo che sia disponibile per il container come file. La lettura di un volume recupera sempre il valore del secret da Secret Manager, pertanto può essere utilizzata con la versione più recente. Questo metodo funziona bene anche con la rotazione delle chiavi segrete.
  • Passa un segreto utilizzando le variabili di ambiente. Le variabili di ambiente vengono risolte all'avvio dell'istanza, pertanto se utilizzi questo metodo, Google consiglia di bloccare il segreto a una determinata versione anziché utilizzare latest.

Per ulteriori informazioni, consulta il documento sulle best practice di Secret Manager.

Come vengono controllati i secret in fase di deployment e di runtime

Durante il deployment del servizio, tutti i secret utilizzati, come variabile di ambiente o montati come volume, vengono controllati per verificare che l'account di servizio utilizzato per eseguire il contenitore abbia accesso. Se uno dei controlli non va a buon fine, il deployment del servizio non va a buon fine.

Durante l'esecuzione, all'avvio delle istanze:

  • Se il segreto è una variabile di ambiente, il relativo valore viene recuperato prima dell'avvio dell'istanza, pertanto se il recupero del segreto non va a buon fine, l'istanza non si avvia.
  • Se il secret è montato come volume, non viene eseguito alcun controllo durante l'avvio dell'istanza. Tuttavia, durante l'esecuzione, se un segreto non è accessibile, i tentativi di lettura del volume montato non andranno a buon fine.

La proprietà del volume varia in base all'ambiente di esecuzione e al tipo di deployment

Quando monti un volume secret, l'identità proprietaria dei file e delle directory differisce a seconda dell'ambiente di esecuzione del carico di lavoro e se il deployment è costituito da uno o più container.

Nell'ambiente di esecuzione di prima generazione in cui esegui il deployment di un singolo contenuto, il volume segreto è di proprietà dell'identità utilizzata per il contenitore. In tutti gli altri casi, il volume è di proprietà di root. È incluso quanto segue:

  • Ambiente di esecuzione di prima generazione in cui esegui il deployment di più contenuti
  • L'ambiente di seconda generazione

Prima di iniziare

  1. Enable the Secret Manager API.

    Enable the API

  2. Utilizza un secret esistente o creane uno in Secret Manager, come descritto in Crea un secret.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare i secret, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Per consentire a Cloud Run di accedere al secret, l'identità del servizio deve avere il seguente ruolo:

Per istruzioni su come aggiungere l'entità identità del servizio al ruolo Accesso ai secret di Secret Manager, consulta Gestire l'accesso ai secret.

Per un elenco dei ruoli e delle autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il servizio Cloud Run interagisce con le API Google Cloud, come le librerie client di Cloud, consulta la guida alla configurazione dell'identità del servizio. Per ulteriori informazioni sulla concessione dei ruoli, consulta le autorizzazioni di deployment e gestisci l'accesso.

Rendere un secret accessibile a Cloud Run

Qualsiasi modifica alla configurazione comporta la creazione di una nuova revisione. Anche le revisioni successive acquisiranno automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.

Puoi rendere un segreto accessibile al tuo servizio utilizzando la console Google Cloud, l&#Google Cloud CLI o un file YAML quando esegui il deployment di un nuovo servizio o aggiorni un servizio esistente e esegui il deployment di una revisione. Fai clic sulla scheda che preferisci:

Console

  1. Nella console Google Cloud, vai a Cloud Run:

    Vai a Cloud Run

  2. Fai clic su Esegui il deployment del contenitore e seleziona Servizio per configurare un nuovo servizio. Compila la pagina iniziale delle impostazioni del servizio, quindi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione del servizio.

  3. Se stai configurando un servizio esistente, fai clic sul servizio e poi su Modifica ed esegui il deployment di una nuova revisione.

  4. Segui la procedura per montare il secret come volume o esporlo come variabile di ambiente.

    • Per montare il secret come volume:

      1. Fai clic sulla scheda Volumi e seleziona Aggiungi volume.
      2. Nell'elenco Tipo di volume, seleziona Segreto.
      3. Nel campo Nome volume, inserisci un nome o accetta quello predefinito.
      4. Dall'elenco Secret, seleziona il segreto che vuoi utilizzare.
      5. Nel campo Percorso 1, inserisci il nome del file da montare.
      6. Nell'elenco Versione 1, seleziona la versione del segreto da fare riferimento. Per impostazione predefinita, è selezionata la versione più recente. Se vuoi, puoi selezionare una versione specifica.
      7. Fai clic su Fine.
      8. Vai alla scheda Container per montare il segreto nel container.
      9. Nella scheda Montaggi di volumi, fai clic su Monta volume.
      10. Nell'elenco Nome 1, seleziona il nome del volume.
      11. Nel campo Percorso montaggio 1, inserisci il percorso di montaggio per questo secret. Questa è la directory in cui sono posizionate tutte le versioni del secret.
      12. Fai clic su Fine.
      13. Fai clic su Crea o Esegui il deployment.
    • Per esporre il secret come variabile di ambiente:

      1. Fai clic sulla scheda Contenitore.
      2. Nella scheda Variabili e secret, fai clic su Fai riferimento a un secret.
      3. Nel campo Nome 1, inserisci il nome della variabile di ambiente.
      4. Dall'elenco Secret, seleziona il segreto che vuoi utilizzare.
      5. Nell'elenco Version 1 (Versione 1), seleziona la versione del segreto a cui fare riferimento.
      6. Fai clic su Fine.
      7. Fai clic su Crea o Esegui il deployment.

gcloud

Per rendere un segreto accessibile al tuo servizio, inserisci uno dei seguenti comandi.

  • Per montare il secret come volume durante il deployment di un servizio:

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

    Sostituisci:

    • SERVICE con il nome del servizio.
    • IMAGE_URL con un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • PATHcon il percorso di montaggio del volume e il nome del file del secret. Deve iniziare con una barra iniziale, ad esempio: /etc/secrets/dbconfig/password, dove /etc/secrets/dbconfig/ è il percorso di montaggio del volume e password è il nome del file del segreto.
    • SECRET_NAME con il nome del secret nello stesso progetto, ad esempio mysecret.
    • VERSION con la versione del secret. Utilizza latest per la versione più recente o un numero, ad esempio 2.
  • Per esporre il secret come variabile di ambiente durante il deployment di un servizio:

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

    Sostituisci:

    • SERVICE con il nome del servizio.
    • IMAGE_URL con un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • ENV_VAR_NAME con il nome della variabile di ambiente che vuoi utilizzare con il secret.
    • SECRET_NAME con il nome del secret nello stesso progetto, ad esempio mysecret.
    • VERSION con la versione del secret. Utilizza latest per la versione più recente o un numero, ad esempio 2.
  • Puoi aggiornare più segreti contemporaneamente. Per farlo, separa le opzioni di configurazione per ogni segreto con una virgola. Il seguente comando aggiorna un secret montato come volume e un altro secret esposto come variabile di ambiente.

    Per aggiornare i secret esistenti, inserisci il seguente comando:

    gcloud run deploy SERVICE --image IMAGE_URL \
    --update-secrets=PATH=SECRET_NAME:VERSION,ENV_VAR_NAME=SECRET_NAME:VERSION
  • Per cancellare i secret esistenti e rendere accessibile un nuovo secret al servizio, utilizza il flag --set-secrets:

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

YAML

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Per i secret esposti come variabili di ambiente, in env, aggiorna ENV_VAR, VERSION e/o SECRET_NAME come preferisci. Se hai più secret mounted come variabili di ambiente, avrai più di uno di questi attributi.

    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. Per i secret montati come percorsi file, aggiorna MOUNT_PATH, VOLUME_NAME, VERSION,FILENAME e/o SECRET_NAME come preferisci. Se hai più segreti montati come percorsi file, avrai più di questi attributi.

    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

    Tieni presente che VOLUME_NAME può essere impostato su qualsiasi nome.

    Sostituisci

    • SERVICE con il nome del servizio Cloud Run
    • IMAGE_URL con un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • REVISION con un nuovo nome della revisione o eliminala (se presente). Se fornisci un nuovo nome di revisione, questo deve soddisfare i seguenti criteri:
      • Inizia con SERVICE-
      • Deve contenere solo lettere minuscole, numeri e -
      • Non termina con -
      • Non deve superare i 63 caratteri
  4. Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:

    gcloud run services replace service.yaml

Terraform

  1. Crea un secret e una versione del secret.

    resource "google_secret_manager_secret" "default" {
      secret_id = "my-secret"
      replication {
        auto {}
      }
    }
    
    resource "google_secret_manager_secret_version" "default" {
      secret      = google_secret_manager_secret.default.name
      secret_data = "this is secret data"
    }
  2. Crea un account di servizio e concedigli l'accesso al secret:

    resource "google_service_account" "default" {
      account_id   = "cloud-run-service-account"
      display_name = "Service account for Cloud Run"
    }
    
    resource "google_secret_manager_secret_iam_member" "default" {
      secret_id = google_secret_manager_secret.default.id
      role      = "roles/secretmanager.secretAccessor"
      # Grant the new deployed service account access to this secret.
      member     = "serviceAccount:${google_service_account.default.email}"
      depends_on = [google_secret_manager_secret.default]
    }
  3. È possibile accedere ai secret di Secret Manager da Cloud Run come percorsi file montati o come variabili di ambiente.

    1. Per i secret montati come percorsi file, fai riferimento alla risorsa Secret Manager nel parametro volumes. name corrisponde a una voce nel parametro volume_mounts:

      resource "google_cloud_run_v2_service" "mounted_secret" {
        name     = "service-with-mounted-secret"
        location = "us-central1"
        ingress  = "INGRESS_TRAFFIC_ALL"
      
        deletion_protection = false # set to "true" in production
      
        template {
          volumes {
            name = "my-service-volume"
            secret {
              secret = google_secret_manager_secret.default.secret_id
              items {
                version = "latest"
                path    = "my-secret"
                mode    = 0 # use default 0444
              }
            }
          }
          containers {
            image = "us-docker.pkg.dev/cloudrun/container/hello"
            volume_mounts {
              name       = "my-service-volume"
              mount_path = "/secrets"
            }
          }
          service_account = google_service_account.default.email
        }
        depends_on = [google_secret_manager_secret_version.default]
      }
    2. Per i secret esposti come variabili di ambiente, fai riferimento alla risorsa Secret Manager nel parametro env:

      resource "google_cloud_run_v2_service" "env_variable_secret" {
        name     = "service-with-env-var-secret"
        location = "us-central1"
        ingress  = "INGRESS_TRAFFIC_ALL"
      
        deletion_protection = false # set to "true" in production
      
        template {
          containers {
            image = "us-docker.pkg.dev/cloudrun/container/hello"
            env {
              name = "MY_SECRET"
              value_source {
                secret_key_ref {
                  secret  = google_secret_manager_secret.default.secret_id
                  version = "latest"
                }
              }
            }
          }
          service_account = google_service_account.default.email
        }
        depends_on = [google_secret_manager_secret_version.default]
      }

Fare riferimento ai secret di altri progetti

Per fare riferimento a un secret di un altro progetto, verifica che l'account di servizio del tuo progetto abbia accesso al secret.

Console

  1. Nella console Google Cloud, vai a Cloud Run:

    Vai a Cloud Run

  2. Fai clic su Esegui il deployment del contenitore e seleziona Servizio per configurare un nuovo servizio. Compila la pagina iniziale delle impostazioni del servizio, quindi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione del servizio.

  3. Se stai configurando un servizio esistente, fai clic sul servizio e poi su Modifica ed esegui il deployment di una nuova revisione.

  4. Segui la procedura per montare il secret come volume o esporlo come variabile di ambiente.

    • Per montare il secret come volume:

      1. Fai clic sulla scheda Volumi e seleziona Aggiungi volume.
      2. Nell'elenco Tipo di volume, seleziona Segreto.
      3. Nel campo Nome volume, inserisci un nome o accetta quello predefinito.
      4. Nell'elenco Secret, fai clic su Inserisci il secret manualmente.
      5. Inserisci l'ID risorsa del secret nel seguente formato:

        projects/PROJECT_NUMBER/secrets/SECRET_NAME
        

        Sostituisci quanto segue:

        • PROJECT_NUMBER con il numero del tuo progetto Google Cloud. Per istruzioni dettagliate su come trovare il numero del progetto, consulta Creare e gestire progetti.

        • SECRET_NAME: il nome del secret in Secret Manager.

      6. Nel campo Percorso 1, inserisci il nome del file da montare.

      7. Nell'elenco Versione 1, seleziona la versione del segreto da fare riferimento. Per impostazione predefinita, è selezionata la versione più recente. Se vuoi, puoi selezionare una versione specifica.

      8. Fai clic su Fine.

      9. Vai alla scheda Container per montare il segreto nel container.

      10. Nella scheda Montaggi di volumi, fai clic su Monta volume.

      11. Nell'elenco Nome 1, seleziona il nome del volume.

      12. Nel campo Percorso montaggio 1, inserisci il percorso di montaggio per questo secret. Questa è la directory in cui sono posizionate tutte le versioni del secret.

      13. Fai clic su Fine.

      14. Fai clic su Crea o Esegui il deployment.

    • Per esporre il secret come variabile di ambiente:

      1. Fai clic sulla scheda Contenitore.
      2. Nella scheda Variabili e secret, fai clic su Fai riferimento a un secret.
      3. Nel campo Nome 1, inserisci il nome della variabile di ambiente.
      4. Nell'elenco Secret, fai clic su Inserisci il secret manualmente.
      5. Inserisci l'ID risorsa del secret nel seguente formato:

        projects/PROJECT_NUMBER/secrets/SECRET_NAME
        

        Sostituisci quanto segue:

        • PROJECT_NUMBER con il numero del tuo progetto Google Cloud. Per istruzioni dettagliate su come trovare il numero del progetto, consulta Creare e gestire progetti.

        • SECRET_NAME: il nome del secret in Secret Manager.

      6. Nell'elenco Version 1 (Versione 1), seleziona la versione del segreto a cui fare riferimento.

      7. Fai clic su Fine.

      8. Fai clic su Crea o Esegui il deployment.

gcloud

  • Per montare un secret come volume durante il deployment di un servizio:

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

    Sostituisci:

    • SERVICE con il nome del servizio.
    • IMAGE_URL con un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • PATHcon il percorso di montaggio del volume e il nome del file del secret. Deve iniziare con una barra iniziale, ad esempio: /etc/secrets/dbconfig/password, dove /etc/secrets/dbconfig/ è il percorso di montaggio del volume e password è il nome del file del segreto.
    • PROJECT_NUMBER con il numero del progetto in cui è stato creato il secret.
    • SECRET_NAME con il nome del secret, ad esempio mysecret.
    • VERSION con la versione del secret. Utilizza latest per la versione più recente o un numero, ad esempio 2.

YAML

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:

    gcloud run services describe SERVICE --format export > service.yaml

A causa di vincoli relativi alla compatibilità con le API, le posizioni degli secret devono essere memorizzate in un'annotazione.

  1. Per i secret esposti come variabili di ambiente:

    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

    Sostituisci:

    • SERVICE con il nome del servizio.
    • IMAGE_URL con un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • ENV_VAR
    • PROJECT_NUMBER con il numero del progetto in cui è stato creato il secret.
    • SECRET_NAME con il nome del secret, ad esempio mysecret.
    • VERSION con la versione del secret. Utilizza latest per la versione più recente o un numero, ad esempio 2.
    • SECRET_LOOKUP_NAME con qualsiasi nome che abbia una sintassi di nome secret valida (ad es. my-secret), può essere uguale a SECRET_NAME
  2. Per i secret montati come percorsi file:

    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

    Sostituisci:

    • SERVICE con il nome del servizio.
    • IMAGE_URL con un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • PATHcon il percorso di montaggio del volume e il nome del file del secret. Deve iniziare con una barra iniziale, ad esempio: /etc/secrets/dbconfig/password, dove /etc/secrets/dbconfig/ è il percorso di montaggio del volume e password è il nome del file del segreto.
    • PROJECT_NUMBER con il numero del progetto in cui è stato creato il secret.
    • SECRET_NAME con il nome del secret, ad esempio mysecret.
    • VERSION con la versione del secret. Utilizza latest per la versione più recente o un numero, ad esempio 2.
    • SECRET_LOOKUP_NAME con qualsiasi nome che abbia una sintassi di nome secret valida (ad es. my-secret), può essere uguale a SECRET_NAME
    • VOLUME_NAME con qualsiasi nome (ad es. my-volume), può essere uguale a SECRET_NAME

Visualizza le impostazioni dei secret

Per visualizzare le impostazioni correnti dei secret per il servizio Cloud Run:

Console

  1. Nella console Google Cloud, vai a Cloud Run:

    Vai a Cloud Run

  2. Fai clic sul servizio che ti interessa per aprire la pagina Dettagli servizio.

  3. Fai clic sulla scheda Revisioni.

  4. Nel riquadro dei dettagli a destra, l'impostazione dei segreti è elencata nella scheda Contenitore.

gcloud

  1. Utilizza il seguente comando:

    gcloud run services describe SERVICE
  2. Individua l'impostazione dei secret nella configurazione restituita.

Rimuovere i secret da un servizio

Puoi rimuovere i secret da un servizio utilizzando la console Google Cloud o gcloud CLI:

Console

  1. Nella console Google Cloud, vai a Cloud Run:

    Vai a Cloud Run

  2. Seleziona il servizio dall'elenco e fai clic su Modifica ed esegui il deployment della nuova revisione.

  3. Fai clic sulla scheda Contenitore.

  4. Per eliminare i secret montati come volume, seleziona la scheda Montaggi volume, tieni premuto il cursore sul secret da rimuovere e fai clic su Elimina.

  5. Per eliminare i secret esposti come variabile di ambiente, seleziona la scheda Voci e secret, tieni premuto il cursore sul secret che vuoi rimuovere e fai clic su Elimina.

  6. Fai clic su Esegui il deployment.

gcloud

Puoi rimuovere tutti i secret da un servizio o specificare uno o più secret da rimuovere:

  • Per rimuovere tutti i secret, esegui il seguente comando:

    gcloud run deploy SERVICE --image IMAGE_URL \
    --clear-secrets
    

    Sostituisci:

    • SERVICE con il nome del servizio.
    • IMAGE_URL con un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
  • Per specificare un elenco di secret da rimuovere, utilizza il flag --remove-secrets. Il seguente comando rimuove un secret montato come volume e un altro secret esposto come variabile di ambiente:

    gcloud run deploy SERVICE --image IMAGE_URL \
    --remove-secrets=ENV_VAR_NAME,SECRET_FILE_PATH
    

    Sostituisci:

    • SERVICE con il nome del servizio.
    • IMAGE_URL con un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • ENV_VAR_NAME: il nome della variabile di ambiente.
    • SECRET_FILE_PATH: il percorso completo del secret. Ad esempio, /mnt/secrets/primary/latest, dove /mnt/secrets/primary/ è il percorso di montaggio e latest è il percorso della secret. Puoi anche specificare i percorsi di montaggio e dei secret separatamente:

          --set-secrets MOUNT_PATH:SECRET_PATH=SECRET:VERSION
      

Utilizzare i secret nel codice

Per esempi su come accedere ai secret nel codice come variabili di ambiente, consulta il tutorial sull'autenticazione degli utenti finali, in particolare la sezione Gestione della configurazione sensibile con Secret Manager.

Percorsi non consentiti e limitazioni

Cloud Run non ti consente di montare i secret in /dev, /proc e /sys o nelle relative sottodirectory.

Se monti i secret su /tmp e utilizzi l'ambiente di esecuzione di prima generazione, consulta il problema noto relativo al montaggio dei secret su /tmp.

Cloud Run non ti consente di montare più segreti nello stesso percorso perché non è possibile montare due mount del volume nella stessa posizione.

Sostituzione di una directory

Se il secret è montato come volume in Cloud Run e l'ultima directory nel percorso di montaggio del volume esiste già, tutti i file o le cartelle nella directory esistente diventano inaccessibili.

Ad esempio, se un segreto denominato my-secret è montato sul percorso/etc/app_data, tutti i contenuti all'interno della directory app_data verranno sovrascritti e l'unico file visibile sarà /etc/app_data/my-secret.

Per evitare di sovrascrivere i file in una directory esistente, crea una nuova directory per il montaggio del secret, ad esempio /etc/app_data/secrets, in modo che il percorso di montaggio del secret sia /etc/app_data/secrets/my-secret.