Questa pagina descrive come attivare l'accesso basato su certificati (CBA) per le tue VM Google Cloud . Puoi utilizzare l'autenticazione basata su certificati per proteggere l'accesso da dispositivi attendibili alle VM Google Cloud .
Panoramica
L'autenticazione basata su certificati per le VM utilizza la funzionalità di accesso sensibile al contesto per proteggere l'accesso tramite TLS reciproca (mTLS). Google Cloud Di seguito sono riportati i principali componenti con cui lavori per attivare e utilizzare l'autenticazione basata su certificati 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 di 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.
- Criterio Chrome Enterprise: fornisce l'autenticazione reciproca (mTLS) tra utenti e VM quando si utilizza il browser Chrome.
- Google Cloud CLI: fornisce l'autenticazione reciproca (mTLS) tra utenti e VM quando si utilizza gcloud CLI.
Prima di iniziare
Assicurati di aver creato livelli di accesso CBA per il tuo progetto Google Cloud .
Concedi ruoli per l'accesso alle VM tramite l'inoltro TCP IAP
Devi concedere i ruoli IAM (Identity and Access Management) appropriati a un progetto per consentire a utenti o gruppi di utenti di utilizzare l'inoltro TCP di IAP per accedere alle VM.
La seguente tabella 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 )
|
Concedi l'accesso a tutte le istanze VM di un progetto o Concedi l'accesso a una VM specifica |
Accesso SSH |
Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1 )
|
|
OS Login (consigliato) | Varie | Configurazione dei ruoli OS Login sugli account utente |
Utilizzare un account di servizio | Service Account User (roles/iam.serviceAccountUser ) |
Il ruolo serviceAccountUser |
Per ulteriori informazioni sulla concessione dei ruoli per l'inoltro TCP di IAP, consulta Concedere ruoli per l'inoltro TCP di IAP.
Configura l'accesso basato su certificato a una VM
Anche se IAP-TCP ti consente di concedere l'accesso a tutte le istanze VM di un progetto, devi configurare l'accesso basato su certificati per ogni singola istanza VM.
Per concedere a un utente o a un gruppo di utenti l'accesso basato su certificati a una VM, concedi il ruolo roles/iap.tunnelResourceAccessor
all'istanza VM. Gli altri ruoli
possono essere concessi nel progetto.
Console
Apri la pagina di amministrazione di IAP e seleziona la scheda Risorse SSH e TCP.
Seleziona le istanze VM che vuoi configurare. Se il riquadro informazioni non è visibile, fai clic su Mostra riquadro informazioni.
Fai clic su Aggiungi entità e configura quanto segue:
- Nuove entità: 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.
Fai clic su Aggiungi condizione IAM e configura una condizione:
- Titolo: inserisci un nome per la condizione.
- Generatore di condizioni: seleziona Livello di accesso dal menu a discesa Tipo di condizione, quindi seleziona il livello di accesso basato sul certificato creato in precedenza.
Fai clic su Salva.
API
Per configurare l'accesso basato su certificati a una VM, modifica il file
policy.json
della tua applicazione.
Per saperne di più sull'utilizzo dell'API IAM per gestire i criteri di accesso, consulta la pagina Gestione dell'accesso alle risorse protette da IAP.
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
Recupera la policy IAM per l'istanza Compute Engine utilizzando il metodo
getIamPolicy
. Il bit di dati vuoto alla fine trasforma la richiesta curl inPOST
anziché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 ''
Concedi il ruolo
iap.tunnelResourceAccessor
e l'accesso basato su certificati alle tue entità modificando il file JSON della policy IAM.Di seguito è riportato un esempio di file
policy.json
che concede il ruoloiap.tunnelResourceAccessor
a un gruppo di amministratori di istanze VM, consentendo loro l'accesso basato su certificati alle risorse tunnel protette 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 della policy, chiama il metodo
accessPolicies.list
.GET https://accesscontextmanager.googleapis.com/v1/accessPolicies
Imposta il nuovo file
policy.json
utilizzando il metodosetIamPolicy
.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.
- Utilizza i certificati aziendali: utilizza questo metodo se disponi di un'infrastruttura PKI.
- Utilizza i certificati di verifica endpoint di cui è stato eseguito il provisioning: utilizza questo metodo se non disponi di un'infrastruttura PKI. Endpoint Verification esegue automaticamente il provisioning e la registrazione di certificati autofirmati con Google Cloud per ogni dispositivo.
Utilizzare i certificati client sul browser Chrome per accedere alle VM
- Configura il browser Chrome utilizzando una delle seguenti opzioni.
- Nel browser Chrome, inserisci il seguente dominio per accedere alla console
Google Cloud :
console-secure.cloud.google.com
. - Accedi alle Google Cloud VM utilizzando il tunneling IAP.
Utilizzare i certificati client su gcloud CLI per accedere alle VM
Configura gcloud CLI utilizzando uno dei seguenti metodi.
Accedi alle Google Cloud VM utilizzando il tunneling IAP.