Revocare l'accesso a un progetto Google Cloud

Questo documento descrive best practice, scenari e procedure per revocare l'accesso di un utente a un progetto Google Cloud. Utilizza questo documento per definire criteri e procedure che ti consentano di revocare l'accesso in modo coerente e tempestivo.

Un momento critico nella vita delle tue risorse Google Cloud è il momento in cui devi rimuovere l'accesso di un utente. Quando un dipendente lascia l'azienda, il coinvolgimento con un appaltatore termina o un collaboratore passa ad altri progetti, ci sono alcune cose da fare per revocare completamente l'accesso non necessario alle risorse.

Alcune di queste procedure sono facoltative. Dovresti determinare quali di questi passaggi eseguire a seconda delle tue esigenze di sicurezza, dei prodotti in uso e della fiducia nella persona di cui viene revocato l'accesso.

Best practice per la configurazione del progetto

Puoi migliorare la capacità del tuo progetto di revocare in modo efficiente l'accesso degli utenti effettuando scelte ponderate al momento della configurazione.

Federa gli account utente con il tuo provider di identità esistente

Quando fedeli gli account utente con il tuo provider di identità esistente, puoi sincronizzare lo stato degli account utente. Quando rimuovi un account utente dal provider di identità, viene eliminata anche l'identità utente in Cloud Identity e l'utente non può più accedere alle risorse di Google Cloud tramite i criteri di autorizzazione.

Per maggiori informazioni, consulta le best practice per la federazione di Google Cloud con un provider di identità esterno.

Per ulteriori best practice relative all'identità, consulta le best practice per la pianificazione di account e organizzazioni.

Utilizza Google Gruppi per gestire l'accesso alle risorse del progetto

Google Gruppi consente di organizzare gli utenti in base all'appartenenza al team o ad altri criteri. Dopo aver creato i gruppi Google, puoi assegnare l'accesso a progetti e risorse Google Cloud in base ai gruppi. In seguito, quando un utente passa a un altro team, puoi semplicemente spostare l'account utente in un altro gruppo e rimuovere automaticamente l'accesso concesso dai criteri di autorizzazione al gruppo precedente.

Per maggiori informazioni, vedi Gestire i gruppi nella console Google Cloud e Creare un gruppo nell'organizzazione.

Usa OS Login

Utilizza OS Login anziché chiavi SSH basate su metadati per collegare gli account Linux degli utenti alle loro identità Google. Quando rimuovi un account utente, le chiavi vengono revocate automaticamente.

Per le istruzioni, vedi Configurare OS Login.

Limitare l'accesso da account utente esterni

Non concedere a utenti esterni l'accesso al progetto perché non puoi controllare il ciclo di vita di questi account utente. Per limitare gli utenti esterni, utilizza il vincolo dell'elenco iam.allowedPolicyMemberDomains.

Per le istruzioni, vedi Limitazione delle identità per dominio.

Usa il proxy di autenticazione Cloud SQL per la connessione a Cloud SQL

Il proxy di autenticazione Cloud SQL consente di connettere i carichi di lavoro a Cloud SQL in base alle autorizzazioni IAM, anziché al controllo dell'accesso basato su IP come le reti autorizzate. Il proxy di autenticazione Cloud SQL convalida le connessioni utilizzando le credenziali di un account utente o di servizio e implementando la connessione in un livello SSL/TLS autorizzato per l'istanza Cloud SQL. È un metodo di connessione più sicuro rispetto all'utilizzo di certificati SSL/TLS autogestiti o di reti autorizzate. Ti consente inoltre di rimuovere l'accesso a Cloud SQL quando revochi le autorizzazioni all'account utente o elimini completamente l'account utente.

Limita l'accesso alle VM

Le macchine virtuali, come quelle utilizzate da Compute Engine e Google Kubernetes Engine, sono grandi superfici di attacco. Se qualcuno ha avuto accesso a una VM, in particolare l'accesso root o di amministratore, è estremamente difficile garantire di non aver modificato la VM e lasciato una backdoor per concedersi l'accesso futuro. Limita l'accesso alle VM a chi ne ha una chiara e specifica esigenza.

Per impostazione predefinita, gli editor e i proprietari del progetto hanno accesso amministrativo a tutte le VM nel progetto. Rimuovi questo accesso predefinito e utilizza il principio del privilegio minimo per l'accesso alle VM.

Prima di concedere l'accesso alla VM, pensa a quali attività richiedono l'accesso e determina se ci sono altri modi per soddisfare queste esigenze, se possibile. Ad esempio, anziché concedere a ogni sviluppatore l'accesso alle VM per eseguire il deployment del codice, valuta la possibilità di utilizzare strumenti come Chef, Puppet e Salt per gestire i tuoi deployment.

Preparati per la rotazione delle credenziali

Progetta i progetti e le risorse in modo da consentire una rotazione facile e senza interruzioni delle credenziali a livello di progetto. Si tratta di secret associati al progetto stesso, ad esempio chiavi dell'account di servizio, client secret OAuth e secret specifici dell'applicazione, come le password root del database. Per saperne di più, consulta Gestire le credenziali Google Cloud compromesse.

Limita chiavi API

Quando crei e gestisci le chiavi API, limita l'insieme di siti web, indirizzi IP e app che possono utilizzarli. Un account utente con ruoli come Visualizzatore o Amministratore chiavi API può visualizzare le chiavi API del progetto, pertanto tutte le chiavi senza restrizioni devono essere ruotate o eliminate per revocare l'accesso alla fatturazione. Per maggiori informazioni, consulta Proteggere una chiave API.

Altre best practice

Oltre alle best practice descritte in questo documento, consulta le seguenti best practice:

Scenari per la revoca dell'accesso ai progetti Google Cloud

Se hai implementato le best practice elencate in Best practice per la configurazione del progetto, la seguente tabella riassume come è possibile revocare l'accesso.

Scenario Revoca delle opzioni di accesso
Un dipendente lascia l'azienda. Se configuri la federazione tra Cloud Identity o Google Workspace con provisioning automatico degli utenti, la revoca dell'accesso può avvenire in modo automatico.

Se non hai seguito le best practice e hai concesso a identità utente esterne l'accesso alle tue risorse, devi rimuovere manualmente le identità dai tuoi progetti e dalle tue risorse.
Un dipendente cambia la sua funzione lavorativa. Rimuovi il dipendente dal gruppo del team.
L'impegno contrattuale termina. Se configuri la federazione tra Cloud Identity o Google Workspace con provisioning automatico degli utenti, la revoca dell'accesso può avvenire in modo automatico.

Se non hai seguito le best practice e hai concesso a identità utente esterne l'accesso alle tue risorse, devi rimuovere manualmente le identità dai tuoi progetti e dalle tue risorse.
Un account è stato compromesso. Per le istruzioni, consulta Gestione delle credenziali Google Cloud compromesse.

Revoca l'accesso

Se hai fatto buone scelte durante la configurazione del progetto, i seguenti processi saranno un modo efficace per revocare l'accesso di una persona.

Per determinare a quali risorse ha accesso una persona, utilizza Policy Analyzer. Per istruzioni, consulta Analizzare i criteri IAM.

Eliminare l'account utente dal provider di identità

Se l'utente lascia l'organizzazione e hai federato Cloud Identity o Google Workspace con il tuo provider di identità, con il provisioning automatico degli utenti la revoca dell'accesso può avvenire in modo automatico.

Spostare l'account in un altro gruppo

Se l'utente sta cambiando ruolo, rimuovi l'account utente dai suoi gruppi Google attuali. Se hai federato Cloud Identity o Google Workspace con il tuo provider di identità per gestire l'iscrizione ai gruppi, la revoca dell'accesso può avvenire automaticamente.

Rimuovere l'account utente dall'appartenenza al progetto

  1. Nella console Google Cloud, vai alla pagina Autorizzazioni IAM.

    Autorizzazioni IAM

  2. Seleziona il progetto da cui vuoi rimuovere un account utente.

  3. Fai clic sulla casella di controllo accanto alla riga contenente l'account utente che vuoi rimuovere dall'elenco dei membri, quindi fai clic su Rimuovi.

Ruota le credenziali del progetto

Ruota le chiavi degli account di servizio

Se utilizzi chiavi dell'account di servizio per l'autenticazione su un account di servizio, devi ruotare le chiavi. Inoltre, valuta se la persona potrebbe avere accesso alle chiavi dell'account di servizio al di fuori degli strumenti di Google Cloud, come il repository di codice sorgente o le configurazioni delle applicazioni.

  1. Nella console Google Cloud, vai alla pagina Credenziali API.

    Credenziali API

  2. Fai clic sul nome dell'account di servizio che vuoi modificare.

  3. Nella scheda Chiave, fai clic su Aggiungi chiave.

  4. Fai clic su Crea nuova chiave.

  5. Scegli il Tipo di chiave che vuoi creare. Nella maggior parte dei casi, JSON è consigliato, ma P12 è disponibile per la compatibilità con le versioni precedenti del codice che dipende da questo codice.

  6. Fai clic su Crea. Tramite il browser verrà scaricato automaticamente un file contenente la nuova chiave. Eseguire il deployment di questa chiave in tutte le applicazioni che ne hanno bisogno.

  7. Dopo aver verificato che la nuova chiave funzioni come previsto, torna alla pagina delle credenziali ed elimina la vecchia chiave associata all'account di servizio.

Ruotare i secret dell'ID client OAuth

I secret degli ID client OAuth non forniscono alcun accesso diretto al progetto. Tuttavia, se un utente malintenzionato conosce il secret dell'ID client OAuth, può eseguire lo spoofing della tua applicazione e richiedere l'accesso agli Account Google degli utenti da un'applicazione dannosa.

Potrebbe essere necessario ruotare i secret degli ID client OAuth se la persona il cui accesso viene revocato ha mai avuto accesso al secret, ad esempio nel repository del codice sorgente, nelle configurazioni dell'applicazione o tramite i ruoli IAM.

  1. Nella console Google Cloud, vai alla pagina Credenziali API.

    Credenziali API

  2. Fai clic sul nome dell'ID client OAuth 2.0 che vuoi modificare.

  3. Nella pagina ID client, fai clic su Reimposta secret.

  4. Fai clic su Reimposta nella finestra di dialogo di conferma per revocare immediatamente il vecchio secret e impostarne uno nuovo. Tieni presente che tutti gli utenti attivi dovranno eseguire nuovamente l'autenticazione alla richiesta successiva.

  5. Esegui il deployment del nuovo secret in tutte le applicazioni che ne hanno bisogno.

Ruota le chiavi API

Le chiavi API non consentono di accedere al progetto o ai dati degli utenti, ma consentono di controllare chi fattura Google per le richieste API. Un account utente con ruoli come Visualizzatore o Amministratore chiavi API può visualizzare le chiavi API del progetto. Se hai chiavi senza restrizioni, devi eliminarle o rigenerarle quando revochi l'accesso di un utente al progetto.

  1. Nella console Google Cloud, vai alla pagina Credenziali API.

    Credenziali API

  2. Fai clic sul nome della chiave API che vuoi modificare.

  3. Fai clic su Rigenera chiave.

  4. Viene visualizzata una finestra di dialogo con la chiave appena creata. Esegui il deployment di questa chiave in qualsiasi applicazione utilizzando la chiave che vuoi sostituire.

  5. Dopo aver verificato che le applicazioni funzionino come previsto con la nuova chiave, torna alla pagina delle credenziali ed elimina la vecchia chiave senza restrizioni.

Revoca accesso alle VM

Se la persona di cui stai revocando l'accesso non dispone dell'accesso ad alcuna VM del tuo progetto, puoi saltare questo passaggio.

  1. Rimuovi tutte le chiavi SSH a livello di progetto a cui l'utente aveva accesso.

  2. Su ogni VM a cui l'utente aveva accesso tramite SSH, rimuovi le chiavi a livello di istanza.

  3. Rimuovere l'account dell'utente da tutte le VM a cui aveva accesso tramite accesso.

  4. Controlla se ci sono applicazioni sospette che la persona potrebbe aver installato per fornire accesso backdoor alla VM. Se non hai la certezza della sicurezza di qualsiasi codice in esecuzione sulla VM, ricrealo ed esegui nuovamente il deployment delle applicazioni di cui hai bisogno dall'origine.

  5. Verifica che le impostazioni del firewall delle VM non siano state modificate rispetto alla configurazione pianificata o prevista.

  6. Se crei nuove VM da immagini di base personalizzate, verifica che queste non siano state modificate in modo da compromettere la sicurezza delle nuove VM.

Revoca accesso ai database Cloud SQL

Se il progetto non utilizza risorse Cloud SQL, puoi saltare questo passaggio.

  1. Nella console Google Cloud, vai alla pagina Istanze SQL.

    Istanze SQL

  2. Fai clic sull'ID istanza del database per cui vuoi revocare l'accesso.

  3. Nel menu a sinistra, fai clic su Connessioni.

  4. Conferma che l'elenco degli indirizzi IP in Reti autorizzate e l'elenco delle app nell'autorizzazione App Engine corrisponda a quanto previsto. Se la persona di cui stai tentando di revocare l'accesso ha accesso alle reti o alle applicazioni elencate qui, potrà accedere a questo database.

  5. Nel menu a sinistra, fai clic su Utenti.

  6. Eliminare o cambiare la password di tutti gli account utente a cui la persona aveva accesso. Assicurati di aggiornare tutte le applicazioni che dipendono da questi account utente.

Esegui di nuovo il deployment di App Engine

Per impostazione predefinita, le app App Engine hanno accesso a un account di servizio che è un editor del progetto associato. I gestori di richieste App Engine possono, ad esempio, creare nuove VM e leggere o modificare dati in Cloud Storage. Un utente con la capacità di eseguire il deployment del codice in App Engine potrebbe utilizzare questo account di servizio per aprire una backdoor nel progetto. Se sei preoccupato per l'integrità del codice delle app di cui hai eseguito il deployment, ti consigliamo di eseguire nuovamente il deployment delle app (inclusi eventuali moduli) con un'immagine valida del sistema di controllo della versione.

Verifica che le autorizzazioni siano state rimosse

In Google Cloud CLI, esegui il metodo search-all-iam-policies per trovare eventuali risorse a cui un determinato account utente potrebbe avere accesso. Ad esempio, per determinare se un utente ha accesso alle tue risorse, esegui:

gcloud asset search-all-iam-policies --scope='organizations/ORGANIZATION_ID --query='policy:IDENTITY'

Dove:

  • ORGANIZATION_ID è il numero della tua organizzazione.
  • IDENTITY è l'identità dell'utente, ad esempio un indirizzo email.

Passaggi successivi