Il tuo servizio potrebbe avere dipendenze che richiedono chiavi API, password, certificati o altre informazioni sensibili. Per Cloud Run, Google consiglia di archiviare questo tipo di informazioni sensibili in un secret creato in Secret Manager.
Puoi rendere disponibile un secret ai tuoi container 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, quindi può essere utilizzato con la versione latest. Questo metodo funziona bene anche con la rotazione dei secret.
- Passa un secret utilizzando le variabili di ambiente. Le variabili di ambiente vengono risolte all'avvio dell'istanza, quindi se utilizzi questo metodo, Google consiglia di bloccare il secret su una versione specifica anziché utilizzare latest.
Per saperne di più, consulta il documento Best practice di Secret Manager.
Come vengono controllati i secret durante il deployment e l'esecuzione
Durante il deployment del servizio, tutti i secret utilizzati, come variabile di ambiente o montati come volume, vengono controllati per garantire che l'account di servizio utilizzato per eseguire il container abbia accesso. Se un controllo non viene superato, il deployment del servizio non va a buon fine.
Durante l'esecuzione, all'avvio delle istanze:
- Se il secret è una variabile di ambiente, il valore del secret viene recuperato prima dell'avvio dell'istanza, quindi se il recupero del secret non riesce, l'istanza non viene avviata.
- Se il secret è montato come volume, non viene eseguito alcun controllo durante l'avvio dell'istanza. Tuttavia, durante l'esecuzione, se un secret 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 varia a seconda dell'ambiente di esecuzione del carico di lavoro e del fatto che il deployment sia costituito da uno o più container.
Nell'ambiente di esecuzione di prima generazione in cui esegui il deployment di un singolo container, il volume secret è di proprietà dell'identità utilizzata per il container. 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ù container
- L'ambiente di seconda generazione
Prima di iniziare
-
Enable the Secret Manager API.
- Utilizza un secret esistente o creane uno in Secret Manager, come descritto in Creare un secret.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare i secret, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Amministratore di Cloud Run (
roles/run.admin
) sul servizio Cloud Run -
Utente service account (
roles/iam.serviceAccountUser
) sull'identità di servizio
Per consentire a Cloud Run di accedere al secret, l'identità del servizio deve disporre del seguente ruolo:
- Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor
)
Per istruzioni su come aggiungere l'entità dell'identità del servizio al ruolo Funzione di accesso di Secret Manager, vedi Gestire l'accesso ai secret.
Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM Cloud Run e Autorizzazioni IAM Cloud Run. Se il tuo servizio Cloud Run interagisce con le APIGoogle Cloud , come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per ulteriori informazioni sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestire l'accesso.
Rendere accessibile un secret a Cloud Run
Qualsiasi modifica alla configurazione comporta la creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che tu non apporti aggiornamenti espliciti per modificarla.
Puoi rendere accessibile un secret al tuo servizio utilizzando la console Google Cloud , Google Cloud CLI o un file YAML quando esegui il deployment di un nuovo servizio o aggiorni un servizio esistente e quando esegui il deployment di una revisione. Fai clic sulla scheda che preferisci:
Console
Nella console Google Cloud , vai a Cloud Run:
Seleziona Servizi dal menu e fai clic su Esegui il deployment del contenitore per configurare un nuovo servizio. Compila la pagina delle impostazioni iniziali del servizio, poi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione del servizio.
Se stai configurando un servizio esistente, fai clic sul servizio e poi su Modifica ed esegui il deployment della nuova revisione.
Segui i passaggi per montare il secret come volume o esporlo come variabile di ambiente.
Per esporre il secret come variabile di ambiente:
- Fai clic sulla scheda Container.
- Nella scheda Variabili e secret, fai clic su Fai riferimento a un secret.
- Nel campo Nome 1, inserisci il nome della variabile di ambiente.
- Dall'elenco Secret, seleziona il segreto che vuoi utilizzare.
- Nell'elenco Versione 1, seleziona la versione del secret a cui fare riferimento.
- Fai clic su Fine.
- Fai clic su Crea o Esegui il deployment.
Per montare il secret come volume:
- Fai clic sulla scheda Volumi e seleziona Aggiungi volume.
- Nell'elenco Tipo di volume, seleziona Secret.
- Nel campo Nome volume, inserisci un nome o accetta quello predefinito.
- Dall'elenco Secret, seleziona il segreto che vuoi utilizzare.
- Nel campo Percorso 1, inserisci il nome del file da montare.
- Nell'elenco Versione 1, seleziona la versione del secret a cui fare riferimento. Per impostazione predefinita, è selezionata l'ultima versione. Se vuoi, puoi selezionare una versione specifica.
- Fai clic su Fine.
- Vai alla scheda Container per montare il secret nel container.
- Nella scheda Montaggi di volumi, fai clic su Monta volume.
- Nell'elenco Nome 1, seleziona il nome del volume.
- Nel campo Percorso di montaggio 1, inserisci il percorso di montaggio per questo secret. Questa è la directory in cui vengono inserite tutte le versioni del secret.
- Fai clic su Fine.
- Fai clic su Crea o Esegui il deployment.
gcloud
Per rendere un secret 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 tuo servizio.- IMAGE_URL con un riferimento all'immagine 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 formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
PATH
con il percorso di montaggio del volume e il nome file del secret. Deve iniziare con una barra, ad esempio:/etc/secrets/dbconfig/password
, dove/etc/secrets/dbconfig/
è il percorso di montaggio del volume epassword
è il nome file del secret.SECRET_NAME
con il nome del secret nello stesso progetto, ad esempiomysecret
.VERSION
con la versione del secret. Utilizzalatest
per l'ultima versione o un numero, ad esempio2
.
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 tuo servizio.- IMAGE_URL con un riferimento all'immagine 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 formaLOCATION-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 esempiomysecret
.VERSION
con la versione del secret. Utilizzalatest
per l'ultima versione o un numero, ad esempio2
.
Puoi aggiornare più secret contemporaneamente. Per farlo, separa le opzioni di configurazione per ogni secret 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
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
Per i secret esposti come variabili di ambiente, in
env
, aggiorna ENV_VAR, VERSION e/o SECRET_NAME come preferisci. Se hai più secret montati come variabili di ambiente, 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 env: - name: ENV_VAR valueFrom: secretKeyRef: key: VERSION name: SECRET_NAME
Per i secret montati come percorsi di file, aggiorna MOUNT_PATH, VOLUME_NAME, VERSION, FILENAME e/o SECRET_NAME come preferisci. Se hai più secret montati come percorsi di file, avrai più 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 tuo servizio Cloud Run
- IMAGE_URL con un riferimento all'immagine 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 formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- REVISION con un nuovo nome di revisione o eliminalo (se presente). Se fornisci un nuovo nome di revisione, questo deve soddisfare i seguenti criteri:
- Inizia con
SERVICE-
- Contiene solo lettere minuscole, numeri e
-
- Non termina con
-
- Non supera i 63 caratteri
- Inizia con
Sostituisci il servizio con la sua nuova configurazione utilizzando il seguente comando:
gcloud run services replace service.yaml
Terraform
Crea un secret e una versione del secret.
Crea un account di servizio e concedigli l'accesso al secret:
È possibile accedere ai secret di Secret Manager da Cloud Run come percorsi di file montati o come variabili di ambiente.
Per i secret montati come percorsi di file, fai riferimento alla risorsa Secret Manager nel parametro
volumes
.name
corrisponde a una voce nel parametrovolume_mounts
:Per i secret esposti come variabili di ambiente, fai riferimento alla risorsa Secret Manager nel parametro
env
:
Fai 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
Nella console Google Cloud , vai a Cloud Run:
Seleziona Servizi dal menu e fai clic su Esegui il deployment del contenitore per configurare un nuovo servizio. Compila la pagina delle impostazioni iniziali del servizio, poi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione del servizio.
Se stai configurando un servizio esistente, fai clic sul servizio e poi su Modifica ed esegui il deployment della nuova revisione.
Segui i passaggi per montare il secret come volume o esporlo come variabile di ambiente.
Per esporre il secret come variabile di ambiente:
- Fai clic sulla scheda Container.
- Nella scheda Variabili e secret, fai clic su Fai riferimento a un secret.
- Nel campo Nome 1, inserisci il nome della variabile di ambiente.
- Nell'elenco Secret, fai clic su Inserisci il secret manualmente.
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 di progetto, vedi Creazione e gestione dei progetti.
SECRET_NAME: il nome del secret in Secret Manager.
Nell'elenco Versione 1, seleziona la versione del secret a cui fare riferimento.
Fai clic su Fine.
Fai clic su Crea o Esegui il deployment.
Per montare il secret come volume:
- Fai clic sulla scheda Volumi e seleziona Aggiungi volume.
- Nell'elenco Tipo di volume, seleziona Secret.
- Nel campo Nome volume, inserisci un nome o accetta quello predefinito.
- Nell'elenco Secret, fai clic su Inserisci il secret manualmente.
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 di progetto, vedi Creazione e gestione dei progetti.
SECRET_NAME: il nome del secret in Secret Manager.
Nel campo Percorso 1, inserisci il nome del file da montare.
Nell'elenco Versione 1, seleziona la versione del secret a cui fare riferimento. Per impostazione predefinita, è selezionata l'ultima versione. Se vuoi, puoi selezionare una versione specifica.
Fai clic su Fine.
Vai alla scheda Container per montare il secret nel container.
Nella scheda Montaggi di volumi, fai clic su Monta volume.
Nell'elenco Nome 1, seleziona il nome del volume.
Nel campo Percorso di montaggio 1, inserisci il percorso di montaggio per questo secret. Questa è la directory in cui vengono inserite tutte le versioni del secret.
Fai clic su Fine.
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 tuo servizio.- IMAGE_URL con un riferimento all'immagine 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 formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
PATH
con il percorso di montaggio del volume e il nome file del secret. Deve iniziare con una barra, ad esempio:/etc/secrets/dbconfig/password
, dove/etc/secrets/dbconfig/
è il percorso di montaggio del volume epassword
è il nome file del secret.PROJECT_NUMBER
con il numero di progetto per il progetto in cui è stato creato il secret.SECRET_NAME
con il nome del secret, ad esempiomysecret
.VERSION
con la versione del secret. Utilizzalatest
per l'ultima versione o un numero, ad esempio2
.
YAML
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 dei vincoli relativi alla compatibilità delle API, le posizioni dei secret devono essere archiviate in un'annotazione.
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 tuo servizio.- IMAGE_URL con un riferimento all'immagine 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 formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
ENV_VAR
PROJECT_NUMBER
con il numero di progetto per il progetto in cui è stato creato il secret.SECRET_NAME
con il nome del secret, ad esempiomysecret
.VERSION
con la versione del secret. Utilizzalatest
per l'ultima versione o un numero, ad esempio2
.SECRET_LOOKUP_NAME
con qualsiasi nome che abbia una sintassi valida per il nome secret (ad es.my-secret
), può essere uguale aSECRET_NAME
Per i secret montati come percorsi di 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 tuo servizio.- IMAGE_URL con un riferimento all'immagine 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 formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
PATH
con il percorso di montaggio del volume e il nome file del secret. Deve iniziare con una barra, ad esempio:/etc/secrets/dbconfig/password
, dove/etc/secrets/dbconfig/
è il percorso di montaggio del volume epassword
è il nome file del secret.PROJECT_NUMBER
con il numero di progetto per il progetto in cui è stato creato il secret.SECRET_NAME
con il nome del secret, ad esempiomysecret
.VERSION
con la versione del secret. Utilizzalatest
per l'ultima versione o un numero, ad esempio2
.SECRET_LOOKUP_NAME
con qualsiasi nome che abbia una sintassi valida per il nome secret (ad es.my-secret
), può essere uguale aSECRET_NAME
VOLUME_NAME
con qualsiasi nome (ad es.my-volume
), può essere uguale aSECRET_NAME
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Aggiungi quanto segue a una risorsagoogle_cloud_run_v2_service
nella configurazione Terraform:Per i secret esposti come variabili di ambiente:
resource "google_cloud_run_v2_service" "default" {
name = "SERVICE_NAME"
location = "us-central1"
template {
containers {
image = "IMAGE_URL"
env {
name = "SECRET_NAME"
value_source {
secret_key_ref {
secret = "projects/PROJECT_ID/secrets/SECRET_NAME"
version = "VERSION"
}
}
}
}
}
}
Sostituisci:
- SERVICE_NAME con il nome del tuo job Cloud Run.
- IMAGE_URL con un riferimento all'immagine 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 formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- SECRET_NAME con il nome del secret, ad esempio
mysecret
. - PROJECT_ID con l'ID progetto in cui è stato creato il secret.
- VERSION con la versione del secret. Utilizza
latest
per la versione più recente o un numero, ad esempio2
.
Per i secret montati come percorsi di file:
resource "google_cloud_run_v2_service" "default" {
name = "SERVICE_NAME"
location = "us-central1"
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"
}
}
}
}
Sostituisci:
- SERVICE_NAME con il nome del tuo job Cloud Run.
- IMAGE_URL con un riferimento all'immagine 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 formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- VOLUME_NAME con qualsiasi nome (ad es.
my-volume
), può essere uguale aSECRET_NAME
- MOUNT_PATH con il percorso di montaggio del volume e
il nome file del secret. Deve iniziare con una barra, ad esempio:
/etc/secrets/dbconfig/password
, dove/etc/secrets/dbconfig/
è il percorso di montaggio del volume epassword
è il nome file del secret. - PROJECT_ID con l'ID progetto in cui è stato creato il secret.
- SECRET_NAME con il nome del secret, ad esempio
mysecret
.
Visualizza le impostazioni dei secret
Per visualizzare le impostazioni dei secret correnti per il tuo servizio Cloud Run:
Console
Nella console Google Cloud , vai a Cloud Run:
Fai clic sul servizio che ti interessa per aprire la pagina Dettagli servizio.
Fai clic sulla scheda Revisioni.
Nel riquadro dei dettagli a destra, l'impostazione dei secret è elencata nella scheda Contenitore.
gcloud
Utilizza questo comando:
gcloud run services describe SERVICE
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
Nella console Google Cloud , vai a Cloud Run:
Seleziona il tuo servizio dall'elenco e fai clic su Modifica e implementa nuova revisione.
Fai clic sulla scheda Container.
Per eliminare i secret montati come volume, seleziona la scheda Montaggi volume, passa il puntatore sopra il secret che vuoi rimuovere, quindi fai clic su
Elimina.Per eliminare i secret esposti come variabile di ambiente, seleziona la scheda Variabili e secret, passa il puntatore sopra il secret che vuoi rimuovere, quindi fai clic su
Elimina.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 questo comando:
gcloud run deploy SERVICE --image IMAGE_URL \ --clear-secrets
Sostituisci:
- SERVICE con il nome del tuo servizio.
- IMAGE_URL con un riferimento all'immagine 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 formaLOCATION-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 tuo servizio.
- IMAGE_URL con un riferimento all'immagine 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 formaLOCATION-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 elatest
è il percorso del 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 di accesso ai secret nel codice come variabili di ambiente, consulta il tutorial sull'autenticazione dell'utente finale, in particolare la sezione Gestire la configurazione sensibile con Secret Manager.
Percorsi non consentiti e limitazioni
Cloud Run non 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 consente di montare più secret nello stesso percorso perché due montaggi di volumi non possono essere montati nella stessa posizione.
Eseguire l'override di una directory
Se il secret viene 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 secret denominato my-secret
viene montato sul percorso
/etc/app_data
, tutti i contenuti all'interno della directory app_data
verranno
sovrascritti e l'unico file visibile è /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
.