Per impostazione predefinita, solo i proprietari e gli editor dei progetti possono creare, aggiornare, eliminare o richiamare risorse Cloud Run e solo i proprietari dei progetti e gli amministratori Cloud Run possono modificare i criteri Identity and Access Management (IAM), ad esempio per rendere pubblico un servizio. Per maggiori dettagli, consulta Ruoli IAM di Cloud Run.
Per concedere ad altre entità o gruppi la possibilità di eseguire queste azioni, utilizza IAM per concedere ruoli a diverse entità.
Se hai creato o eseguito il deployment di funzioni utilizzando i comandi gcloud functions o le API Cloud Functions v2 e devi utilizzare queste opzioni per la compatibilità con le versioni precedenti, consulta Controllo dell'accesso con IAM.
Ruoli predefiniti di Cloud Run
Rispetto ai ruoli di base (Proprietario, Editor e Visualizzatore), i seguenti ruoli predefiniti hannocontrollo dell'accessoi più granulare per accedere alle risorse Cloud Run:
| Ruolo | Descrizione |
|---|---|
Amministratore di Cloud Run (roles/run.admin) |
Può creare, aggiornare ed eliminare servizi, job e worker pool, può ottenere, elencare ed eliminare le esecuzioni dei job. Può richiamare servizi e job, può annullare le esecuzioni dei job. Può ottenere e impostare i criteri IAM. Può visualizzare, applicare e ignorare i consigli. Richiede una configurazione aggiuntiva per eseguire il deployment dei servizi. |
Cloud Run Developer (roles/run.developer) |
Può creare, aggiornare ed eliminare servizi, job e worker pool, può ottenere, elencare ed eliminare le esecuzioni dei job. Può ottenere, ma non impostare, i criteri IAM. Può visualizzare, applicare e chiudere i consigli. |
Visualizzatore di Cloud Run (roles/run.viewer) |
Può visualizzare servizi, job, esecuzioni di job e pool di worker. Può ottenere policy IAM. Può visualizzare i suggerimenti. |
Invoker di Cloud Run (roles/run.invoker) |
Può richiamare servizi e job, può annullare le esecuzioni dei job. |
Cloud Run Source Developer (roles/run.sourceDeveloper) |
Può eseguire il deployment e gestire le risorse di cui è stato eseguito il deployment nell'origine Cloud Run. |
Cloud Run Builder (roles/run.builder) |
Può creare funzioni Cloud Run e servizi di cui è stato eseguito il deployment nell'origine. |
Invoker di Cloud Run Service (roles/run.servicesInvoker) |
Può richiamare servizi Cloud Run. |
Cloud Run Jobs Executor (roles/run.jobsExecutor) |
Può eseguire e annullare i job Cloud Run. |
Cloud Run Jobs Executor With Overrides (roles/run.jobsExecutorWithOverrides) |
Può eseguire e annullare job Cloud Run con override. |
Controllare l'accesso a una singola risorsa Cloud Run
Puoi controllare l'accesso in base al servizio, al job o al pool di worker utilizzando IAM.
Aggiungi entità
Per aggiungere entità a un servizio:
Console
- Vai alla console Google Cloud :
- Fai clic sulla casella di controllo accanto al servizio a cui vuoi aggiungere i principal. Non fare clic sul servizio stesso.
- Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro delle informazioni non è visibile, potresti dover fare clic su Mostra riquadro informazioni e poi su Autorizzazioni.
- Fai clic su Aggiungi entità.
- Nel campo Nuove entità, inserisci una o più identità che devono accedere al tuo servizio.
- Dal menu a discesa Assegna i ruoli, seleziona uno o più ruoli. I ruoli selezionati vengono visualizzati nel riquadro con una breve descrizione delle autorizzazioni che concedono.
- Fai clic su Salva.
gcloud
Utilizza il seguente comando:
gcloud run services add-iam-policy-binding SERVICE_NAME \ --member=PRINCIPAL \ --role=ROLE
Sostituisci quanto segue:
SERVICE_NAME: il nome del servizio.PRINCIPAL: il tipo di entità (ad es.user:email@domain.com). Per un elenco dei valori accettabili perPRINCIPAL, consulta Identificatori delle entità.ROLE: il ruolo. Per un elenco di valori accettabili perROLE, consulta Ruoli IAM di Cloud Run.
Per aggiungere entità a un lavoro:
Console
- Vai alla console Google Cloud :
- Fai clic sulla casella di controllo a sinistra del job a cui vuoi aggiungere i principal. Non fare clic sul job stesso.
- Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro delle informazioni non è visibile, potrebbe essere necessario fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.
- Fai clic su Aggiungi entità.
- Nel campo Nuove entità, inserisci una o più identità che devono accedere al tuo job.
- Dal menu Assegna ruoli, seleziona uno o più ruoli. I ruoli selezionati vengono visualizzati nel riquadro con una breve descrizione delle autorizzazioni che concedono.
- Fai clic su Salva.
gcloud
Utilizza il seguente comando:
gcloud run jobs add-iam-policy-binding JOB_NAME \ --member=PRINCIPAL \ --role=ROLE
Sostituisci quanto segue:
JOB_NAME: il nome del job.PRINCIPAL: il tipo di entità (ad es.user:email@domain.com). Per un elenco dei valori accettabili perPRINCIPAL, consulta la sezione Identificatori delle entità.ROLE: il ruolo. Per un elenco di valori accettabili perROLE, consulta Ruoli IAM di Cloud Run.
Per aggiungere entità a un worker pool:
Console
- Vai alla console Google Cloud :
- Fai clic sulla casella di controllo accanto al pool di lavoratori a cui vuoi aggiungere i principal. Non fare clic sul pool di worker stesso.
- Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro delle informazioni non è visibile, potresti dover fare clic su Mostra riquadro informazioni e poi su Autorizzazioni.
- Fai clic su Aggiungi entità.
- Nel campo Nuove entità, inserisci una o più identità che devono accedere al tuo worker pool.
- Dal menu Assegna ruoli, seleziona uno o più ruoli. I ruoli selezionati vengono visualizzati nel riquadro con una breve descrizione delle autorizzazioni che concedono.
- Fai clic su Salva.
gcloud
Utilizza il seguente comando:
gcloud run worker-pools add-iam-policy-binding WORKER_POOL \ --member=PRINCIPAL \ --role=ROLE
Sostituisci quanto segue:
WORKER_POOL: il nome del pool di worker.PRINCIPAL: il tipo di entità (ad es.user:email@domain.com). Per un elenco dei valori accettabili perPRINCIPAL, consulta la sezione Identificatori delle entità.ROLE: il ruolo. Per un elenco di valori accettabili perROLE, consulta Ruoli IAM di Cloud Run.
Rimuovere le entità da un ruolo
Per rimuovere le entità da un ruolo per un servizio:
Console
- Vai alla console Google Cloud :
- Fai clic sulla casella di controllo accanto al servizio da cui vuoi rimuovere le entità. Non fare clic sul servizio stesso.
- Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro delle informazioni non è visibile, potrebbe essere necessario fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.
- Inserisci l'entità che vuoi rimuovere nel filtro dell'elenco dei ruoli, che mostra tutti i ruoli concessi a quell'entità.
- Fai clic sul cestino Elimina accanto all'entità all'interno del ruolo desiderato per rimuovere il ruolo dall'entità.
- Nella finestra di dialogo di conferma, hai la possibilità di rimuovere l'entità da tutti i ruoli nel servizio. Fai clic su Rimuovi per rimuovere l'entità dal ruolo.
gcloud
Utilizza il seguente comando:
gcloud run services remove-iam-policy-binding SERVICE_NAME \ --member=PRINCIPAL \ --role=ROLE
Sostituisci quanto segue:
SERVICE_NAME: il nome del servizio.PRINCIPAL: il tipo di entità (ad es.user:email@domain.com). Per un elenco dei valori accettabili perPRINCIPAL, consulta la sezione Identificatori delle entità.ROLE: il ruolo. Per un elenco di valori accettabili perROLE, consulta Ruoli IAM di Cloud Run.
Per rimuovere le entità da un ruolo per un job:
Console
- Vai alla console Google Cloud :
- Fai clic sulla casella di controllo a sinistra del job a cui vuoi aggiungere i principal. Non fare clic sul job stesso.
- Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro delle informazioni non è visibile, potresti dover fare clic su Mostra riquadro informazioni e poi su Autorizzazioni.
- Inserisci l'entità che vuoi rimuovere nel filtro dell'elenco dei ruoli, che mostra tutti i ruoli concessi a quell'entità.
- Fai clic sul cestino Elimina accanto all'entità all'interno del ruolo desiderato per rimuovere il ruolo dall'entità.
- Nella finestra di dialogo di conferma, hai la possibilità di rimuovere l'entità da tutti i ruoli nel job. Fai clic su Rimuovi per rimuovere l'entità dal ruolo.
gcloud
Utilizza il seguente comando:
gcloud run jobs remove-iam-policy-binding JOB_NAME \ --member=PRINCIPAL \ --role=ROLE
Sostituisci quanto segue:
JOB_NAME: il nome del job.PRINCIPAL: il tipo di entità (ad es.user:email@domain.com). Per un elenco dei valori accettabili perPRINCIPAL, consulta la sezione Identificatori delle entità.ROLE: il ruolo. Per un elenco di valori accettabili perROLE, consulta Ruoli IAM di Cloud Run.
Per rimuovere le entità da un ruolo per un pool di worker:
Console
- Vai alla console Google Cloud :
- Fai clic sulla casella di controllo accanto al pool di worker da cui vuoi rimuovere le entità. Non fare clic sul pool di worker stesso.
- Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro delle informazioni non è visibile, potrebbe essere necessario fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.
- Inserisci l'entità che vuoi rimuovere nel filtro dell'elenco dei ruoli, che mostra tutti i ruoli concessi a quell'entità.
- Fai clic sul cestino Elimina accanto all'entità all'interno del ruolo desiderato per rimuovere il ruolo dall'entità.
- Nella finestra di dialogo di conferma, hai la possibilità di rimuovere l'entità da tutti i ruoli nel pool di lavoratori. Fai clic su Rimuovi per rimuovere l'entità dal ruolo.
gcloud
Utilizza il seguente comando:
gcloud run worker-pools remove-iam-policy-binding WORKER_POOL \ --member=PRINCIPAL \ --role=ROLE
Sostituisci quanto segue:
WORKER_POOL: il nome del pool di worker.PRINCIPAL: il tipo di entità (ad es.user:email@domain.com). Per un elenco dei valori accettabili perPRINCIPAL, consulta la sezione Identificatori delle entità.ROLE: il ruolo. Per un elenco di valori accettabili perROLE, consulta Ruoli IAM di Cloud Run.
Aggiunta o rimozione collettiva di entità
Per aggiungere o rimuovere in blocco un servizio:
Console
- Vai alla console Google Cloud :
- Fai clic sulla casella di controllo a sinistra del servizio a cui vuoi aggiungere o da cui vuoi rimuovere le entità. Non fare clic sul servizio stesso.
- Seleziona il servizio a cui vuoi aggiungere o da cui vuoi rimuovere le entità.
- Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro delle informazioni non è visibile, potrebbe essere necessario fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.
Se vuoi aggiungere entità:
- Fai clic su Aggiungi entità.
- Nel campo Nuove entità, inserisci una o più identità che devono accedere al tuo servizio.
- Dal menu Assegna ruoli, seleziona uno o più ruoli. I ruoli selezionati vengono visualizzati nel riquadro con una breve descrizione delle autorizzazioni che concedono.
- Fai clic su Salva.
Se vuoi rimuovere le entità:
- Inserisci l'entità che vuoi rimuovere nel filtro dell'elenco dei ruoli, che mostra tutti i ruoli concessi a quell'entità.
- Fai clic sul cestino Elimina nella riga dell'entità.
- Nella finestra di dialogo di conferma, hai la possibilità di rimuovere l'entità da tutti i ruoli nel servizio. Fai clic su Rimuovi per rimuovere l'entità dal ruolo.
gcloud
Crea un criterio IAM:
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ PRINCIPAL ] } ] } EOF
Utilizza il comando gcloud run services set-iam-policy:
gcloud run services set-iam-policy SERVICE_NAME policy.json
Per un elenco dei valori accettabili per PRINCIPAL,
consulta Identificatori delle entità.
Per un elenco dei valori accettabili per ROLE, consulta
Ruoli IAM di
Cloud Run.
Per aggiungere o rimuovere in blocco i candidati per un lavoro:
Console
- Vai alla console Google Cloud :
- Fai clic sulla casella di controllo a sinistra del job a cui vuoi aggiungere i principal. Non fare clic sul job stesso.
- Seleziona il job a cui vuoi aggiungere o da cui vuoi rimuovere le entità.
- Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro delle informazioni non è visibile, potrebbe essere necessario fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.
Se vuoi aggiungere entità:
- Fai clic su Aggiungi entità.
- Nel campo Nuove entità, inserisci una o più identità che devono accedere al tuo servizio.
- Dal menu Assegna ruoli, seleziona uno o più ruoli. I ruoli selezionati vengono visualizzati nel riquadro con una breve descrizione delle autorizzazioni che concedono.
- Fai clic su Salva.
Se vuoi rimuovere le entità:
- Inserisci l'entità che vuoi rimuovere nel filtro dell'elenco dei ruoli, che mostra tutti i ruoli concessi a quell'entità.
- Fai clic sul cestino Elimina nella riga dell'entità.
- Nella finestra di dialogo di conferma, hai la possibilità di rimuovere l'entità da tutti i ruoli nel job. Fai clic su Rimuovi per rimuovere l'entità dal ruolo.
gcloud
Crea un criterio IAM:
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ PRINCIPAL ] } ] } EOF
Utilizza il comando gcloud run jobs set-iam-policy:
gcloud run jobs set-iam-policy JOB_NAME policy.json
Per un elenco dei valori accettabili per PRINCIPAL,
consulta Identificatori delle entità.
Per un elenco dei valori accettabili per ROLE, consulta
Ruoli IAM di
Cloud Run.
Per eseguire un'aggiunta o una rimozione collettiva per un pool di worker:
Console
- Vai alla console Google Cloud :
- Fai clic sulla casella di controllo accanto al pool di worker a cui vuoi aggiungere o da cui vuoi rimuovere le entità. Non fare clic sul pool di worker stesso.
- Seleziona il pool di worker a cui vuoi aggiungere o da cui vuoi rimuovere le entità.
- Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro delle informazioni non è visibile, potrebbe essere necessario fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.
Se vuoi aggiungere entità:
- Fai clic su Aggiungi entità.
- Nel campo Nuove entità, inserisci una o più identità che devono accedere al tuo worker pool.
- Dal menu Assegna ruoli, seleziona uno o più ruoli. I ruoli selezionati vengono visualizzati nel riquadro con una breve descrizione delle autorizzazioni che concedono.
- Fai clic su Salva.
Se vuoi rimuovere le entità:
- Inserisci l'entità che vuoi rimuovere nel filtro dell'elenco dei ruoli, che mostra tutti i ruoli concessi a quell'entità.
- Fai clic sul cestino Elimina nella riga dell'entità.
- Nella finestra di dialogo di conferma, hai la possibilità di rimuovere l'entità da tutti i ruoli nel pool di lavoratori. Fai clic su Rimuovi per rimuovere l'entità dal ruolo.
gcloud
Crea un criterio IAM:
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ PRINCIPAL ] } ] } EOF
Utilizza il comando gcloud run worker-pools set-iam-policy:
gcloud run worker-pools set-iam-policy WORKER_POOL policy.json
Per un elenco dei valori accettabili per PRINCIPAL,
consulta Identificatori delle entità.
Per un elenco dei valori accettabili per ROLE, consulta
Ruoli IAM di
Cloud Run.
Visualizza entità
Per visualizzare le entità per un servizio:
Console
- Vai alla console Google Cloud :
- Fai clic sulla casella di controllo a sinistra del servizio per cui vuoi visualizzare entità e ruoli. Non fare clic sul servizio stesso.
- Seleziona il servizio per cui vuoi visualizzare entità e ruoli.
- Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro delle informazioni non è visibile, potrebbe essere necessario fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.
- Verrà visualizzato l'elenco dei ruoli e delle entità, raggruppati per ruolo concesso.
gcloud
Utilizza il seguente comando:
gcloud run services get-iam-policy SERVICE_NAME
Per visualizzare le entità per un job:
Console
- Vai alla console Google Cloud :
- Fai clic sulla casella di controllo a sinistra del job a cui vuoi aggiungere i principal. Non fare clic sul job stesso.
- Seleziona il job che vuoi visualizzare per entità e ruoli.
- Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro delle informazioni non è visibile, potrebbe essere necessario fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.
- Verrà visualizzato l'elenco dei ruoli e delle entità, raggruppati per ruolo concesso.
gcloud
Utilizza il seguente comando:
gcloud run jobs get-iam-policy JOB_NAME
Per visualizzare le entità per un pool di worker:
Console
- Vai alla console Google Cloud :
- Fai clic sulla casella di controllo accanto al pool di worker che vuoi visualizzare per principali e ruoli. Non fare clic sul pool di worker stesso.
- Seleziona il pool di worker che vuoi visualizzare per le entità e i ruoli.
- Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro delle informazioni non è visibile, potrebbe essere necessario fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.
- Verrà visualizzato l'elenco dei ruoli e delle entità, raggruppati per ruolo concesso.
gcloud
Utilizza il seguente comando:
gcloud run worker-pools get-iam-policy WORKER_POOL
Controllare l'accesso a tutte le risorse Cloud Run in un progetto
Se vuoi concedere ruoli alle entità per tutti i servizi e i job di un progetto, puoi utilizzare IAM a livello di progetto.
Console
Vai alla console Google Cloud :
Trova l'entità a cui vuoi concedere un ruolo a livello di progetto.
Fai clic sull'icona di modifica a forma di matita sul lato destro della riga dell'entità.
Fai clic su Aggiungi un altro ruolo e scegli il ruolo necessario.
Fai clic su Salva.
gcloud
Utilizza il comando gcloud projects add-iam-policy-binding:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
Sostituisci quanto segue:
PROJECT_ID: l'ID del tuo Google Cloud progetto.PRINCIPAL: il principal (ad esempio,user:email@domain.com).ROLE: il ruolo (ad esempio,roles/run.admin).
Sostituisci quanto segue:
SERVICE_NAME: il nome del servizio (ad esempio,my-service).PRINCIPAL: l'entità (ad esempio,user:email@domain.com).ROLE: il ruolo (ad esempio,roles/run.invoker).REGION: la regione (ad esempio,europe-west1).KEY=VALUE: una condizione da includere nel binding. Il flag--conditiondeve includere le coppie chiave-valoreexpressionetitle.
I tipi di principal allUsers e allAuthenticatedUsers non possono essere applicati
a livello di progetto e devono invece essere aggiunti a ogni servizio singolarmente.
Rendere pubblico un servizio
Esistono due modi per creare un servizio Cloud Run pubblico:
- Disattiva il controllo IAM dell'invoker Cloud Run (opzione consigliata).
- Assegna il ruolo IAM Invoker di Cloud Run al tipo di membro
allUsers.
Ruoli obbligatori
Per disattivare o riattivare il controllo IAM dell'invoker su un servizio, devi disporre delle seguenti autorizzazioni:
run.services.createrun.services.updaterun.services.setIamPolicy
Queste autorizzazioni sono incluse nel ruolo
Amministratore di Cloud Run
(roles/run.admin). Consulta
Ruoli IAM di Cloud Run
per l'elenco completo dei ruoli e delle relative autorizzazioni.
Disattiva il controllo IAM dell'invoker Cloud Run
Il modo consigliato per creare un servizio pubblico è disabilitare il controllo IAM Invoker di Cloud Run. Cloud Run applica questo controllo per impostazione predefinita. Utilizza questa soluzione quando il progetto è soggetto al vincolo di condivisione limitata per i domini in una policy dell'organizzazione.
Per disattivare il controllo:
Console
Nella console Google Cloud , vai alla pagina Cloud Run:
Fai clic su Crea servizio se stai configurando un nuovo servizio, poi compila la pagina delle impostazioni iniziali del servizio in base alle tue esigenze.
Se stai configurando un servizio esistente, fai clic sul servizio, quindi sulla scheda Sicurezza.
Seleziona Consenti accesso pubblico.
Fai clic su Crea o Salva.
gcloud
Per un nuovo servizio, utilizza il comando
gcloud run deploycon il flag--no-invoker-iam-check:gcloud run deploy SERVICE_NAME --no-invoker-iam-check
Sostituisci
SERVICE_NAMEcon il nome del servizio.Per un servizio esistente, utilizza il comando
gcloud run services updatecon il flag--no-invoker-iam-check:gcloud run services update SERVICE_NAME --no-invoker-iam-check
Sostituisci SERVICE_NAME con il nome del servizio.
YAML
Per visualizzare e scaricare la configurazione:
gcloud run services describe SERVICE --format export > service.yaml
Aggiorna l'annotazione
run.googleapis.com/invoker-iam-disabled::apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: 'true' name: SERVICE_NAME
Sostituisci SERVICE_NAME con il nome del tuo servizio Cloud Run.
Sostituisci il servizio con la sua nuova configurazione utilizzando il seguente comando:
gcloud run services replace service.yaml
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:resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
invoker_iam_disabled = true
template {
containers {
image = "IMAGE_URL"
}
}
}
Sostituisci quanto segue:
- SERVICE: il nome del tuo servizio Cloud Run.
- REGION: la Google Cloud regione, ad esempio
europe-west1. - IMAGE_URL: 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 segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Verifica che il controllo sia disattivato dopo il deployment accedendo all'endpoint HTTPS del servizio.
Riattiva il controllo IAM dell'invoker Cloud Run
Per riattivare il controllo:
Console
Nella console Google Cloud , vai alla pagina Servizi di Cloud Run:
Fai clic sul servizio, poi su Sicurezza.
Seleziona Autenticazione necessaria e poi Identity and Access Management (IAM).
Fai clic su Salva.
gcloud
Aggiorna il servizio passando il flag
--invoker-iam-check:gcloud run services update SERVICE_NAME --invoker-iam-check
Sostituisci
SERVICE_NAMEcon il nome del servizio.
YAML
Per visualizzare e scaricare la configurazione:
gcloud run services describe SERVICE --format export > service.yaml
Aggiorna l'annotazione
run.googleapis.com/invoker-iam-disabled::apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: 'false' name: SERVICE_NAME
Sostituisci
SERVICE_NAMEcon il nome del tuo servizio Cloud Run.
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:resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
invoker_iam_disabled = false
template {
containers {
image = "IMAGE_URL"
}
}
}
Sostituisci quanto segue:
- SERVICE: il nome del tuo servizio Cloud Run.
- REGION: la Google Cloud regione, ad esempio
europe-west1. - IMAGE_URL: 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 segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Verifica che il controllo venga riattivato dopo il deployment accedendo all'endpoint HTTPS del servizio.
Configura il criterio dell'organizzazione per il controllo dell'invoker IAM di Cloud Run
Se sei un amministratore, puoi limitare la possibilità di
disattivare il controllo IAM dell'invoker
utilizzando il vincolo gestito constraints/run.managed.requireInvokerIam.
Questo vincolo non viene applicato per impostazione predefinita.
Assegna il ruolo IAM Invoker di Cloud Run al tipo di membro allUsers
Puoi consentire l'accesso pubblico a un servizio assegnando il ruolo IAM Invoker di Cloud Run al tipo di membro allUsers.
Per configurare l'autenticazione su un servizio Cloud Run devi disporre dell'autorizzazione run.services.setIamPolicy. Questa autorizzazione è inclusa nel ruolo Amministratore di Cloud Run. Consulta
Ruoli IAM di Cloud Run
per l'elenco completo dei ruoli e delle relative autorizzazioni.
Console
Per un servizio Cloud Run esistente:
Nella console Google Cloud , vai alla pagina Servizi di Cloud Run:
A sinistra del servizio che vuoi rendere pubblico, fai clic sulla casella di controllo. Non fare clic sul servizio stesso.
Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro delle informazioni non è visibile, potrebbe essere necessario fare clic su Mostra riquadro informazioni e poi su Autorizzazioni.
Fai clic su Aggiungi entità.
Nel campo Nuove entità, inserisci il valore allUsers.
Nel menu Seleziona un ruolo, seleziona il ruolo Cloud Run Invoker.
Fai clic su Salva.
Ti verrà chiesto di verificare che vuoi rendere pubblica questa risorsa. Fai clic su Consenti accesso pubblico per applicare la modifica alle impostazioni IAM del servizio.
Per un nuovo servizio che stai creando, crea il servizio e seleziona Consenti accesso pubblico nella sezione Autenticazione per rendere il servizio disponibile pubblicamente. Per rendere privato un servizio, seleziona Richiedi autenticazione.
gcloud
Per rendere un servizio accessibile pubblicamente, utilizza il comando gcloud run services per aggiungere il tipo di membro speciale allUsers a un servizio e concedergli il ruolo roles/run.invoker:
gcloud run services add-iam-policy-binding [SERVICE_NAME] \ --member="allUsers" \ --role="roles/run.invoker"
Esegui il comando gcloud run deploy per rendere il tuo servizio
accessibile pubblicamente quando esegui il deployment:
gcloud run deploy [SERVICE_NAME] ... --allow-unauthenticated
YAML
Crea un file denominato policy.yaml con i seguenti contenuti:
bindings:
- members:
- allUsers
role: roles/run.invoker
Consenti l'accesso pubblico per l'SERVICE esistente utilizzando:
gcloud run services set-iam-policy SERVICE policy.yaml
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 aggiornare l'associazione IAM del servizio per roles/run.invoker, aggiungi
la seguente risorsa che fa riferimento al tuo servizio Cloud Run:
Questo binding è autorevole solo per il ruolo specificato. Gli altri binding IAM all'interno del criterio IAM del servizio vengono conservati.
Utilizzare le condizioni IAM
Puoi utilizzare le condizioni IAM per definire e applicare forzatamente il controllo dell'accesso condizionale basato su attributi per determinate risorse Cloud Run. Cloud Run supporta gli attributi di condizione
(request.host)
e (request.path)
per concedere l'accesso condizionale durante la chiamata
di servizi Cloud Run e pool di worker.
Ad esempio, per concedere l'accesso condizionale con gli attributi request.host e
request.path durante la chiamata dei servizi Cloud Run, aggiungi
il campo condition quando esegui il seguente comando:
gcloud run services add-iam-policy-binding SERVICE_NAME \
--member=PRINCIPAL \
--role=ROLE \
--region=REGION \
--condition=[KEY=VALUE,...]
Sostituisci quanto segue:
SERVICE_NAME: il nome del servizio (ad esempio,my-service).PRINCIPAL: l'entità (ad esempio,user:email@domain.com).ROLE: il ruolo (ad esempio,roles/run.invoker).REGION: la regione (ad esempio,europe-west1).KEY=VALUE: una condizione da includere nel binding. Il flag--conditiondeve includere le coppie chiave-valoreexpressionetitle.
Passaggi successivi
Scopri come autenticare in modo sicuro sviluppatori, servizi e utenti per i servizi che hai appena protetto.