Questa opzione è per un servizio Cloud Run che è un'API o un sito web pubblici.
Puoi consentire 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 associate.
Interfaccia utente della console
Per un servizio Cloud Run esistente:
Vai alla console Google Cloud:
Fai clic sulla casella di controllo a sinistra del servizio che vuoi rendere pubblico. (non 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 il valore allUsers
Dal menu a discesa Ruolo, seleziona il ruolo Cloud Run Invoker.
Fai clic su Salva.
Ti verrà chiesto di verificare di voler 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 renderlo disponibile pubblicamente. Se selezioni Richiedi l'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 servizio pubblicamente accessibile 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 le chiamate non autenticate per l'SERVICE esistente utilizzando:
gcloud run services set-iam-policy SERVICE policy.yaml
Terraform
Per creare un servizio Cloud Run, aggiungi quanto segue al file main.tf
esistente:
Per aggiornare il vincolo IAM del servizio per roles/run.invoker
, aggiungi la seguente risorsa che fa riferimento al servizio Cloud Run:
Questa associazione è autorevole solo per il ruolo specificato. Le altre associazioni IAM all'interno del criterio IAM del servizio vengono conservate.
Condivisione limitata per i domini
Se il progetto è soggetto al vincolo di condivisione limitata per i domini in un criterio dell'organizzazione, non potrai creare servizi pubblici per impostazione predefinita. Puoi utilizzare i tag e i criteri condizionali per esentare servizi specifici da questo vincolo. Per maggiori dettagli, consulta il post del blog sulla creazione di servizi Cloud Run pubblici quando viene applicata la condivisione con restrizioni del dominio.