Configura IAP per Cloud Run

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

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:
  • 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:

  1. Nella console Google Cloud , vai alla pagina Servizi di Cloud Run:

    Vai a Cloud Run

  2. 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).

  3. Se stai modificando un servizio esistente, fai clic sul servizio, sulla scheda Sicurezza e poi seleziona Richiedi autenticazione. Seleziona IAP.

  4. 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.

  5. Per salvare la configurazione, fai clic su Salva.

  6. 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:

  1. 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 \
      --iap

    Se 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 \
      --iap

    Sostituisci 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
    • PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
  2. 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.invoker

    Sostituisci 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.
  3. Facoltativo. Per concedere l'accesso agli utenti, consulta Gestire l'accesso di utenti o gruppi per IAP.

  4. Per verificare che il servizio sia configurato con IAP abilitato, esegui questo comando:

    gcloud run services describe SERVICE_NAME

    L'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.

  1. Aggiungi iap_enabled = true a una risorsa google_cloud_run_v2_service nella 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"
        }
      }
    }
    
  2. Aggiungi quanto segue per concedere il ruolo roles/run.invoker al 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_NUMBER con il numero del progetto.

  3. Facoltativo. Per recuperare i dati dei criteri IAM attuali, 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
    }
    

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:

  1. Nella console Google Cloud , vai alla pagina Cloud Run:

    Vai a Cloud Run

  2. Fai clic sul servizio esistente che vuoi modificare e poi su Sicurezza.

  3. In IAP, fai clic su Modifica policy.

  4. Per aggiungere l'accesso, inserisci l'entità e, facoltativamente, il livello di accesso che vuoi aggiungere o lascia vuoto il livello di accesso.

  5. Per rimuovere l'accesso quando nella policy è presente una sola entità, fai clic sull'icona Elimina policy accanto a Livelli di accesso.

  6. Per rimuovere singole entità da una policy, fai clic sull'icona X accanto al nome dell'entità da rimuovere.

  7. 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_NAME
  • Per 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_NAME
  • Per 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_binding per 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.

    1. Aggiungi quanto segue a una risorsa google_iap_web_cloud_run_service_iam_binding nella 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 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.
  • Per concedere l'accesso a un singolo principal:

    Utilizza la risorsa google_iap_web_cloud_run_service_iam_member per concedere un ruolo a una singola entità senza influire su altre entità che potrebbero avere lo stesso ruolo.

    1. Aggiungi quanto segue a una risorsa google_iap_web_cloud_run_service_iam_member nella 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.

Esterni all'organizzazione

Console

  • Per aggiungere utenti esterni alla tua organizzazione utilizzando IAP, completa la seguente procedura di configurazione una tantum:

    1. Nella console Google Cloud , vai alla pagina Cloud Run:

      Vai a Cloud Run

    2. Fai clic sul servizio esistente che vuoi modificare e poi su Sicurezza.

    3. Nella pagina dei dettagli di sicurezza del servizio Cloud Run, in IAP, fai clic su Modifica criterio.

    4. Fai clic su Configura in IAP. Si apre la pagina delle impostazioni delle risorse in IAP.

    5. 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.

    6. Per una configurazione più rapida, fai clic su Genera automaticamente le credenziali.

    7. In alternativa, segui le istruzioni per creare un ID client OAuth. Seleziona OAuth personalizzato e inserisci l'ID client e il client secret personalizzati.

    8. 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:

    1. Nella console Google Cloud , vai alla pagina Cloud Run:

      Vai a Cloud Run

    2. Fai clic sul servizio esistente che vuoi modificare e poi su Sicurezza.

    3. In IAP, fai clic su Modifica policy.

    4. Per aggiungere l'accesso, inserisci l'entità e, facoltativamente, il livello di accesso che vuoi aggiungere oppure lascia vuoto il livello di accesso.

    5. Per rimuovere l'accesso quando nella policy è presente una sola entità, fai clic sull'icona Elimina policy accanto a Livelli di accesso.

    6. Per rimuovere singole entità da una policy, fai clic sull'icona X accanto al nome dell'entità da rimuovere.

    7. Per salvare la configurazione dell'utente, fai clic su Salva.

gcloud

Prima di iniziare

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_NAME
  • Per 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_NAME
  • Per 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 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_binding per 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.

    1. Aggiungi quanto segue a una risorsa google_iap_web_cloud_run_service_iam_binding nella 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 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.
  • Per concedere l'accesso a un singolo principal:

    Utilizza la risorsa google_iap_web_cloud_run_service_iam_member per concedere un ruolo a una singola entità senza influire su altre entità che potrebbero avere lo stesso ruolo.

    1. Aggiungi quanto segue a una risorsa google_iap_web_cloud_run_service_iam_member nella 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:

  1. Nella console Google Cloud , vai alla pagina Cloud Run:

    Vai a Cloud Run

  2. Fai clic sul servizio esistente che vuoi modificare e poi su Sicurezza.

  3. In IAP, fai clic su Modifica policy.

  4. Per aggiungere l'accesso, inserisci l'entità e, facoltativamente, il livello di accesso che vuoi aggiungere o lascia vuoto il livello di accesso.

  5. Per rimuovere l'accesso quando nella policy è presente una sola entità, fai clic sull'icona Elimina policy accanto a Livelli di accesso.

  6. Per rimuovere singole entità da una policy, fai clic sull'icona X accanto al nome dell'entità da rimuovere.

  7. Per salvare la configurazione dell'utente, fai clic su Salva.

gcloud

Prima di iniziare

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_NAME
  • Per 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_NAME
  • Per 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 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_binding per 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.

    1. Aggiungi quanto segue a una risorsa google_iap_web_cloud_run_service_iam_binding nella 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 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.
  • Per concedere l'accesso a un singolo principal:

    Utilizza la risorsa google_iap_web_cloud_run_service_iam_member per concedere un ruolo a una singola entità senza influire su altre entità che potrebbero avere lo stesso ruolo.

    1. Aggiungi quanto segue a una risorsa google_iap_web_cloud_run_service_iam_member nella 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.

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:

  1. Nella console Google Cloud , vai alla pagina Cloud Run:

    Vai a Cloud Run

  2. Fai clic sul servizio esistente che vuoi modificare.

  3. 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.

  4. 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:

  1. 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-iap

    Per un servizio esistente:

    gcloud run services update SERVICE_NAME \
      --region=REGION \
      --no-iap

    Sostituisci 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  2. Per verificare che il servizio non sia più configurato con IAP abilitato, esegui questo comando:

    gcloud run services describe SERVICE_NAME

    L'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

  1. Nella console Google Cloud , vai alla pagina Branding OAuth:

    Vai a Branding

  2. Fai clic su Inizia.

  3. Compila il modulo Informazioni sull'app e fai clic su Avanti.

  4. Nella sezione Pubblico, seleziona Esterno.

  5. 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:

    1. Nella console Google Cloud , vai alla pagina Client:

      Vai a Clienti

    2. Se richiesto, fai clic su Inizia nella pagina di panoramica della piattaforma Google Auth.

      1. Compila i dettagli delle informazioni sull'app e fai clic su Avanti.
      2. Seleziona Esterno per il tipo di segmento di pubblico.
      3. Compila i dati di contatto, accetta i termini e fai clic su Crea.
      4. Fai clic su Crea cliente.
      5. In Tipo di applicazione, seleziona Applicazione web e compila il nome del client OAuth.
      6. Nel campo URI di reindirizzamento autorizzati, aggiungi il seguente URI:
        https://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect
        Sostituisci CLIENT_ID con l'ID client OAuth.
      7. Fai clic su Crea.
      8. Prendi nota dell'ID client e del client secret e fai clic su Ok.
  • Se hai già configurato Google Auth Platform:

    1. Nella console Google Cloud , vai alla pagina Client:

      Vai a Clienti

    2. Fai clic su Crea cliente.

    3. In Tipo di applicazione, seleziona Applicazione web e compila il nome del client OAuth.

    4. Compila i dettagli delle informazioni sull'app.

    5. Nel campo URI di reindirizzamento autorizzati, aggiungi il seguente URI:

      https://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect
      Sostituisci CLIENT_ID con l'ID client OAuth.

    6. Fai clic su Crea.

    7. 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:

    1. Crea un file denominato iap_settings.yaml e aggiungi i seguenti contenuti:

      access_settings:
        oauth_settings:
          client_id: CLIENT_ID
          client_secret: CLIENT_SECRET
    2. Esegui il comando gcloud iap settings set per 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:

    1. 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_NUMBER

      Sostituisci 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:

  1. Nella console Google Cloud , vai alla pagina Pubblico della piattaforma Google Auth:

    Vai a Pubblico

  2. 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 failed

Ciò è dovuto all'errore dell'agente di servizio Cloud Run. Per risolvere il problema, riabilita IAP o imposta manualmente il criterio IAM.

Passaggi successivi