Utilizzare IAP per l'inoltro TCP

Questa pagina spiega come utilizzare l'inoltro TCP di Identity-Aware Proxy (IAP) per abilitare l'accesso amministrativo alle istanze VM che non dispongono di indirizzi IP esterni o che non consentono l'accesso diretto su internet.

L'inoltro TCP di IAP consente di stabilire un tunnel criptato tramite cui puoi inoltrare SSH, RDP e altro traffico alle istanze VM. L'inoltro TCP IAP offre inoltre un controllo granulare sugli utenti autorizzati a stabilire i tunnel e sulle istanze VM a cui gli utenti sono autorizzati a connettersi.

Per scoprire di più su come funziona l'inoltro TCP di IAP, consulta la panoramica dell'inoltro TCP.

Prima di iniziare

Per preparare l'ambiente all'utilizzo di IAP per l'inoltro TCP, completa i seguenti passaggi:

  1. Seleziona o crea un progetto Google Cloud e assicurati che la fatturazione sia abilitata.

  2. Se prevedi di utilizzare la riga di comando, installa e inizializza Google Cloud CLI.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per utilizzare l'inoltro TCP IAP, chiedi all'amministratore di concederti il ruolo IAM IAP Policy Admin (roles/iap.policyAdmin) 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.

Assicurati di avere un'istanza VM di Compute Engine nel tuo progetto. Se non hai un'istanza VM, crea e avvia un'istanza Compute Engine. L'istanza VM non richiede un indirizzo IP esterno per l'inoltro TCP IAP.

Preparare il progetto per l'inoltro TCP di IAP

Questa sezione illustra i passaggi necessari per abilitare l'inoltro TCP di IAP nel tuo progetto Google Cloud .

Crea una regola firewall

Per consentire a IAP di connettersi alle tue istanze VM, crea una regola firewall che:

  • Si applichi a tutte le istanze VM a cui vuoi accedere tramite IAP.
  • Consenta il traffico in entrata dall'intervallo IP 35.235.240.0/20. Questo intervallo contiene tutti gli indirizzi IP che utilizzati da IAP per l'inoltro TCP.

    Per le VM IPv6, utilizza il seguente intervallo IP: 2600:2d00:1:7::/64.

  • Consenta le connessioni a tutte le porte che vuoi rendere accessibili utilizzando l'inoltro TCP di IAP, ad esempio la porta 22 per SSH e la porta 3389 per RDP.

Console

Per consentire l'accesso RDP e SSH a tutte le istanze VM della tua rete, procedi nel seguente modo:

  1. Apri la pagina Regole firewall.

    Apri la pagina Regole firewall

    I passaggi rimanenti vengono visualizzati nella console Google Cloud .

  2. Seleziona un Google Cloud progetto.
  3. Nella pagina Regole firewall, fai clic su Crea regola firewall.
  4. Configura le seguenti impostazioni:
    • Nome: allow-ingress-from-iap
    • Direzione del traffico: in entrata
    • Target: tutte le istanze nella rete
    • Filtro di origine: intervalli IP
    • Intervalli IP di origine: 35.235.240.0/20
    • Protocolli e porte: seleziona TCP e inserisci 3389,22 per consentire sia RDP che SSH.
  5. Fai clic su Crea.

gcloud

Per consentire l'accesso RDP a tutte le istanze VM della tua rete, esegui:

gcloud compute firewall-rules create allow-rdp-ingress-from-iap \
  --direction=INGRESS \
  --action=allow \
  --rules=tcp:3389 \
  --source-ranges=35.235.240.0/20

Per l'accesso SSH, esegui:

gcloud compute firewall-rules create allow-ssh-ingress-from-iap \
  --direction=INGRESS \
  --action=allow \
  --rules=tcp:22 \
  --source-ranges=35.235.240.0/20

Per altri protocolli, esegui

gcloud compute firewall-rules create allow-ingress-from-iap \
  --direction=INGRESS \
  --action=allow \
  --rules=tcp:PORT \
  --source-ranges=35.235.240.0/20

dove PORT è la porta utilizzata dal protocollo.

Concedi ruoli per l'inoltro TCP IAP

Per controllare quali utenti e gruppi sono autorizzati a utilizzare l'inoltro TCP IAP e a quali istanze VM sono autorizzati a connettersi, concedi i ruoli IAM (Identity and Access Management) appropriati per il progetto.

Se utilizzi OS Login (consigliato), consulta la sezione Configurazione dei ruoli OS Login sugli account utente.

La tabella seguente mostra i ruoli predefiniti che devi concedere agli amministratori attendibili per l'inoltro TCP e le attività correlate:

Attività Ruoli Ulteriori informazioni
Inoltro TCP Utente del tunnel con protezione IAP (roles/iap.tunnelResourceAccessor) Consulta Concedere l'accesso a tutte le istanze VM di un progetto o Concedere l'accesso a una VM specifica.
Accesso SSH Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1)
Utilizzare un account di servizio Utente Service Account (roles/iam.serviceAccountUser) Vedi Il ruolo serviceAccountUser.

Se vuoi creare ruoli personalizzati con solo le autorizzazioni specifiche necessarie per questa attività, consulta Dettagli delle autorizzazioni.

Puoi concedere a un utente o a un gruppo l'accesso a tutte le istanze VM di un progetto o a una VM specifica, a seconda di come concedi i ruoli richiesti.

I tag non sono supportati

La concessione dell'autorizzazione tramite tag per l'inoltro TCP di IAP non è attualmente supportata.

Concedi l'accesso a tutte le istanze VM di un progetto

Puoi consentire a un utente o a un gruppo l'accesso a tutte le istanze VM di un progetto concedendo i ruoli IAM richiesti a livello di progetto:

Console

  1. Apri la pagina IAM e amministrazione nella console Google Cloud .

    Apri la pagina IAM e amministrazione

    I passaggi rimanenti vengono visualizzati nella console Google Cloud .

  2. Nella pagina IAM e amministrazione, fai clic su Aggiungi e configura quanto segue:
    • Nuove entità: specifica l'utente o il gruppo a cui concedere l'accesso.
    • Seleziona un ruolo: seleziona Cloud IAP > Utente del tunnel con protezione IAP.
  3. Facoltativamente, fai clic su Aggiungi condizione e configura una condizione:
    • Titolo: inserisci un nome per la condizione.
    • Espressione: inserisci una condizione che un utente deve soddisfare per ottenere le autorizzazioni nel ruolo Utente del tunnel con protezione IAP.

    Ad esempio, la seguente espressione CEL concede l'accesso solo alla porta 22:

    destination.port == 22
  4. Fai clic su Aggiungi un altro ruolo e configura quanto segue:
    • Seleziona un ruolo Seleziona Compute Engine > Compute Instance Admin (v1).
  5. Fai clic su Salva.

gcloud

Concedi i due ruoli all'utente eseguendo questi comandi:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=user:EMAIL \
    --role=roles/iap.tunnelResourceAccessor
gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=user:EMAIL \
    --role=roles/compute.instanceAdmin.v1

Sostituisci quanto segue:

  • PROJECT_ID: ID del progetto
  • EMAIL: l'indirizzo email dell'utente a cui vuoi concedere l'accesso, ad esempio user@example.com.

Concedi l'accesso a una VM specifica

Per concedere a un utente o a un gruppo l'accesso a una VM specifica, concedi il ruolo roles/iap.tunnelResourceAccessor su quella VM. Gli altri ruoli devono essere concessi nel progetto.

Console

  1. Apri la pagina di amministrazione di IAP e seleziona la scheda Risorse SSH e TCP.

    Apri la pagina di amministrazione di IAP

    I passaggi rimanenti vengono visualizzati nella console Google Cloud .

  2. Nella scheda Risorse SSH e TCP della pagina di amministrazione di IAP, seleziona le istanze VM da configurare.
  3. Se il riquadro informazioni non è visibile, fai clic su Mostra riquadro informazioni.
  4. Fai clic su Aggiungi entità e configura quanto segue:

    • Nuove entità: specifica l'utente o il gruppo a cui concedere l'accesso.
    • Seleziona un ruolo: seleziona Cloud IAP > Utente del tunnel con protezione IAP.
  5. Facoltativamente, fai clic su Aggiungi condizione e configura una condizione:

    • Titolo: inserisci un nome per la condizione.
    • Espressione: inserisci una condizione che un utente deve soddisfare per ottenere le autorizzazioni nel ruolo Utente del tunnel con protezione IAP.

    Ad esempio, la seguente espressione CEL concede l'accesso solo alla porta 22: