Questa pagina descrive come abilitare IAP direttamente su un servizio Cloud Run e proteggere il traffico destinato a un servizio Cloud Run eseguendo il routing a IAP per l'autenticazione. Se abiliti IAP
direttamente su Cloud Run, puoi proteggere il traffico con un solo clic
da tutti i percorsi di ingresso, inclusi i bilanciatori del carico e gli URL run.app
predefiniti.
Quando integri IAP con Cloud Run, puoi gestire l'accesso di utenti o gruppi nei seguenti modi:
- All'interno dell'organizzazione: configura l'accesso agli utenti che fanno parte della stessa organizzazione del tuo servizio Cloud Run
- Al di fuori dell'organizzazione: configura l'accesso per gli utenti di organizzazioni diverse dal tuo servizio Cloud Run
- Nessuna organizzazione: configura l'accesso nei progetti che non fanno parte di alcuna organizzazione Google
Limitazioni note
- Non puoi configurare IAP sia sul bilanciatore del carico sia sul servizio Cloud Run.
- Cloud Run applica i criteri IAP prima di eseguire i controlli IAM sull'account di servizio IAP. Poiché IAP intercetta le richieste e sostituisce l'identità del chiamante originale, i servizi come Pub/Sub che si basano sulla propria autenticazione potrebbero non funzionare.
Prima di iniziare
Abilita l'API IAP:
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per attivare IAP, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Cloud Run Admin (
roles/run.admin) sul progetto -
Concedi l'accesso al servizio abilitato IAP:
IAP Policy Admin (
roles/iap.admin) sul progetto -
Crea un servizio abilitato a IAP o aggiorna un servizio esistente per abilitare IAP:
-
Lettore Artifact Registry (
roles/artifactregistry.reader) sulle immagini container di cui è stato eseguito il deployment -
Service Account User (
roles/iam.serviceAccountUser) sull'identità di servizio
-
Lettore Artifact Registry (
-
Concedi l'accesso agli utenti che non fanno parte di un'organizzazione Google:
IAP Settings Admin (
roles/iap.settingsAdmin) sul progetto -
Concedi l'accesso a utenti esterni a un'organizzazione o che non fanno parte di un'organizzazione:
OAuth Config Editor (
roles/oauthconfig.editor) nel progetto
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Abilitare IAP da Cloud Run
Ti consigliamo di abilitare IAP direttamente su Cloud Run.
Abilita IAP da Cloud Run utilizzando la console Google Cloud , Google Cloud CLI o Terraform.
Console
Quando abiliti IAP per Cloud Run, IAP
richiede le autorizzazioni per richiamare il servizio Cloud Run. Se
stai abilitando IAP utilizzando la console Google Cloud , questa
autorizzazione viene concessa automaticamente assegnando il ruolo Invoker di Cloud Run
(roles/run.invoker) all'agente di servizio IAP.
Per abilitare IAP da Cloud Run:
Nella console Google Cloud , vai alla pagina Servizi di Cloud Run:
Se stai configurando un nuovo servizio, fai clic su Esegui il deployment del contenitore, compila la pagina delle impostazioni iniziali del servizio in base alle tue esigenze e poi seleziona Richiedi autenticazione. Seleziona Identity-Aware Proxy (IAP).
Se stai modificando un servizio esistente, fai clic sul servizio, sulla scheda Sicurezza e poi seleziona Richiedi autenticazione. Seleziona IAP.
Facoltativo. Per concedere l'accesso agli utenti, segui le istruzioni per gestire l'accesso di utenti o gruppi per IAP. Se riscontri problemi durante la configurazione dell'accesso per gli utenti esterni alla tua organizzazione, consulta la sezione Risoluzione dei problemi.
Per salvare la configurazione, fai clic su Salva.
Per creare o eseguire il deployment del servizio, fai clic su Crea o Esegui il deployment.
gcloud
Per abilitare IAP direttamente da Cloud Run, aggiungi il flag --iap
quando esegui il deployment dell'app e concedi l'autorizzazione invoker all'agente di servizio IAP:
Esegui il deployment del servizio Cloud Run utilizzando uno dei seguenti comandi:
Per un nuovo servizio:
gcloud run deploy
SERVICE_NAME\ --region=REGION\ --image=IMAGE_URL\ --no-allow-unauthenticated \ --iapSe attivi IAP per la prima volta in un progetto senza un'organizzazione, potresti visualizzare il seguente avviso:
Deploying services with IAP enabled in a project without an organization may require initial setup via the Cloud Console. Please use the Cloud Run UI to enable IAP for the first time in the project.Questo avviso viene visualizzato perché non puoi creare client OAuth in modo programmatico. Ti consigliamo di abilitare prima IAP su Cloud Run direttamente dalla console Google Cloud oppure configurare un client OAuth personalizzato e poi aggiungere utenti utilizzando gcloud CLI.
Per un servizio esistente:
gcloud run services update
SERVICE_NAME\ --region=REGION\ --iapSostituisci quanto segue:
SERVICE_NAME: il nome del tuo servizio Cloud Run.REGION: il nome della regione Cloud Run. 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. PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
Concedi l'autorizzazione di invoker al service agent IAP:
gcloud run services add-iam-policy-binding
SERVICE_NAME\ --region=REGION\ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.iam.gserviceaccount.com \ --role=roles/run.invokerSostituisci quanto segue:
SERVICE_NAME: il nome del tuo servizio Cloud Run.REGION: il nome della regione Cloud Run. Ad esempio,europe-west1.PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
Facoltativo. Per concedere l'accesso agli utenti, consulta Gestire l'accesso di utenti o gruppi per IAP.
Per verificare che il servizio sia configurato con IAP abilitato, esegui questo comando:
gcloud run services describe
SERVICE_NAMEL'output dovrebbe contenere la seguente stringa:
Iap Enabled: true
IAP ora instrada tutto il traffico destinato al servizio Cloud Run configurato a IAP per l'autenticazione prima di passarlo al container.
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Per abilitare IAP utilizzando Terraform, devi aggiornare la definizione del servizio e aggiungere un'associazione dei criteri IAM per concedere l'autorizzazione di invoker a IAP.
Aggiungi
iap_enabled = truea una risorsagoogle_cloud_run_v2_servicenella configurazione Terraform per abilitare IAP sul servizio:resource "google_cloud_run_v2_service" "default" { name = "cloudrun-iap-service" location = "europe-west1" ingress = "INGRESS_TRAFFIC_ALL" iap_enabled = true template { containers { image = "us-docker.pkg.dev/cloudrun/container/hello" } } }Aggiungi quanto segue per concedere il ruolo
roles/run.invokeral service agent IAP.resource "google_cloud_run_v2_service_iam_member" "iap_invoker" { project = google_cloud_run_v2_service.default.project location = google_cloud_run_v2_service.default.location name = google_cloud_run_v2_service.default.name role = "roles/run.invoker" member = "serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.iam.gserviceaccount.com" }Sostituisci
PROJECT_NUMBERcon il numero del progetto.Facoltativo. Per recuperare i dati dei criteri IAM attuali, aggiungi quanto segue a una risorsa
google_cloud_run_v2_service_iam_policynella configurazione Terraform.data "google_cloud_run_v2_service_iam_policy" "policy" { project = google_cloud_run_v2_service.default.project location = google_cloud_run_v2_service.default.location name = google_cloud_run_v2_service.default.name }
Gestire l'accesso di utenti o gruppi
Per impostazione predefinita, IAP per Cloud Run utilizza un client OAuth gestito da Google che consente di aggiungere identità interne all'organizzazione con un indirizzo email associato a un utente. Puoi anche gestire i principal esterni alla tua organizzazione o senza un'organizzazione utilizzando la console Google Cloud in IAP creando un client OAuth personalizzato come descritto nei passaggi seguenti.
Aggiungi o rimuovi l'accesso IAP a un servizio Cloud Run utilizzando la console Google Cloud , gcloud CLI o Terraform.
All'interno dell'organizzazione
Console
Per aggiungere o rimuovere l'accesso:
Nella console Google Cloud , vai alla pagina Cloud Run:
Fai clic sul servizio esistente che vuoi modificare e poi su Sicurezza.
In IAP, fai clic su Modifica policy.
Per aggiungere l'accesso, inserisci l'entità e, facoltativamente, il livello di accesso che vuoi aggiungere o lascia vuoto il livello di accesso.
Per rimuovere l'accesso quando nella policy è presente una sola entità, fai clic sull'icona Elimina policy accanto a Livelli di accesso.
Per rimuovere singole entità da una policy, fai clic sull'icona X accanto al nome dell'entità da rimuovere.
Per salvare la configurazione dell'utente, fai clic su Salva.
gcloud
Per aggiungere o rimuovere l'accesso a un servizio Cloud Run per singoli utenti o gruppi, esegui uno dei seguenti comandi:
Per aggiungere l'accesso:
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPer rimuovere l'accesso:
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPer visualizzare l'accesso:
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
Sostituisci quanto segue:
USER_EMAIL: l'indirizzo email dell'utente.REGION: il nome della regione Cloud Run.SERVICE_NAME: il nome del tuo servizio Cloud Run.
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Per concedere l'accesso autorevole a un elenco di entità:
Utilizza la risorsa
google_iap_web_cloud_run_service_iam_bindingper concedere un ruolo a un elenco autorevole di entità. Questa risorsa garantisce che il ruolo venga concesso solo ai membri dell'elenco. Tutte le altre entità a cui è stato concesso il ruolo vengono rimosse.Aggiungi quanto segue a una risorsa
google_iap_web_cloud_run_service_iam_bindingnella configurazione Terraform.resource "google_iap_web_cloud_run_service_iam_binding" "binding" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" members = [ "PRINCIPAL_A", "PRINCIPAL_B" ] }Sostituisci quanto segue:
PROJECT_ID: il nome del progetto.REGION: la Google Cloud regione, ad esempioeurope-west1.SERVICE_NAME: il nome del tuo servizio Cloud Run.PRINCIPAL: un identificatore per i principal o i membri, che di solito ha il seguente formato:PRINCIPAL_TYPE:ID. Ad esempio,user:my-user@example.com. Per un elenco completo dei valori chePRINCIPALpuò avere, consulta il riferimento Policy Binding.
Per concedere l'accesso a un singolo principal:
Utilizza la risorsa
google_iap_web_cloud_run_service_iam_memberper concedere un ruolo a una singola entità senza influire su altre entità che potrebbero avere lo stesso ruolo.Aggiungi quanto segue a una risorsa
google_iap_web_cloud_run_service_iam_membernella configurazione Terraform.resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }Sostituisci quanto segue:
PROJECT_ID: il nome del progetto.REGION: la Google Cloud regione, ad esempioeurope-west1.SERVICE_NAME: il nome del tuo servizio Cloud Run.PRINCIPAL: un identificatore per i principal o i membri, che di solito ha il seguente formato:PRINCIPAL_TYPE:ID. Ad esempio,user:my-user@example.com. Per un elenco completo dei valori chePRINCIPALpuò avere, consulta il riferimento Policy Binding.
Esterni all'organizzazione
Console
Per aggiungere utenti esterni alla tua organizzazione utilizzando IAP, completa la seguente procedura di configurazione una tantum:
Nella console Google Cloud , vai alla pagina Cloud Run:
Fai clic sul servizio esistente che vuoi modificare e poi su Sicurezza.
Nella pagina dei dettagli di sicurezza del servizio Cloud Run, in IAP, fai clic su Modifica criterio.
Fai clic su Configura in IAP. Si apre la pagina delle impostazioni delle risorse in IAP.
Fai clic su Configura schermata per il consenso per configurare la schermata per il consenso OAuth. Per il tipo di segmento di pubblico, seleziona Esterno.
Per una configurazione più rapida, fai clic su Genera automaticamente le credenziali.
In alternativa, segui le istruzioni per creare un ID client OAuth. Seleziona OAuth personalizzato e inserisci l'ID client e il client secret personalizzati.
Per salvare la configurazione, fai clic su Salva.
Ora puoi tornare al tuo servizio Cloud Run in Cloud Run per aggiungere principal esterni all'organizzazione.
Per aggiungere o rimuovere l'accesso utente:
Nella console Google Cloud , vai alla pagina Cloud Run:
Fai clic sul servizio esistente che vuoi modificare e poi su Sicurezza.
In IAP, fai clic su Modifica policy.
Per aggiungere l'accesso, inserisci l'entità e, facoltativamente, il livello di accesso che vuoi aggiungere oppure lascia vuoto il livello di accesso.
Per rimuovere l'accesso quando nella policy è presente una sola entità, fai clic sull'icona Elimina policy accanto a Livelli di accesso.
Per rimuovere singole entità da una policy, fai clic sull'icona X accanto al nome dell'entità da rimuovere.
Per salvare la configurazione dell'utente, fai clic su Salva.
gcloud
Prima di iniziare
- Per aggiungere entità utente esterne a un'organizzazione, devi prima configurare il client OAuth}.
Per aggiungere o rimuovere l'accesso a un servizio Cloud Run per singoli utenti o gruppi, esegui uno dei seguenti comandi:
Per aggiungere l'accesso:
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPer rimuovere l'accesso:
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPer visualizzare l'accesso:
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
Sostituisci quanto segue:
USER_EMAIL: l'indirizzo email dell'utente.REGION: il nome della regione Cloud Run.SERVICE_NAME: il nome del tuo servizio Cloud Run.
Terraform
Prima di iniziare
- Per aggiungere entità utente esterne a un'organizzazione, devi prima configurare il client OAuth.
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Per concedere l'accesso autorevole a un elenco di entità:
Utilizza la risorsa
google_iap_web_cloud_run_service_iam_bindingper concedere un ruolo a un elenco autorevole di entità. Questa risorsa garantisce che solo ai membri dell'elenco venga concesso il ruolo. Tutte le altre entità a cui è stato concesso il ruolo vengono rimosse.Aggiungi quanto segue a una risorsa
google_iap_web_cloud_run_service_iam_bindingnella configurazione Terraform.resource "google_iap_web_cloud_run_service_iam_binding" "binding" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" members = [ "PRINCIPAL_A", "PRINCIPAL_B" ] }Sostituisci quanto segue:
PROJECT_ID: il nome del progetto.REGION: la Google Cloud regione, ad esempioeurope-west1.SERVICE_NAME: il nome del tuo servizio Cloud Run.PRINCIPAL: un identificatore per i principal o i membri, che di solito ha il seguente formato:PRINCIPAL_TYPE:ID. Ad esempio,user:my-user@example.com. Per un elenco completo dei valori chePRINCIPALpuò avere, consulta il riferimento Policy Binding.
Per concedere l'accesso a un singolo principal:
Utilizza la risorsa
google_iap_web_cloud_run_service_iam_memberper concedere un ruolo a una singola entità senza influire su altre entità che potrebbero avere lo stesso ruolo.Aggiungi quanto segue a una risorsa
google_iap_web_cloud_run_service_iam_membernella configurazione Terraform.resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }Sostituisci quanto segue:
PROJECT_ID: il nome del progetto.- REGION: la Google Cloud regione, ad esempio
europe-west1. - SERVICE_NAME: il nome del tuo servizio Cloud Run.
- PRINCIPAL: un identificatore per i principal o i membri, che di solito ha il seguente formato:
PRINCIPAL_TYPE:ID. Ad esempio,
user:my-user@example.com. Per un elenco completo dei valori che PRINCIPAL può avere, consulta il riferimento Policy Binding.
Nessuna organizzazione
Console
Per aggiungere o rimuovere l'accesso:
Nella console Google Cloud , vai alla pagina Cloud Run:
Fai clic sul servizio esistente che vuoi modificare e poi su Sicurezza.
In IAP, fai clic su Modifica policy.
Per aggiungere l'accesso, inserisci l'entità e, facoltativamente, il livello di accesso che vuoi aggiungere o lascia vuoto il livello di accesso.
Per rimuovere l'accesso quando nella policy è presente una sola entità, fai clic sull'icona Elimina policy accanto a Livelli di accesso.
Per rimuovere singole entità da una policy, fai clic sull'icona X accanto al nome dell'entità da rimuovere.
Per salvare la configurazione dell'utente, fai clic su Salva.
gcloud
Prima di iniziare
- Per aggiungere utenti a un progetto senza un'organizzazione, devi prima seguire la configurazione una tantum per configurare un client OAuth personalizzato.
Per aggiungere o rimuovere l'accesso a un servizio Cloud Run per singoli utenti o gruppi, esegui uno dei seguenti comandi:
Per aggiungere l'accesso:
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPer rimuovere l'accesso:
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPer visualizzare l'accesso:
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
Sostituisci quanto segue:
USER_EMAIL: l'indirizzo email dell'utente.REGION: il nome della regione Cloud Run.SERVICE_NAME: il nome del tuo servizio Cloud Run.
Terraform
Prima di iniziare
- Per aggiungere entità utente esterne a un'organizzazione, devi prima configurare il client OAuth.
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Per concedere l'accesso autorevole a un elenco di entità:
Utilizza la risorsa
google_iap_web_cloud_run_service_iam_bindingper concedere un ruolo a un elenco autorevole di entità. Questa risorsa garantisce che solo ai membri dell'elenco venga concesso il ruolo. Tutte le altre entità a cui è stato concesso il ruolo vengono rimosse.Aggiungi quanto segue a una risorsa
google_iap_web_cloud_run_service_iam_bindingnella configurazione Terraform.resource "google_iap_web_cloud_run_service_iam_binding" "binding" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" members = [ "PRINCIPAL_A", "PRINCIPAL_B" ] }Sostituisci quanto segue:
PROJECT_ID: il nome del progetto.REGION: la Google Cloud regione, ad esempioeurope-west1.SERVICE_NAME: il nome del tuo servizio Cloud Run.PRINCIPAL: un identificatore per i principal o i membri, che di solito ha il seguente formato:PRINCIPAL_TYPE:ID. Ad esempio,user:my-user@example.com. Per un elenco completo dei valori chePRINCIPALpuò avere, consulta il riferimento Policy Binding.
Per concedere l'accesso a un singolo principal:
Utilizza la risorsa
google_iap_web_cloud_run_service_iam_memberper concedere un ruolo a una singola entità senza influire su altre entità che potrebbero avere lo stesso ruolo.Aggiungi quanto segue a una risorsa
google_iap_web_cloud_run_service_iam_membernella configurazione Terraform.resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }Sostituisci quanto segue:
PROJECT_ID: il nome del progetto.REGION: la Google Cloud regione, ad esempioeurope-west1.SERVICE_NAME: il nome del tuo servizio Cloud Run.PRINCIPAL: un identificatore per i principal o i membri, che di solito ha il seguente formato:PRINCIPAL_TYPE:ID. Ad esempio,user:my-user@example.com. Per un elenco completo dei valori chePRINCIPALpuò avere, consulta il riferimento Policy Binding.
Disabilita IAP da Cloud Run
Puoi disattivare IAP utilizzando la console Google Cloud o gcloud CLI.
Console
Per disattivare IAP da Cloud Run, segui questi passaggi:
Nella console Google Cloud , vai alla pagina Cloud Run:
Fai clic sul servizio esistente che vuoi modificare.
Fai clic su Sicurezza e deseleziona IAP. Il tuo servizio è protetto dalla tua policy IAM. Tuttavia, se non utilizzi IAM, rendi il servizio accessibile pubblicamente selezionando Consenti accesso pubblico.
Per salvare la configurazione, fai clic su Salva.
gcloud
Per disattivare IAP direttamente da Cloud Run, aggiungi il flag --no-iap quando esegui il deployment dell'app nel seguente modo:
Esegui il deployment del servizio Cloud Run utilizzando uno dei seguenti comandi:
Per un nuovo servizio:
gcloud run deploy
SERVICE_NAME\ --region=REGION\ --image=IMAGE_URL\ --no-iapPer un servizio esistente:
gcloud run services update
SERVICE_NAME\ --region=REGION\ --no-iapSostituisci quanto segue:
SERVICE_NAME: il nome del tuo servizio Cloud Run.REGION: il nome della regione Cloud Run.- 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.
Per verificare che il servizio non sia più configurato con IAP abilitato, esegui questo comando:
gcloud run services describe
SERVICE_NAMEL'output non deve più contenere la seguente stringa:
Iap Enabled: true
IAP non instrada più tutto il traffico destinato al servizio Cloud Run configurato a IAP per l'autenticazione prima di passare al container.
Configurare un client OAuth personalizzato
Ti consigliamo di utilizzare la Google Cloud console quando attivi gli acquisti in-app per la prima volta. In questo modo, puoi generare automaticamente le credenziali per evitare di dover creare manualmente un client OAuth personalizzato. Quando abiliti IAP su Cloud Run direttamente dalla console Google Cloud , IAP configura automaticamente il client OAuth personalizzato per te a livello di progetto.
Se utilizzi gcloud CLI per gestire l'accesso per gli utenti senza un'organizzazione, attiva IAP su Cloud Run direttamente dalla console Google Cloud o segui i passaggi descritti in questa sezione per creare manualmente un client OAuth personalizzato.
Per scenari avanzati, come la personalizzazione della schermata di consenso o la gestione dei client OAuth a livello di organizzazione, segui questi passaggi.
Configurare il brand
Nella console Google Cloud , vai alla pagina Branding OAuth:
Fai clic su Inizia.
Compila il modulo Informazioni sull'app e fai clic su Avanti.
Nella sezione Pubblico, seleziona Esterno.
Compila il resto del modulo e fai clic su Crea.
Crea manualmente un client OAuth personalizzato
Se è la prima volta che configuri Google Auth Platform:
Nella console Google Cloud , vai alla pagina Client:
Se richiesto, fai clic su Inizia nella pagina di panoramica della piattaforma Google Auth.
- Compila i dettagli delle informazioni sull'app e fai clic su Avanti.
- Seleziona Esterno per il tipo di segmento di pubblico.
- Compila i dati di contatto, accetta i termini e fai clic su Crea.
- Fai clic su Crea cliente.
- In Tipo di applicazione, seleziona Applicazione web e compila il nome del client OAuth.
- Nel campo URI di reindirizzamento autorizzati, aggiungi il seguente URI:
Sostituiscihttps://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect
CLIENT_IDcon l'ID client OAuth. - Fai clic su Crea.
- Prendi nota dell'ID client e del client secret e fai clic su Ok.
Se hai già configurato Google Auth Platform:
Nella console Google Cloud , vai alla pagina Client:
Fai clic su Crea cliente.
In Tipo di applicazione, seleziona Applicazione web e compila il nome del client OAuth.
Compila i dettagli delle informazioni sull'app.
Nel campo URI di reindirizzamento autorizzati, aggiungi il seguente URI:
Sostituiscihttps://iap.googleapis.com/v1/oauth/clientIds/
CLIENT_ID:handleRedirectCLIENT_IDcon l'ID client OAuth.Fai clic su Crea.
Prendi nota dell'ID client e del client secret e fai clic su Ok.
Applica il client OAuth a IAP
Puoi applicare il client OAuth a livello di progetto o organizzazione.
A livello di progetto, segui questi passaggi:
Crea un file denominato
iap_settings.yamle aggiungi i seguenti contenuti:access_settings: oauth_settings: client_id:
CLIENT_IDclient_secret:CLIENT_SECRETEsegui il comando
gcloud iap settings setper applicare il client OAuth a livello di progetto:gcloud iap settings set iap_settings.yaml --project=
PROJECT_ID
Sostituisci quanto segue:
CLIENT_ID: l'ID client OAuth che hai salvato nel passaggio precedente.CLIENT_SECRET: il secret salvato nel passaggio precedente.PROJECT_ID: l'ID progetto.
A livello di organizzazione, segui questi passaggi:
Per applicare il client OAuth a livello di organizzazione, esegui il comando
gcloud iap settings set:gcloud iap settings set iap_settings.yaml --organization=
ORGANIZATION_NUMBERSostituisci quanto segue:
CLIENT_ID: l'ID client OAuth che hai salvato nel passaggio precedente.CLIENT_SECRET: il secret che hai salvato nel passaggio precedente.ORGANIZATION_NUMBER: il numero della tua organizzazione.
Risoluzione dei problemi
La sezione seguente descrive come risolvere i problemi relativi a IAP con Cloud Run.
Errori di accesso esterno all'organizzazione
Di seguito sono riportati gli errori che potresti riscontrare durante la configurazione dell'accesso per gli utenti esterni alla tua organizzazione.
Accesso utente esterno all'organizzazione: disattivato
Per assicurarti che l'accesso esterno all'organizzazione sia disabilitato, ti consigliamo di disabilitarlo a livello di progetto. I controlli ad altri livelli (servizio, cartella o organizzazione) potrebbero apparire disabilitati, anche se l'accesso è disponibile.
Al momento, il brand è impostato su "interno"
L'accesso esterno all'organizzazione non è supportato quando il brand del client OAuth personalizzato è impostato su interno.
Per aggiornare l'impostazione Brand su "esterno" per abilitare l'accesso per le entità esterne all'organizzazione con IAP, completa i seguenti passaggi:
Nella console Google Cloud , vai alla pagina Pubblico della piattaforma Google Auth:
In Tipo di utente, fai clic su Rendi esterno.
L'errore del service agent causa l'errore di impostazione di IAM
L'attivazione di IAP su un nuovo progetto per la prima volta può causare il seguente errore:
Setting IAM permissions failedCiò è dovuto all'errore dell'agente di servizio Cloud Run. Per risolvere il problema, riabilita IAP o imposta manualmente il criterio IAM.
Passaggi successivi
- Per istruzioni su come abilitare IAP da un servizio di backend o da un bilanciatore del carico, consulta Abilitare IAP per Cloud Run.
- Per problemi relativi all'attivazione di IAP per Cloud Run, vedi Risoluzione degli errori.
- Gestione dell'accesso alle risorse protette da IAP.
- Utilizzo dei criteri dell'organizzazione per controllare l'attivazione di IAP.