Il tuo servizio potrebbe richiedere chiavi API, password, certificati o altre informazioni sensibili per le sue dipendenze. Per Cloud Run, Google consiglia di archiviare queste informazioni sensibili in un secret creato in Secret Manager.
Rendi un secret disponibile per i tuoi container in uno dei seguenti modi:
- Quando monti ogni secret come volume, Cloud Run lo rende disponibile al container sotto forma di file. Durante la lettura di un volume, Cloud Run recupera sempre il valore del secret da Secret Manager per utilizzare il valore con l'ultima versione. Questo metodo è indicato anche se prevedi di implementare 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 a una versione specifica anziché utilizzare
latestcome versione.
Per saperne di più, consulta le best practice di Secret Manager.
Come vengono controllati i secret durante il deployment e il runtime
Durante il deployment del servizio, Cloud Run controlla tutti i secret che utilizzi. Il controllo garantisce che il account di servizio che esegue il container disponga dell'autorizzazione per accedere a questi secret.
Durante il runtime, quando le istanze vengono avviate:
- Se il secret è una variabile di ambiente, Cloud Run recupera il valore del secret prima di avviare l'istanza. Se il processo di recupero del secret non va a buon fine, l'istanza non si avvia.
- Se monti il secret come volume, Cloud Run non esegue alcun controllo durante l'avvio dell'istanza. Tuttavia, durante il runtime, se un secret non è accessibile, i tentativi di lettura del volume montato non vanno a buon fine.
Proprietà del volume
La proprietà di un volume di secret di Cloud Run varia in base all'ambiente di esecuzione e al tipo di deployment.
Quando monti un volume di secret, l'identità proprietaria dei file e delle directory varia a seconda dell'ambiente di esecuzione del workload e del fatto che il deployment sia composto da uno o più container.
Nell'ambiente di esecuzione di prima generazione in cui esegui il deployment di un singolo container, l'identità che utilizzi per il container è proprietaria del volume del secret. In tutti gli altri casi, root è proprietario del volume. È 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
Abilita l'API Secret Manager, se non è già abilitata.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.- 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:
- Cloud Run Admin (
roles/run.admin) sul servizio Cloud Run - Utente dell'account di servizio (
roles/iam.serviceAccountUser) sull'identità di servizio
Per consentire a Cloud Run di accedere al secret, l'identità di servizio deve avere il seguente ruolo:
- Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor)
Per istruzioni su come aggiungere l'entità dell'identità del servizio al ruolo Secret Manager Secret Accessor, consulta Gestisci l'accesso ai secret.
Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di 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 saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.
Rendi un secret accessibile a Cloud Run
Qualsiasi modifica alla configurazione porta alla creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.
Puoi rendere un secret accessibile 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 ed 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 di navigazione di Cloud Run:
Se stai configurando un nuovo servizio, fai clic su Esegui il deployment del container e compila la pagina delle impostazioni iniziali del servizio. Quindi fai clic su Container, networking, sicurezza per espandere la pagina di configurazione del servizio.
Se stai configurando un servizio esistente, fai clic sul servizio.
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.
- In 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 secret che vuoi utilizzare.
- Nell'elenco Versione 1, seleziona la versione del secret a cui fare riferimento.
- Fai clic su Fine.
- Fai clic su Crea per un nuovo servizio. Fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche per un servizio esistente.
Per montare il secret come volume:
- Se stai configurando un nuovo servizio, fai clic sulla scheda Volumi. Se stai configurando un servizio esistente, fai clic sulla scheda Container.
- Fai clic su Monta volume.
- Fai clic su Secret.
- Nel campo Percorso montaggio, inserisci il percorso di montaggio per questo secret. Questa è la directory in cui vengono inserite tutte le versioni del secret.
- Dall'elenco Secret, seleziona il secret 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 Salva.
- Fai clic su Crea per un nuovo servizio. Fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche per un servizio esistente.
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 quanto segue:
- SERVICE: il nome del servizio.
IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG- PATH: 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: il nome del secret nello stesso progetto, ad esempio
mysecret. - VERSION: la versione del secret. Utilizza
latestper 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 quanto segue:
- SERVICE: il nome del servizio.
IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- ENV_VAR_NAME: il nome della variabile di ambiente che vuoi utilizzare con il secret.
- SECRET_NAME: il nome del secret nello stesso progetto, ad esempio
mysecret. - VERSION: la versione del secret. Utilizza
latestper l'ultima versione o un numero, ad esempio2.
Puoi aggiornare più secret contemporaneamente. Per farlo, separa le opzioni di configurazione di 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 un nuovo secret accessibile 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ù attributi di questo tipo.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 file, aggiorna MOUNT_PATH, VOLUME_NAME, VERSION, FILENAME e/o SECRET_NAME come preferisci. Se hai più secret montati come percorsi file, avrai più attributi di questo tipo.
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_NAMEpuò essere impostato su qualsiasi nome.Sostituisci quanto segue:
- SERVICE: il nome del servizio Cloud Run.
IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.REVISION: un nuovo nome della revisione o eliminalo (se presente). Se fornisci un nuovo nome della 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 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 file, fai riferimento alla risorsa Secret Manager nel parametro
volumes.namecorrisponde a una voce nel parametrovolume_mounts:Per i secret esposti come variabili di ambiente, fai riferimento alla risorsa Secret Manager nel parametro
env:
Scrivi
Per specificare i secret nel file compose.yaml, aggiungi l'attributo secrets alla definizione del servizio. In questo modo viene creato un secret di Secret Manager per archiviare questi dati in base al valore nel file locale.
services: web: image:IMAGEsecrets: -SECRET_NAMEsecrets:SECRET_NAME: file:SECRET_FILE_PATH
Sostituisci quanto segue:
- IMAGE: l'URL dell'immagine container.
- SECRET_NAME: il nome del secret, ad esempio
mysecret. - SECRET_FILE_PATH: il percorso del file locale contenente il valore del secret.
Esegui il deployment del servizio
Per eseguire il deployment dei servizi, esegui il comando
gcloud run compose up:gcloud run compose up compose.yamlRispondi
ya eventuali prompt per installare i componenti richiesti o per abilitare le API.(Facoltativo) Rendi pubblico il servizio se vuoi consentire l'accesso non autenticato al servizio.
Dopo il deployment, viene visualizzato l'URL del servizio Cloud Run. Copia questo URL e incollalo nel browser per visualizzare il container in esecuzione. Puoi disattivare l'autenticazione predefinita dalla console Google Cloud .
Fai riferimento ai secret di altri progetti
Per fare riferimento a un secret di un altro progetto, verifica che il service account del tuo progetto abbia accesso al secret.
Console
Nella console Google Cloud , vai a Cloud Run:
Seleziona Servizi dal menu di navigazione di Cloud Run:
Se stai configurando un nuovo servizio, fai clic su Esegui il deployment del container e compila la pagina delle impostazioni iniziali del servizio. Quindi fai clic su Container, networking, sicurezza per espandere la pagina di configurazione del servizio.
Se stai configurando un servizio esistente, fai clic sul servizio.
Segui i passaggi per montare il secret come volume o esporlo come variabile di ambiente.
Per esporre il secret come variabile di ambiente:
- Se stai configurando un servizio esistente, fai clic sulla scheda Container. Se stai creando un nuovo servizio, fai clic per espandere Container, networking, sicurezza.
- In 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_NAMESostituisci quanto segue:
PROJECT_NUMBER con il numero di progetto Google Cloud . Per istruzioni dettagliate su come trovare il numero del progetto, consulta 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 Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche.
Per montare il secret come volume:
- Se stai configurando un servizio esistente, fai clic sulla scheda Container. Se stai creando un nuovo servizio, fai clic sulla scheda Volumi in Container, Networking, Sicurezza.
- Fai clic su Monta volume.
- Fai clic su Secret.
- Nel campo Percorso montaggio, inserisci il percorso di montaggio per questo secret. Questa è la directory in cui vengono inserite tutte le versioni del secret.
- Nell'elenco Secret, fai clic su Inserisci il secret manualmente.
Inserisci l'ID risorsa del secret nel seguente formato:
projects/PROJECT_NUMBER/secrets/SECRET_NAMESostituisci quanto segue:
PROJECT_NUMBER con il numero di progetto Google Cloud . Per istruzioni dettagliate su come trovare il numero del progetto, consulta 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 Salva.
Fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche.
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 quanto segue:
- SERVICE: il nome del servizio.
IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- PATH: 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: il numero del progetto in cui è stato creato il secret.
- SECRET_NAME: il nome del secret, ad esempio
mysecret. - VERSION: la versione del secret. Utilizza
latestper 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 di 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 quanto segue:
- SERVICE: il nome del servizio.
IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG- ENV_VAR: il nome della variabile di ambiente.
- PROJECT_NUMBER: il numero del progetto in cui è stato creato il secret.
- SECRET_NAME: il nome del secret, ad esempio
mysecret. - VERSION: la versione del secret. Utilizza
latestper l'ultima versione o un numero, ad esempio2. - SECRET_LOOKUP_NAME: qualsiasi nome con una sintassi del nome del secret valida, ad esempio
my-secret, può essere uguale a SECRET_NAME.
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 quanto segue:
- SERVICE: il nome del servizio.
IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- PATH: 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: il numero del progetto in cui è stato creato il secret.
- SECRET_NAME: il nome del secret, ad esempio
mysecret. - VERSION: la versione del secret. Utilizza
latestper l'ultima versione o un numero, ad esempio2. - SECRET_LOOKUP_NAME: qualsiasi nome con una sintassi del nome del secret valida, ad esempio
my-secret, può essere uguale a SECRET_NAME. - VOLUME_NAME: qualsiasi nome, ad esempio
my-volume, può essere uguale a SECRET_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 = "REGION"
template {
containers {
image = "IMAGE_URL"
env {
name = "SECRET_NAME"
value_source {
secret_key_ref {
secret = "projects/PROJECT_ID/secrets/SECRET_NAME"
version = "VERSION"
}
}
}
}
}
}
Sostituisci quanto segue:
- SERVICE_NAME: il nome del job Cloud Run.
- REGION: la regione Google Cloud . Ad esempio
europe-west1. IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- SECRET_NAME: il nome del secret, ad esempio
mysecret. - PROJECT_ID: l'ID progetto in cui è stato creato il secret.
- VERSION: la versione del secret. Utilizza
latestper l'ultima versione o un numero, ad esempio2.
Per i secret montati come percorsi file:
resource "google_cloud_run_v2_service" "default" {
name = "SERVICE_NAME"
location = "REGION"
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 quanto segue:
- SERVICE_NAME: il nome del job Cloud Run.
- REGION con la regione Google Cloud . Ad esempio
europe-west1. IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG- VOLUME_NAME: qualsiasi nome, ad esempio
my-volume, può essere uguale aSECRET_NAME - MOUNT_PATH: 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: l'ID progetto in cui è stato creato il secret.
- SECRET_NAME: il nome del secret, ad esempio
mysecret.
Visualizza le impostazioni dei secret
Per visualizzare le impostazioni attuali dei secret per il tuo servizio Cloud Run:
Console
Nella console Google Cloud , vai alla pagina Servizi di Cloud Run:
Fai clic sul servizio che ti interessa per aprire la pagina Dettagli servizio.
Fai clic sulla scheda Container per visualizzare le impostazioni.
gcloud
Utilizza il seguente comando:
gcloud run services describe SERVICE
Individua l'impostazione dei secret nella configurazione restituita.
Rimuovi 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 alla pagina Servizi di Cloud Run:
Seleziona il tuo servizio dall'elenco.
Fai clic sulla scheda Container.
Per eliminare i secret montati come volume o variabile di ambiente, fai clic su Elimina.
Fai clic su Crea per un nuovo servizio. Fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche per un servizio esistente.
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-secretsSostituisci quanto segue:
- SERVICE: il nome del servizio.
IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-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_PATHSostituisci quanto segue:
- SERVICE: il nome del servizio.
IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-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 del secret separatamente:--set-secrets MOUNT_PATH:SECRET_PATH=SECRET:VERSION
Utilizza i secret nel codice
Per esempi di accesso 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.
Limitazioni
Le sezioni seguenti descrivono le limitazioni che si applicano al montaggio dei secret.
Percorsi non consentiti
- Cloud Run non consente di montare secret in
/dev,/proce/syso nelle relative sottodirectory. - Se monti secret su
/tmpe utilizzi l'ambiente di esecuzione di prima generazione, consulta il problema noto relativo al montaggio di secret su/tmp. - Cloud Run non consente di montare più secret nello stesso percorso perché non è possibile montare due montaggi di volumi nella stessa posizione.
Secret regionali
Cloud Run non supporta i secret regionali.
Eseguire l'override di una directory
Se il secret è montato come volume in Cloud Run e l'ultima directory nel percorso di montaggio del volume esiste già, i file o le cartelle nella directory esistente diventano inaccessibili.
Ad esempio, se un secret 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 montare il secret, ad esempio /etc/app_data/secrets, in modo che il percorso di montaggio del secret sia /etc/app_data/secrets/my-secret.