Questa opzione si riferisce a un servizio Cloud Run che è un'API o un sito web pubblici.
Per consentire chiamate non autenticate a un servizio, assegna il ruolo IAM
Ruolo Invoker di Cloud Run per il tipo di membro allUsers
.
Devi disporre dell'autorizzazione run.services.setIamPolicy
per configurare l'autenticazione
su un servizio Cloud Run. Questa autorizzazione è inclusa sia nella proprietà Proprietario
Ruoli di Amministratore Cloud Run. Consulta Ruoli IAM di Cloud Run
per l'elenco completo dei ruoli e delle 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 fare clic sul servizio stesso.
Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sul Scheda Autorizzazioni. Se il riquadro delle informazioni non è visibile, potresti aver bisogno di Fai clic su Mostra riquadro informazioni, poi fai clic su Autorizzazioni.
Fai clic su Aggiungi entità.
Nella casella di testo Nuove entità, inserisci il valore allUsers
.
Dal menu a discesa Ruolo, seleziona il ruolo Invoker di Cloud Run.
Fai clic su Salva.
Ti verrà chiesto di verificare se 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 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 allUsers
speciale a un servizio e assegnargli l'
Ruolo roles/run.invoker
:
gcloud run services add-iam-policy-binding [SERVICE_NAME] \ --member="allUsers" \ --role="roles/run.invoker"
In alternativa, esegui il comando gcloud run deploy
per rendere il tuo servizio
pubblicamente accessibili quando esegui il deployment del tuo 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 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 l'associazione IAM del servizio per roles/run.invoker
, aggiungi la seguente risorsa che fa riferimento al tuo 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 ai vincolo di condivisione limitata ai domini in un criterio dell'organizzazione, non potrai creare servizi pubblici per impostazione predefinita. Puoi usare i tag e condizionale per escludere servizi specifici da questo vincolo. Per maggiori dettagli, consulta il blog post sulla creazione di servizi Cloud Run pubblici quando viene applicata la condivisione limitata per i domini.