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 creare criteri e procedure che ti consentano di revocare l'accesso in modo coerente e tempestivo.

Un momento critico nella vita delle risorse Google Cloud è quando devi rimuovere l'accesso di una persona. Quando un dipendente lascia la tua azienda, il tuo contratto con un appaltatore termina o un collaboratore passa ad altri progetti, ci sono alcune cose che devi fare per revocare completamente l'accesso non necessario alle tue risorse.

Alcune di queste procedure sono facoltative. Devi stabilire quale di questi passaggi eseguire in base alle tue esigenze di sicurezza, ai prodotti in uso e alla 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 facendo scelte ponderate al momento della configurazione.

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

Quando esegui la federazione degli account utente con il tuo provider di identità esistente, puoi sincronizzare lo stato dei tuoi account utente. Quando rimuovi un account utente dal tuo provider di identità, viene eliminata anche l'identità utente in Cloud Identity e l'utente non ha più accesso alle risorse Google Cloud tramite i tuoi criteri di autorizzazione.

Per ulteriori informazioni, consulta Best practice per la federazione di Google Cloud con un provider di identità esterno.

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

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

Google Gruppi ti consente di organizzare gli utenti in base alla loro appartenenza al team o ad altri criteri. Dopo aver creato i gruppi Google, puoi assegnare l'accesso ai progetti e alle risorse Google Cloud in base ai gruppi. Quando un utente passa a un altro team, puoi semplicemente spostare il suo account in un altro gruppo, rimuovendo automaticamente l'accesso concesso dai criteri di autorizzazione al gruppo precedente.

Per saperne di più, consulta Gestire i gruppi nella console Google Cloud e Creare un gruppo nell'organizzazione.

Utilizzare OS Login

Utilizza l'accesso al sistema operativo anziché le 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 l'accesso al sistema operativo.

Limitare l'accesso da account utente esterni

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

Per le istruzioni, vedi Limitare le identità per dominio.

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

Il proxy di autenticazione Cloud SQL ti consente di collegare 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 inserendo la connessione in un livello SSL/TLS autorizzato per l'istanza Cloud SQL. Si tratta di un metodo di connessione più sicuro rispetto all'utilizzo di certificati SSL/TLS autogestiti o reti autorizzate. Ti consente inoltre di rimuovere l'accesso a Cloud SQL quando revochi le autorizzazioni all'account utente o elimini l'account utente completamente.

Limitare l'accesso alle VM

Le macchine virtuali, come quelle utilizzate da Compute Engine e Google Kubernetes Engine, rappresentano potenziali aree di attacco di grandi dimensioni. Se qualcuno ha mai avuto accesso a una VM, soprattutto con accesso come utente root o amministratore, è estremamente difficile garantire che non abbia modificato la VM e lasciato una backdoor per consentirsi un accesso futuro. Limita l'accesso alle VM alle persone che ne hanno un'esigenza chiara e specifica.

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

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

Prepararsi per la rotazione delle credenziali

Progetta i progetti e le risorse in modo da consentire la rotazione facile e senza interruzioni delle credenziali a livello di progetto. Si tratta di secret legati al progetto stesso, come chiavi dell'account di servizio, secret client OAuth e secret specifici dell'applicazione, come le password di root del database. Per ulteriori informazioni, consulta la pagina Gestire le credenziali Google Cloud compromesse.

Limitare le chiavi API

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

Best practice aggiuntive

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 tabella seguente riassume come puoi revocare l'accesso.

Scenario Revocare le opzioni di accesso
Un dipendente lascia la tua azienda. Se configuri la federazione tra Cloud Identity o Google Workspace con il provisioning automatico degli utenti, la revoca dell'accesso può avvenire automaticamente.

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

Se non hai seguito le best practice e hai concesso alle 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 Gestire le credenziali Google Cloud compromesse.

Revoca l'accesso

Se hai fatto delle buone scelte durante la configurazione del progetto, le procedure riportate di seguito costituiranno un modo efficace per revocare l'accesso di una persona.

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

Eliminare l'account utente dal provider di identità

Se l'utente lascia la tua 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 automaticamente.

Spostare l'account in un altro gruppo

Se l'utente sta cambiando ruolo, rimuovi il suo account dai gruppi Google attuali. Se hai federato Cloud Identity o Google Workspace con il tuo provider di identità per gestire l'appartenenza al gruppo, 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

Ruotare le chiavi dell'account di servizio

Se utilizzi le chiavi dell'account di servizio per autenticarti in un account di servizio, devi ruotarle. Inoltre, valuta se la persona potrebbe avere avuto accesso alle chiavi degli account di servizio al di fuori degli strumenti Google Cloud, ad esempio nel repository del codice sorgente o nelle configurazioni dell'applicazione.

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

    Credenziali API

  2. Fai clic sul nome del account di servizio da 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, è consigliato JSON, ma P12 è disponibile per la compatibilità con le versioni precedenti con il codice che dipende da questo formato.

  6. Fai clic su Crea. Un file contenente la nuova chiave verrà scaricato automaticamente tramite il browser. Esegui 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 e rimuovi la vecchia chiave associata al account di servizio.

Ruotare i client secret dell'ID client OAuth

I secret dell'ID client OAuth non forniscono alcun accesso diretto al tuo progetto. Tuttavia, se un malintenzionato conosce il client secret dell'ID OAuth, può rubare l'identità della tua applicazione e richiedere l'accesso agli Account Google dei tuoi utenti da un'applicazione dannosa.

Potresti dover ruotare i secret degli ID client OAuth se la persona di cui viene revocato l'accesso 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 da 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 segreto e impostarne uno nuovo. Tieni presente che tutti gli utenti attivi dovranno eseguire nuovamente l'autenticazione alla successiva richiesta.

  5. Esegui il deployment del nuovo secret in tutte le applicazioni che lo richiedono.

Ruotare le chiavi API

Le chiavi API non forniscono l'accesso al tuo progetto o ai dati dei tuoi utenti, ma controllano a chi Google fattura le richieste API. Un account utente con ruoli come Visualizzatore o Amministratore chiavi API può vedere le chiavi API del progetto. Se hai chiavi senza restrizioni, devi eliminarle o rigenerarle quando revochi l'accesso di un utente al tuo progetto.

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

    Credenziali API

  2. Fai clic sul nome della chiave API da 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 tutte le applicazioni che utilizzano 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.

Revocare l'accesso alle VM

Se la persona di cui stai revocando l'accesso non ha accesso in autenticazione a nessuna VM del tuo progetto, puoi saltare questo passaggio.

  1. Rimuovi tutte le chiavi SSH a livello di progetto a cui la persona aveva accesso.

  2. Su ogni VM in cui la persona aveva accesso SSH, rimuovi eventuali chiavi a livello di istanza.

  3. Rimuovi l'account della persona da tutte le VM a cui aveva accesso.

  4. Controlla se sono presenti applicazioni sospette che la persona potrebbe aver installato per fornire accesso backdoor alla VM. Se hai dubbi sulla sicurezza del codice in esecuzione sulla VM, ricréala e ridistribuisci le applicazioni di cui hai bisogno dal codice sorgente.

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

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

Revocare l'accesso ai database Cloud SQL

Se il tuo progetto non utilizza le 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 a cui vuoi revocare l'accesso.

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

  4. Verifica che l'elenco di indirizzi IP in Reti autorizzate e l'elenco di app in Autorizzazione App Engine corrispondano a quanto previsto. Se la persona di cui stai tentando di revocare l'accesso ha accesso alle reti o alle applicazioni elencate qui, può accedere a questo database.

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

  6. Elimina o modifica la password di tutti gli account dell'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 delle richieste di App Engine possono eseguire operazioni come creare nuove VM e leggere o modificare i dati in Cloud Storage. Chiunque abbia la possibilità di eseguire il deployment del codice in App Engine potrebbe utilizzare questo account di servizio per aprire una backdoor nel tuo progetto. Se temi per l'integrità del codice delle app di cui hai eseguito il deployment, ti consigliamo di eseguirne nuovamente il deployment (inclusi eventuali moduli) con un'immagine nota come valida del tuo sistema di controllo della versione.

Verificare che le autorizzazioni siano state rimosse

In Google Cloud CLI, esegui il metodo search-all-iam-policies per trovare le 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