Per impostazione predefinita, solo i proprietari e gli editor dei progetti possono creare, aggiornare, eliminare o richiamare servizi e job 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 degli accessi con IAM.
Ruoli predefiniti di Cloud Run
Rispetto ai ruoli di base (Proprietario, Editor e Visualizzatore), i seguenti ruoli predefiniti hanno controllo dell'accesso più granulare per accedere alle risorse Cloud Run:
Ruolo | Descrizione |
---|---|
Amministratore di Cloud Run (roles/run.admin ) |
Può creare, aggiornare ed eliminare servizi e job, 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 chiudere i suggerimenti. Richiede una configurazione aggiuntiva per eseguire il deployment dei servizi. |
Cloud Run Developer (roles/run.developer ) |
Può creare, aggiornare ed eliminare servizi e job, può ottenere, elencare ed eliminare le esecuzioni dei job. Può ottenere, ma non impostare, i criteri IAM. Può visualizzare, applicare e chiudere i suggerimenti. |
Visualizzatore di Cloud Run (roles/run.viewer ) |
Può visualizzare servizi, job ed esecuzioni di job. Può ottenere criteri IAM. Può visualizzare i suggerimenti. |
Invoker di Cloud Run (roles/run.invoker ) |
Può richiamare servizi e job, può annullare le esecuzioni dei job. |
Controllare l'accesso a un singolo servizio o lavoro
Puoi controllare l'accesso in base al servizio o al job utilizzando IAM.
Aggiungi entità
Puoi aggiungere i responsabili a un lavoro o a un servizio.
Aggiungere entità a un servizio
Per aggiungere principal a un servizio:
Interfaccia utente della console
Vai alla Google Cloud console:
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, potrebbe essere necessario 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.
Nel menu a discesa Ruolo, 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 comando gcloud run services add-iam-policy-binding
:
gcloud run services add-iam-policy-binding SERVICE_NAME \ --member=PRINCIPAL \ --role=ROLE
dove SERVICE_NAME
è il nome del servizio,
PRINCIPAL
è l'entità
(ad es. user:email@domain.com
) e ROLE
è il ruolo.
Per un elenco dei valori accettabili per PRINCIPAL
, consulta
Identificatori principali.
Per un elenco dei valori accettabili per ROLE
, consulta
Ruoli Cloud IAM di Cloud Run.
Aggiungere entità a un job
Per aggiungere entità a un job:
Interfaccia utente della console
Vai alla Google Cloud console:
Fai clic sulla casella di controllo a sinistra del job a cui vuoi aggiungere i principali. 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 e poi su Autorizzazioni.
Fai clic su Aggiungi entità.
Nel campo Nuove entità, inserisci una o più identità che devono accedere al tuo job.
Nel menu Ruolo, 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 comando gcloud run jobs add-iam-policy-binding
:
gcloud run jobs add-iam-policy-binding JOB_NAME \ --member=PRINCIPAL \ --role=ROLE
dove JOB_NAME
è il nome del job,
PRINCIPAL
è il tipo di entità
(ad es. user:email@domain.com
) e ROLE
è il ruolo.
Per un elenco di valori accettabili per PRINCIPAL
, consulta
la pagina dei concetti di IAM.
Per un elenco dei valori accettabili per ROLE
, consulta
Ruoli Cloud IAM di Cloud Run.
Rimuovere le entità da un ruolo
Puoi rimuovere i principal da un servizio o da un job.
Rimuovere le entità da un ruolo per un servizio
Per rimuovere le entità da un ruolo per un servizio:
Interfaccia utente della console
Vai alla Google Cloud console:
Seleziona la casella di controllo a sinistra del servizio da cui vuoi rimuovere 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, potrebbe essere necessario 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 del servizio. Fai clic su Rimuovi per rimuovere l'entità dal ruolo.
gcloud
Utilizza il comando gcloud run services remove-iam-policy-binding
:
gcloud run services remove-iam-policy-binding SERVICE_NAME \ --member=PRINCIPAL \ --role=ROLE
dove SERVICE_NAME
è il nome del servizio,
PRINCIPAL
è il tipo di entità
(ad es. user:email@domain.com
) e ROLE
è il ruolo.
Per un elenco di valori accettabili per PRINCIPAL
, consulta
la pagina dei concetti di IAM.
Per un elenco dei valori accettabili per ROLE
, consulta
Ruoli Cloud IAM di Cloud Run.
Rimuovere le entità da un ruolo per un job
Per rimuovere le entità da un ruolo per un job:
Interfaccia utente della console
Vai alla Google Cloud console:
Fai clic sulla casella di controllo a sinistra del job a cui vuoi aggiungere i principali. 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 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 comando gcloud run jobs remove-iam-policy-binding
:
gcloud run jobs remove-iam-policy-binding JOB_NAME \ --member=PRINCIPAL \ --role=ROLE
dove JOB_NAME
è il nome del job,
PRINCIPAL
è il tipo di entità
(ad es. user:email@domain.com
) e ROLE
è il ruolo.
Per un elenco di valori accettabili per PRINCIPAL
, consulta
la pagina dei concetti di IAM.
Per un elenco dei valori accettabili per ROLE
, consulta
Ruoli Cloud IAM di Cloud Run.
Aggiunta o rimozione collettiva di entità
Puoi aggiungere o rimuovere in blocco servizi e offerte di lavoro.
Aggiunta e rimozione collettiva di entità per i servizi
Per eseguire un'aggiunta o una rimozione collettiva per un servizio:
Interfaccia utente della console
Vai alla Google Cloud console:
Fai clic sulla casella di controllo a sinistra del servizio a cui vuoi aggiungere o da cui vuoi rimuovere i principal. 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 e poi 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.
Nel menu Ruolo, 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 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 del 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 di valori accettabili per PRINCIPAL
, consulta
la pagina dei concetti di IAM.
Per un elenco dei valori accettabili per ROLE
, consulta
Ruoli Cloud IAM di Cloud Run.
Aggiunta e rimozione collettiva di principal per i job
Per aggiungere o rimuovere in blocco i candidati per un lavoro:
Interfaccia utente della console
Vai alla Google Cloud console:
Fai clic sulla casella di controllo a sinistra del job a cui vuoi aggiungere i principali. Non fare clic sul job stesso.
Seleziona il job a cui vuoi aggiungere o da cui vuoi rimuovere i principal.
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.
Se vuoi aggiungere entità:
Fai clic su Aggiungi entità.
Nel campo Nuove entità, inserisci una o più identità che devono accedere al tuo servizio.
Nel menu Ruolo, 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 accanto all'entità all'interno del ruolo necessario 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
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 di valori accettabili per PRINCIPAL
, consulta
la pagina dei concetti di IAM.
Per un elenco dei valori accettabili per ROLE
, consulta
Ruoli Cloud IAM di Cloud Run.
Visualizzare le entità
Puoi visualizzare i principali per servizi e job.
Visualizzare i principal per un servizio
Per visualizzare le entità per un servizio:
Interfaccia utente della console
Vai alla Google Cloud console:
Fai clic sulla casella di controllo a sinistra del servizio per cui vuoi visualizzare i principal e i ruoli. Non fare clic sul servizio stesso.
Seleziona il servizio per cui vuoi visualizzare i principal 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 e poi su Autorizzazioni.
Verrà visualizzato l'elenco dei ruoli e delle entità, raggruppati per ruolo concesso.
gcloud
Utilizza il comando gcloud run services get-iam-policy
:
gcloud run services get-iam-policy SERVICE_NAME
Visualizzare le entità per un lavoro
Per visualizzare i principali per un job:
Interfaccia utente della console
Vai alla Google Cloud console:
Fai clic sulla casella di controllo a sinistra del job a cui vuoi aggiungere i principali. Non fare clic sul job stesso.
Seleziona il job 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 e poi su Autorizzazioni.
Verrà visualizzato l'elenco dei ruoli e delle entità, raggruppati per ruolo concesso.
gcloud
Utilizza il comando gcloud run jobs get-iam-policy
:
gcloud run jobs get-iam-policy JOB_NAME
Controllare l'accesso a tutti i servizi e i job 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.
Interfaccia utente della console
Vai alla Google Cloud console:
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
dove PRINCIPAL
è il principale
(ad es. user:email@domain.com
) e ROLE
è il
ruolo (ad es. roles/run.admin
).
I tipi di entità allUsers
e allAuthenticatedUsers
non possono essere applicati
a livello di progetto e devono invece essere aggiunti a ogni servizio singolarmente.
Rendere pubblico un servizio
Questa opzione è per un servizio Cloud Run che è un'API o un sito web pubblici.
Esistono due modi per creare un servizio Cloud Run pubblico:
- Disattiva il controllo Cloud Run InvokerIAM (opzione consigliata).
- Assegna il ruolo IAM Invoker di Cloud Run al tipo di membro
allUsers
.
Disattiva il controllo IAM dell'invoker Cloud Run
Il modo consigliato per creare un servizio pubblico è disabilitare il controllo IAM Invoker di Cloud Run. Il controllo viene applicato per impostazione predefinita. Questa è la soluzione ideale se il progetto è soggetto al vincolo di condivisione limitata per i domini in un criterio dell'organizzazione.
Per disattivare o riattivare il controllo IAM dell'invoker su un servizio, devi disporre delle seguenti autorizzazioni:
run.services.create
run.services.update
run.services.setIamPolicy
Queste autorizzazioni sono incluse nei ruoli Proprietario e Amministratore Cloud Run. Consulta Ruoli IAM di Cloud Run per l'elenco completo dei ruoli e delle relative autorizzazioni.
Disattiva il controllo IAM dell'invoker Cloud Run
Per disattivare il controllo:
Console
Fai clic su Crea servizio se stai configurando un nuovo servizio, quindi compila la pagina delle impostazioni iniziali del servizio in base alle tue esigenze. Se stai configurando un servizio esistente, fai clic sul servizio, quindi su Sicurezza.
Deseleziona Utilizza IAM per autenticare le richieste in entrata.
Fai clic su Crea o Salva.
gcloud
Per un nuovo servizio, utilizza il comando
gcloud run deploy
con il flag--no-invoker-iam-check
:gcloud run deploy SERVICE_NAME --no-invoker-iam-check
dove
SERVICE_NAME
è il nome del servizio.Per un servizio esistente, utilizza il comando
gcloud run services update
con il flag--no-invoker-iam-check
:gcloud run services update SERVICE_NAME --no-invoker-iam-check
dove
SERVICE_NAME
è 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
dove SERVICE_NAME è 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
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
Fai clic sul servizio, poi su Sicurezza.
Seleziona Utilizza IAM per autenticare le richieste in entrata.
Fai clic su Salva.
gcloud
Aggiorna il servizio passando il flag
--invoker-iam-check
:gcloud run services update SERVICE_NAME --invoker-iam-check
dove
SERVICE_NAME
è 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
dove SERVICE_NAME è il nome del tuo servizio Cloud Run.
Verifica che il controllo venga riattivato dopo il deployment accedendo all'endpoint HTTPS del servizio.
Configura il criterio dell'organizzazione per il controllo IAM dell'invoker 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 le chiamate non autenticate 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 nei ruoli Proprietario e Amministratore di Cloud Run. Consulta Ruoli IAM di Cloud Run
per l'elenco completo dei ruoli e delle relative autorizzazioni.
Interfaccia utente della console
Per un servizio Cloud Run esistente:
Vai alla Google Cloud console:
Fai clic sulla casella di controllo a sinistra del servizio che vuoi rendere pubblico. 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
Dal menu a discesa 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, ma assicurati di selezionare Consenti chiamate non autenticate nella scheda Autenticazione per rendere il servizio disponibile pubblicamente. Se selezioni Richiedi autenticazione, il servizio diventerà privato.
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
pubblicamente accessibile quando esegui il deployment del servizio:
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 chiamate non autenticate per il 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 su un servizio
Utilizzi le condizioni IAM per
definire e applicare forzatamente il controllo dell'accesso condizionale basato su attributi per le risorse Cloud Run. Cloud Run supporta gli attributi di condizione (request.host
) e (request.path
) per concedere l'accesso condizionale durante la chiamata dei servizi Cloud Run.
Per concedere l'accesso condizionale con gli attributi
request.host
erequest.path
quando richiami i servizi Cloud Run, aggiungi il campocondition
quando esegui il seguente comando:gcloud run services add-iam-policy-binding SERVICE_NAME \ --member=PRINCIPAL \ --role=ROLE \ --region=REGION \ --condition=[KEY=VALUE,...]
Sostituisci:
SERVICE_NAME
con il nome del servizio (ad esempio,my-service
).PRINCIPAL
con il preside (ad esempio,user:email@domain.com
).ROLE
con il ruolo (ad esempio,roles/run.invoker
).REGION
con la regione (ad esempio,europe-west1
).KEY=VALUE
con una condizione da includere nell'associazione. Il flag--condition
deve includere le coppie chiave-valoreexpression
etitle
.
Passaggi successivi
Scopri come autenticare in modo sicuro sviluppatori, servizi e utenti ai servizi che hai appena protetto.