Questa pagina descrive come abilitare Identity-Aware Proxy da Cloud Run e proteggere il traffico destinato a un servizio Cloud Run eseguendo il routing a IAP per l'autenticazione. Se abiliti IAP da Cloud Run, puoi instradare il traffico con un solo clic da tutti i percorsi di ingresso, inclusi gli URL run.app
e i bilanciatori del carico predefiniti.
Limitazioni note
- Il progetto deve trovarsi all'interno di un'organizzazione.
- Le identità devono provenire dalla stessa organizzazione.
- Non puoi configurare IAP sia sul bilanciatore del carico sia sul servizio Cloud Run.
- Alcune integrazioni, come Pub/Sub, potrebbero smettere di funzionare se IAP è abilitato.
Prima di iniziare
Abilita IAP da Cloud Run
Puoi abilitare IAP da Cloud Run.
Se utilizzi sia IAP che IAM sullo stesso servizio Cloud Run, tieni presente le seguenti condizioni:
Vengono eseguiti sia i controlli IAP che quelli IAM.
Il controllo IAP viene eseguito per primo e accetta o blocca le richieste in base alla configurazione IAP.
Se la richiesta supera il controllo IAP, IAP utilizza il proprio account di servizio per l'autenticazione al controllo IAM di Cloud Run.
Poiché il controllo IAP viene eseguito per primo, alcuni servizi, come Pub/Sub, potrebbero non eseguire l'autenticazione correttamente.
Attiva IAP da Cloud Run utilizzando la console Google Cloud , Google Cloud CLI o Terraform.
Console
Per abilitare IAP da Cloud Run:
Nella console Google Cloud , vai alla pagina Cloud Run:
Se stai configurando un nuovo servizio di cui stai eseguendo il deployment, seleziona Esegui il deployment del contenitore > Servizio. Se stai configurando ed eseguendo il deployment di un servizio esistente, fai clic sul servizio, quindi su Modifica ed esegui il deployment della nuova revisione.
Se stai configurando un nuovo servizio, compila la pagina delle impostazioni iniziali del servizio in base alle esigenze, quindi seleziona Autenticazione avanzata con Identity Aware Proxy (IAP).
Se stai configurando e implementando un servizio esistente, fai clic sul servizio e poi seleziona Autenticazione avanzata con Identity Aware Proxy (IAP).
Fai clic su Modifica policy per creare una policy di accesso sensibile al contesto:
Aggiungi una o più entità e, facoltativamente, il livello di accesso che ogni entità deve soddisfare per l'accesso all'applicazione.
Fai clic su Salva.
Fai clic su Salva.
gcloud
Per abilitare IAP direttamente da Cloud Run, aggiungi il flag --iap
quando esegui il deployment dell'app:
Esegui il deployment del servizio Cloud Run utilizzando uno dei seguenti comandi:
Per un nuovo servizio:
gcloud beta run deploy SERVICE_NAME \ --region=REGION \ --image=IMAGE_URL \ --no-allow-unauthenticated \ --iap
Per un servizio esistente:
gcloud beta run services update SERVICE_NAME \ --region=REGION \ --iap
Sostituisci:
- SERVICE_NAME con il nome del tuo servizio Cloud Run.
- REGION con il nome della tua regione Cloud Run.
Ad esempio,
europe-west1
. - IMAGE_URL con 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 ha la formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Per verificare che il servizio sia configurato con IAP abilitato, esegui questo comando:
gcloud beta run services describe SERVICE_NAME
L'output dovrebbe contenere la seguente stringa:
Iap Enabled: true
Ora tutto il traffico destinato al servizio Cloud Run configurato viene indirizzato a IAP per l'autenticazione prima di essere trasmesso al container.
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Aggiungi il criterio IAM per concedere il ruolo
Invoker di Cloud Run (roles/run.invoker
)
all'agente di servizio IAP. Per saperne di più, vedi
Gestire l'accesso alle risorse protette da IAP.
Aggiungi quanto segue a una risorsa
google_cloud_run_v2_service_iam_policy
nella 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 }
Aggiungi quanto segue a una risorsa
google_cloud_run_v2_service
nella configurazione Terraform.resource "google_cloud_run_v2_service" "default" { provider = google-beta name = "cloudrun-iap-service" location = "europe-west1" ingress = "INGRESS_TRAFFIC_ALL" launch_stage = "BETA" iap_enabled = true template { containers { image = "us-docker.pkg.dev/cloudrun/container/hello" } } }
Disabilita IAP da Cloud Run
Puoi disattivare IAP utilizzando la console Google Cloud o Google Cloud CLI.
Console
Per disattivare IAP da Cloud Run:
Nella console Google Cloud , vai alla pagina Cloud Run:
Fai clic sul servizio esistente che vuoi modificare.
Fai clic su Sicurezza e poi deseleziona Autenticazione avanzata con Identity Aware Proxy (IAP).
Fai clic su Salva.
gcloud
Per disattivare IAP direttamente da Cloud Run, aggiungi il
flag --no-iap
durante il deployment dell'app:
Esegui il deployment del servizio Cloud Run utilizzando uno dei seguenti comandi:
Per un nuovo servizio:
gcloud beta run deploy SERVICE_NAME \ --region=REGION \ --image=IMAGE_URL \ --no-iap
Per un servizio esistente:
gcloud beta run services update SERVICE_NAME \ --region=REGION \ --no-iap
Sostituisci:
- SERVICE_NAME con il nome del tuo servizio Cloud Run.
- REGION con il nome della tua regione Cloud Run.
- IMAGE_URL con 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 ha la formaLOCATION-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 beta run services describe SERVICE_NAME
L'output non dovrebbe più contenere la seguente stringa:
Iap Enabled: true
Non stai più instradando tutto il traffico destinato al servizio Cloud Run configurato a IAP per l'autenticazione prima di passarlo al container.
Gestire l'accesso di utenti o gruppi
Per impostazione predefinita, IAP per Cloud Run utilizza identità dell'organizzazione con Account Google. Puoi aggiungere o rimuovere l'accesso a un servizio Cloud Run utilizzando la console Google Cloud o Google Cloud CLI.
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 o i livelli di accesso che vuoi aggiungere.
Per rimuovere l'accesso da un principal esistente, fai clic sull'icona Elimina policy accanto a Livelli di accesso.
Fai clic su Salva.
gcloud
Per aggiungere o rimuovere l'accesso a un servizio Cloud Run per singoli utenti o gruppi all'interno della tua organizzazione, esegui uno dei seguenti comandi:
Per aggiungere l'accesso:
gcloud beta iap web add-iam-policy-binding \ --member=user:USER_EMAIL \ --role=roles/iap.httpsResourceAccessor \ --region=REGION \ --resource-type=cloud-run \ --service=SERVICE_NAME
Per rimuovere l'accesso:
gcloud beta iap web remove-iam-policy-binding \ --member=user:USER_EMAIL \ --role=roles/iap.httpsResourceAccessor \ --region=REGION \ --resource-type=cloud-run \ --service=SERVICE_NAME
Per visualizzare l'accesso:
gcloud beta iap web get-iam-policy \ --region=REGION \ --resource-type=cloud-run \ --service=SERVICE_NAME
Sostituisci:
- USER_EMAIL con l'indirizzo email dell'utente.
- REGION con il nome della tua regione Cloud Run.
- SERVICE_NAME con il nome del tuo servizio Cloud Run.
Risoluzione dei problemi
L'errore dell'agente di servizio 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 failed
Ciò è dovuto a un 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 con IAP da un servizio di backend o un bilanciatore del carico, consulta Abilitare IAP per Cloud Run.
- Per problemi relativi all'attivazione di IAP per Cloud Run, vedi Risoluzione degli errori.
- Attivazione di identità esterne.
- Attivazione della configurazione OAuth.
- Gestione dell'accesso alle risorse protette da IAP.
- Utilizzo dei criteri dell'organizzazione per controllare l'attivazione di IAP.