Questa pagina descrive come attivare l'accesso basato su certificati (CBA) per le tue VM Google Cloud. Puoi utilizzare CBA per proteggere l'accesso da dispositivi attendibili alle VM Google Cloud.
Panoramica
CBA per le VM utilizza la funzionalità di accesso sensibile al contesto di Google Cloud per proteggere mediante TLS reciprocamente (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 quando determinare l'accesso alle applicazioni web.
- Identity-Aware Proxy (IAP): IAP TCP di inoltro consente di stabilire un tunnel attraverso il quale 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 di Chrome Enterprise: fornisce l'autenticazione reciproca (mTLS) tra gli utenti e VM quando utilizzi il browser Chrome.
- Google Cloud CLI: fornisce l'autenticazione reciproca (mTLS) tra utenti e VM quando utilizzi gcloud CLI.
Prima di iniziare
Assicurati di aver creato livelli di accesso CBA per il tuo progetto Google Cloud.
Concedi i ruoli per accedere alle VM tramite l'inoltro TCP 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 |
Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1 )
|
|
OS Login (consigliato) | Vari | Configurare i ruoli di accesso al sistema operativo negli account utente |
Utilizzare un account di servizio | Utente account di servizio (roles/iam.serviceAccountUser ) |
Il ruolo serviceAccountUser |
Per ulteriori informazioni sulla concessione dei ruoli per l'inoltro TCP IAP, consulta Concessione di ruoli per l'inoltro TCP IAP.
Configurare l'accesso basato su certificati 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 una VM l'accesso basato su certificato a un utente o a un gruppo di utenti, devi concedere
Ruolo roles/iap.tunnelResourceAccessor
nell'istanza VM. Gli altri ruoli
possono essere concessi sul progetto.
Console
Apri la pagina Amministratore IAP e seleziona le opzioni SSH e TCP Risorse.
Seleziona le istanze VM che vuoi configurare. Fai clic su Mostra informazioni. se il riquadro informativo non è visibile.
Fai clic su Aggiungi entità e configura quanto segue:
- Nuove entità: specifica l'utente o il gruppo di utenti che 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 Tipo di condizione, quindi seleziona l'accesso basato su certificati livello creato in precedenza.
Fai clic su Salva.
API
Per configurare l'accesso basato su certificato a una VM, modifica il file policy.json
della tua applicazione.
Vedi Gestione dell'accesso alle risorse protette da IAP per saperne di più sull'utilizzo dell'API IAM per gestire i criteri di accesso.
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
Ottieni il criterio IAM per l'istanza Compute Engine utilizzando il metodo
getIamPolicy
. Il bit di dati vuoto alla fine trasforma il curl inPOST
anziché inGET
.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 certificato ai tuoi principali modificando il file JSON dei criteri IAM.Di seguito è riportato un esempio di file
policy.json
che assegna il ruoloiap.tunnelResourceAccessor
a un gruppo di amministratori di istanze VM, concedendo loro l'accesso basato su certificato alle risorse dei 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 criterio, 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}
Accedi 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 cui è stato eseguito il provisioning per la verifica degli endpoint: Utilizza questo metodo se non disponi di un'infrastruttura PKI. La verifica degli endpoint esegue il provisioning e la registrazione automatica dei certificati autofirmati con Google Cloud per ogni dispositivo.
Utilizza 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 VM Google Cloud utilizzando il tunneling IAP.
Utilizzare i certificati client sulla CLI gcloud per accedere alle VM
Configura gcloud CLI utilizzando uno dei seguenti metodi.
Accedi alle VM Google Cloud utilizzando il tunneling IAP.