Questa pagina descrive come abilitare IAP direttamente su un servizio Cloud Run e proteggere il traffico destinato a un servizio Cloud Run instradandolo a IAP per l'autenticazione. Se attivi IAP direttamente su Cloud Run, puoi proteggere il traffico con un solo clic da tutti i percorsi di traffico in entrata, inclusi gli URL run.app e i bilanciatori del carico 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 per gli utenti che appartengono alla stessa organizzazione del tuo servizio Cloud Run
- All'esterno dell'organizzazione: configura l'accesso per gli utenti che appartengono a organizzazioni diverse da quella del 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 le policy IAP prima di eseguire i controlli IAM sul service account IAP. Poiché IAP intercetta le richieste e sostituisce l'identità del chiamante originale, servizi come Pub/Sub che si basano sulla propria autenticazione potrebbero non riuscire.
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 per IAP:
IAP Policy Admin (
roles/iap.admin) sul progetto -
Crea un servizio abilitato per IAP o aggiorna un servizio esistente per abilitare IAP:
- Artifact Registry Reader (
roles/artifactregistry.reader) sulle immagini container di cui è stato eseguito il deployment - Utente dell'account di servizio (
roles/iam.serviceAccountUser) sull'identità di servizio
- Artifact Registry Reader (
-
Concedi l'accesso agli utenti che non fanno parte di un'organizzazione Google:
Amministratore impostazioni IAP (
roles/iap.settingsAdmin) sul progetto -
Concedi l'accesso agli utenti esterni a un'organizzazione o che non fanno parte di un'organizzazione:
OAuth Config Editor (
roles/oauthconfig.editor) sul progetto -
Aggiungi o gestisci i livelli di accesso per l'accesso sensibile al contesto:
- Gestore contesto accesso Reader (
roles/accesscontextmanager.policyReader) sull'organizzazione e Visualizzatore organizzazione - Organization Viewer (
roles/resourcemanager.organizationViewer) sull'organizzazione
- Gestore contesto accesso Reader (
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.
Abilita 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 tuo servizio Cloud Run. Se attivi IAP utilizzando la console Google Cloud , questa autorizzazione viene concessa automaticamente assegnando il ruolo Cloud Run Invoker (roles/run.invoker) all'agente di servizio IAP.
Per abilitare IAP da Cloud Run:
Nella console Google Cloud , vai a Cloud Run:
Seleziona Servizi dal menu di navigazione di Cloud Run:
Se stai configurando un nuovo servizio, fai clic su Esegui il deployment del container e compila la pagina delle impostazioni iniziali del servizio.
Se stai configurando un servizio esistente, fai clic sul servizio, quindi sulla scheda Sicurezza.
Seleziona Richiedi autenticazione, quindi seleziona Identity-Aware Proxy (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.
Fai clic su Crea per un nuovo servizio. Fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche per un servizio esistente.
gcloud
Per abilitare IAP direttamente da Cloud Run, aggiungi il flag --iap durante 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 attivare prima IAP su Cloud Run direttamente dalla console Google Cloud o di configurare un client OAuth personalizzato, quindi di aggiungere gli 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 esempious-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 numero di progetto Google Cloud .
Concedi l'autorizzazione Invoker all'agente di servizio 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 numero di progetto Google Cloud .
Facoltativo. Per concedere l'accesso agli utenti, consulta Gestisci 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 della policy IAM per concedere l'autorizzazione 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.invokerall'agente di servizio 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 della policy IAM corrente, 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 }
Gestisci l'accesso di utenti o gruppi
Per impostazione predefinita, IAP per Cloud Run utilizza un client OAuth gestito da Google che ti consente di aggiungere identità interne all'organizzazione con un indirizzo email associato a un utente. Puoi anche gestire le entità esterne 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, quindi su Sicurezza.
In Identity-Aware Proxy (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 visualizzare e aggiungere livelli di accesso, devi disporre dei ruoli richiesti per Gestore contesto 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à che vuoi rimuovere.
Per salvare la configurazione 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 in visualizzazione:
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 tua 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 autoritativo 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 nell'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 regione Google Cloud , ad esempioeurope-west1.SERVICE_NAME: il nome del tuo servizio Cloud Run.PRINCIPAL: un identificatore per le entità 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 per l'associazione delle policy.
Per concedere l'accesso a una singola entità:
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 = "/span>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 regione Google Cloud , ad esempioeurope-west1.SERVICE_NAME: il nome del tuo servizio Cloud Run.PRINCIPAL: un identificatore per le entità 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 per l'associazione delle policy.
Esterno 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, quindi su Sicurezza.
Nella pagina dei dettagli di sicurezza del servizio Cloud Run, in IAP, fai clic su Modifica policy.
Fai clic su Configura in IAP. Si apre la pagina delle impostazioni della risorsa in IAP.
Fai clic su Configura la schermata per il consenso per configurare la schermata per il consenso OAuth. Per il tipo 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 secret personalizzati.
Per salvare la configurazione, fai clic su Salva.
Ora puoi tornare al tuo servizio Cloud Run in Cloud Run per aggiungere entità esterne all'organizzazione.
Per aggiungere o rimuovere l'accesso degli utenti, completa i seguenti passaggi:
Nella console Google Cloud , vai alla pagina Cloud Run:
Fai clic sul servizio esistente che vuoi modificare, quindi 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 visualizzare e aggiungere livelli di accesso, devi disporre dei ruoli richiesti per Gestore contesto 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à che vuoi rimuovere.
Per salvare la configurazione 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 in visualizzazione:
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 autoritativo 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 nell'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 regione Google Cloud , ad esempioeurope-west1.SERVICE_NAME: il nome del tuo servizio Cloud Run.PRINCIPAL: un identificatore per le entità 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 una singola entità:
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 = "/span>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 regione Google Cloud , ad esempio
europe-west1. - SERVICE_NAME: il nome del tuo servizio Cloud Run.
- PRINCIPAL: un identificatore per le entità 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 per l'associazione delle policy.
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, quindi 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 visualizzare e aggiungere livelli di accesso, devi disporre dei ruoli richiesti per Gestore contesto 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à che vuoi rimuovere.
Per salvare la configurazione 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 in visualizzazione:
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 autoritativo 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 nell'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 regione Google Cloud , ad esempioeurope-west1.SERVICE_NAME: il nome del tuo servizio Cloud Run.PRINCIPAL: un identificatore per le entità 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 per l'associazione delle policy.
Per concedere l'accesso a una singola entità:
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 = "/span>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 regione Google Cloud , ad esempioeurope-west1.SERVICE_NAME: il nome del tuo servizio Cloud Run.PRINCIPAL: un identificatore per le entità 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 per l'associazione delle policy.
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:
Seleziona il servizio da modificare.
Fai clic sulla scheda Sicurezza.
Deseleziona Identity-Aware Proxy (IAP). Il tuo servizio è protetto dalla policy IAM. Tuttavia, se non utilizzi IAM, rendi il servizio accessibile pubblicamente selezionando Consenti accesso pubblico.
Fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche.
gcloud
Per disabilitare IAP direttamente da Cloud Run, aggiungi il flag --no-iap quando esegui il deployment dell'app come segue:
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 esempious-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 esegue più il routing di tutto il traffico destinato al servizio Cloud Run configurato verso IAP per l'autenticazione prima di passarlo al container.
Configura un client OAuth personalizzato
Ti consigliamo di utilizzare la console Google Cloud quando attivi IAP 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 a livello di progetto.
Se utilizzi gcloud CLI per gestire l'accesso degli utenti senza un'organizzazione, abilita 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 per il consenso o la gestione dei client OAuth a livello di organizzazione, segui questi passaggi.
Configura 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.
In 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 riepilogo della piattaforma di autenticazione di Google.
- Compila i dettagli delle informazioni sull'app e fai clic su Avanti.
- Seleziona Esterno per il tipo di pubblico.
- Compila i dati di contatto, accetta i termini e poi fai clic su Crea.
- Fai clic su Crea client.
- In Tipo di applicazione, seleziona Applicazione web e compila il nome del client OAuth.
- Fai clic su Crea.
- Prendi nota dell'ID client e del client secret e fai clic su Ok.
- Fai clic sul nome del client OAuth appena creato per modificarlo.
- 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 appena generato. - Fai clic su Salva.
Se hai già configurato Google Auth Platform:
Nella console Google Cloud , vai alla pagina Client:
Fai clic su Crea client.
In Tipo di applicazione, seleziona Applicazione web e compila il nome del client OAuth.
Compila i dettagli delle informazioni sull'app.
Fai clic su Crea.
Prendi nota dell'ID client e del client secret e fai clic su Ok.
Fai clic sul nome del client OAuth appena creato per modificarlo.
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 appena generato.Fai clic su Salva.
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 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 salvato nel passaggio precedente.CLIENT_SECRET: il secret salvato nel passaggio precedente.ORGANIZATION_NUMBER: il numero della tua organizzazione.
Risoluzione dei problemi
La sezione seguente descrive come risolvere i problemi di 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 disattivato, ti consigliamo di disattivarlo 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 le impostazioni relative ai brand su "esterno" e 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 di autenticazione di Google:
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 failedQuesto perché l'agente di servizio Cloud Run non è riuscito. Per risolvere il problema, attiva nuovamente IAP o imposta manualmente la policy IAM.
Passaggi successivi
- Per istruzioni su come abilitare IAP da un servizio di backend o un bilanciatore del carico, consulta Abilitazione di IAP per Cloud Run.
- Per problemi relativi all'abilitazione di IAP per Cloud Run, consulta Risoluzione degli errori.
- Gestione dell'accesso alle risorse protette da IAP.
- Utilizzo delle policy dell'organizzazione per controllare l'attivazione di IAP.