Attivare l'accesso basato su certificato per le VM

In questa pagina viene descritto come attivare l'accesso basato su certificato (CBA) per le tue VM Google Cloud . Puoi utilizzare la CBA per proteggere l'accesso da dispositivi attendibili alle VM. Google Cloud

Panoramica

CBA per le VM utilizza la Google Cloud funzionalità di accesso sensibile al contesto per proteggere l'accesso utilizzando TLS reciproco (mTLS). Di seguito sono riportati i componenti principali con cui lavori per attivare e utilizzare la CBA per le VM:

  • Gestore contesto accesso: consente di creare livelli di accesso che richiedono certificati per determinare l'accesso alle applicazioni web.
  • Identity-Aware Proxy (IAP): l'inoltro TCP IAP consente di stabilire un tunnel criptato su cui puoi inoltrare SSH, RDP e altro traffico alle istanze VM. Inoltre, un criterio IAP ti offre un controllo granulare sugli utenti autorizzati a stabilire tunnel a istanze VM specifiche e sulle condizioni di accesso che gli utenti devono soddisfare per utilizzare questi tunnel.
  • Criteri di Chrome Enterprise: fornisce l'autenticazione reciproca (mTLS) tra gli utenti e le VM quando si utilizza il browser Chrome.
  • Interfaccia a riga di comando Google Cloud: fornisce l'autenticazione reciproca (mTLS) tra utenti e VM quando si utilizza l'interfaccia a riga di comando gcloud.

Prima di iniziare

Assicurati di aver creato i livelli di accesso CBA per il tuo Google Cloud progetto.

Concedi i ruoli per accedere alle VM tramite l'inoltro TCP di IAP

Devi concedere i ruoli IAM (Identity and Access Management) appropriati a un progetto per consentire agli utenti o ai gruppi di utenti di utilizzare il forwarding TCP IAP per accedere alle VM.

La tabella seguente mostra i ruoli predefiniti che devi concedere agli amministratori fidati per il reindirizzamento TCP e le attività correlate.

Attività Ruoli Ulteriori informazioni
Inoltro TCP Utente del tunnel con protezione IAP (roles/iap.tunnelResourceAccessor) Concedi l'accesso a tutte le istanze VM di un progetto oppure Concedi l'accesso a una VM specifica
Accesso SSH Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1)
OS Login (consigliato) Vari Configurare i ruoli di accesso al sistema operativo negli account utente
Utilizza un account di servizio Utente dell'account di servizio (roles/iam.serviceAccountUser) Il ruolo serviceAccountUser

Per ulteriori informazioni sulla concessione dei ruoli per l'inoltro TCP IAP, consulta Concedere i ruoli per l'inoltro TCP IAP.

Configurare l'accesso basato su certificato a una VM

Sebbene IAP-TCP ti consenta di concedere l'accesso a tutte le istanze VM di un progetto, devi configurare l'accesso basato su certificato per ogni singola istanza VM.

Per concedere a un utente o a un gruppo di utenti l'accesso basato su certificato a una VM, concedi il ruolo roles/iap.tunnelResourceAccessor all'istanza VM. Gli altri ruoli possono essere concessi nel progetto.

Console

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

    Vai alla pagina IAP

  2. Seleziona le istanze VM che vuoi configurare. Se il riquadro informazioni non è visibile, fai clic su Mostra riquadro informazioni.

  3. Fai clic su Aggiungi entità e configura quanto segue:

    • Nuovi principali: specifica l'utente o il gruppo di utenti a cui vuoi concedere l'accesso.
    • Seleziona un ruolo: seleziona Cloud IAP > Utente del tunnel con protezione IAP.
  4. Fai clic su Aggiungi condizione IAM e configura una condizione:

    • Titolo: inserisci un nome per la condizione.
    • Generatore di condizioni: seleziona Livello di accesso dall'elenco a discesa Tipo di condizione e poi seleziona il livello di accesso basato su certificato creato in precedenza.
  5. Fai clic su Salva.

API

Per configurare l'accesso basato su certificato a una VM, modifica il file policy.json della tua applicazione.

Per ulteriori informazioni sull'utilizzo dell'API IAM per gestire i criteri di accesso, consulta Gestire l'accesso alle risorse protette da IAP.

  1. Esporta le seguenti variabili.

    export IAP_BASE_URL=https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_tunnel
    # Replace POLICY_FILE.JSON with the name of JSON file to use for setIamPolicy
    export JSON_NEW_POLICY=POLICY_FILE.JSON
    
  2. Recupera il criterio IAM per l'istanza Compute Engine utilizzando il metodo getIamPolicy. Il bit di dati vuoto alla fine trasforma la richiesta curl in POST anziché in GET.

    curl -i -H "Authorization: Bearer $(gcloud auth print-access-token)" \
         ${IAP_BASE_URL}/zones/ZONE_NAME/instances/INSTANCE_ID or INSTANCE_NAME:getIamPolicy \
         -d ''
    
  3. Concedi il ruolo iap.tunnelResourceAccessor e l'accesso basato su certificato ai tuoi principali modificando il file JSON dei criteri IAM.

    Di seguito è riportato un esempio di file policy.json che assegna il ruolo iap.tunnelResourceAccessor a un gruppo di amministratori di istanze VM, concedendo loro l'accesso basato su certificato alle risorse dei tunnel protetti da IAP.

    Tieni presente che se un'entità ha il ruolo Proprietario, ha l'autorizzazione per utilizzare IAP per l'inoltro TCP.

    {
      "policy": {
        "bindings": [
          {
            "role": "roles/iap.tunnelResourceAccessor",
            "members": ["group:instance-admins@example.com"],
            "condition": {
              "expression": "\"accessPolicies/POLICY_NAME/accessLevels/CERTIFICATE_BASED_ACCESS_LEVEL_NAME\" in request.auth.access_levels,
              "title": "CERTIFICATE_BASED_CONDITION_NAME"
            }
          }
        ]
      }
    }
    

    Per trovare un nome criterio, chiama il metodo accessPolicies.list.

    GET https://accesscontextmanager.googleapis.com/v1/accessPolicies
    
  4. Imposta il nuovo file policy.json utilizzando il metodo setIamPolicy.

    curl -i -H "Content-Type:application/json" \
              -H "Authorization: Bearer $(gcloud auth print-access-token)" \
              ${IAP_BASE_URL}/zones/ZONE_NAME/instances/INSTANCE_ID or INSTANCE_NAME:setIamPolicy \
              -d @${JSON_NEW_POLICY}
    

Accedere alle VM utilizzando i certificati client

Per accedere alle VM utilizzando i certificati client, utilizza uno dei seguenti metodi.

Utilizzare i certificati client nel browser Chrome per accedere alle VM

  1. Configura il browser Chrome utilizzando una delle seguenti opzioni.
  2. Nel browser Chrome, inserisci il seguente dominio per accedere alla console Google Cloud: console-secure.cloud.google.com.
  3. Accedi alle Google Cloud VM utilizzando il tunneling IAP.

Utilizzare i certificati client sulla CLI gcloud per accedere alle VM

  1. Configura gcloud CLI utilizzando uno dei seguenti metodi.

  2. Accedi alle Google Cloud VM utilizzando il tunneling IAP.