Configura le best practice per la sicurezza

Questa pagina fornisce una panoramica delle best practice per la sicurezza consigliate per migliorare il livello di sicurezza e protezione dei dati in relazione alle tue Cloud Workstations. Questo elenco non è un elenco di controllo completo che garantisce le garanzie di sicurezza, né sostituisce le tue posture di sicurezza esistenti.

L'obiettivo è fornirti una guida alle best practice per la sicurezza rese possibili da Cloud Workstations. Se possibile, aggiungi questi suggerimenti al tuo portafoglio di soluzioni di sicurezza, nell'ambito delle iniziative volte a creare un approccio alla sicurezza a più livelli. L'approccio alla sicurezza a più livelli è uno dei principi di sicurezza fondamentali per l'esecuzione di servizi sicuri e conformi su Google Cloud.

Contesto

Il servizio Cloud Workstations fornisce immagini di base predefinite da utilizzare con il servizio. Il servizio ricrea e ripubblica queste immagini ogni settimana per garantire che il software in bundle includa le patch di sicurezza più recenti. Inoltre, il servizio utilizza un valore predefinito di timeout in esecuzione sulla configurazione della workstation per garantire che le workstation vengano aggiornate automaticamente e che le immagini prive di patch non rimangano attive.

Tuttavia, Google Cloud non possiede tutti i pacchetti inclusi in queste immagini. I gestori dei pacchetti potrebbero assegnare la priorità agli aggiornamenti in modo diverso a seconda dell'impatto di un bug o di vulnerabilità ed esposizioni comuni (CVE) sul prodotto. Se un prodotto utilizza solo una parte di una libreria, potrebbe non essere influenzato dai risultati in altre parti della libreria. Per questo motivo, sebbene esistano risultati CVE derivanti dalle analisi di vulnerabilità delle nostre immagini, Cloud Workstations è comunque in grado di fornire un prodotto sicuro.

Cloud Workstations può farlo perché fornisce un sistema di autenticazione e autorizzazione che contribuisce a garantire che solo lo sviluppatore designato possa accedere alla workstation. Come per ogni ambiente di sviluppo, gli sviluppatori devono applicare le best practice quando usano la workstation. Per garantire la massima sicurezza, esegui solo il codice attendibile, opera solo su input attendibile e accedi solo ai domini attendibili. Inoltre, ti sconsigliamo di utilizzare workstation per ospitare server di produzione o condividere una singola workstation con più sviluppatori.

Se vuoi avere un maggiore controllo sulla sicurezza delle immagini delle workstation della tua organizzazione, puoi anche creare immagini container personalizzate.

Limita accesso alla rete pubblica

Disabilita gli indirizzi IP pubblici sulle tue workstation utilizzando la configurazione delle workstation e configura le regole del firewall limitando l'accesso alle destinazioni internet pubbliche non necessarie per il lavoro quotidiano da Cloud Workstations. Se disabiliti gli indirizzi IP pubblici, devi configurare l'accesso privato Google o Cloud NAT sulla tua rete. Se utilizzi l'accesso privato Google e usi private.googleapis.com o restricted.googleapis.com per Artifact Registry (o Container Registry), assicurati di configurare i record DNS per domini *.pkg.dev e *.gcr.io.

Limita accesso diretto SSH

Assicurati di limitare l'accesso diretto SSH alle VM nel progetto che ospita le tue workstation Cloud, in modo che l'accesso sia possibile solo tramite il gateway Cloud Workstations, dove sono applicati i criteri di Identity and Access Management (IAM) e puoi abilitare i log di flusso VPC.

Per disabilitare l'accesso diretto SSH alla VM, esegui questo comando di Google Cloud CLI:

    gcloud workstations configs update CONFIG \
        --cluster=CLUSTER \
        --region=REGION \
        --project=PROJECT \
        --disable-ssh-to-vm

Limita l'accesso alle risorse sensibili

Configura un perimetro di servizio Controlli di servizio VPC per limitare l'accesso alle risorse sensibili dalle tue workstation, evitando codice sorgente ed esfiltrazione di dati.

Seguire il principio del privilegio minimo

Segui il principio del privilegio minimo per le autorizzazioni e l'allocazione delle risorse.

Autorizzazioni IAM

Utilizza la configurazione di Identity and Access Management predefinita, limitando l'accesso alle workstation a un singolo sviluppatore. Ciò aiuta a garantire che ogni sviluppatore utilizzi un'istanza di workstation unica con una VM sottostante distinta, aumentando l'isolamento dell'ambiente. Gli editor di codice e le applicazioni di Cloud Workstations vengono eseguiti all'interno di un container in esecuzione in modalità con privilegi e con accesso root, per una maggiore flessibilità degli sviluppatori. In questo modo viene fornita una workstation unica per sviluppatore e garantisce che, anche se un utente esce da questo container, rimanga all'interno della sua VM, non in grado di accedere a eventuali risorse esterne aggiuntive.

Configura le autorizzazioni IAM per limitare l'accesso degli utenti non amministratori per modificare le configurazioni di workstation e le immagini container su Artifact Registry.

Inoltre, Google consiglia di configurare le autorizzazioni IAM che limitano l'accesso non amministrativo a qualsiasi risorsa Compute Engine sottostante nel progetto che ospita le tue Cloud Workstations.

Per ulteriori informazioni, consulta la pagina su come utilizzare IAM in modo sicuro.

Autorizzazioni Cloud KMS

Per supportare meglio il principio del privilegio minimo, ti consigliamo di mantenere le risorse di Cloud KMS e Cloud Workstations in progetti Google Cloud separati. Crea il tuo progetto chiave di Cloud KMS senza un owner a livello di progetto e designa un amministratore dell'organizzazione concesso a livello di organizzazione. A differenza di un owner, un amministratore dell'organizzazione non può gestire o utilizzare direttamente le chiavi. Sono limitati all'impostazione di criteri IAM, che limitano chi può gestire e usare le chiavi.

Questa procedura è nota anche come separazione dei compiti,ovvero il concetto di garantire che un individuo non disponga di tutte le autorizzazioni necessarie per essere in grado di completare un'azione dannosa. Per ulteriori informazioni, consulta la separazione dei compiti.

Applica patch e aggiornamenti automatici delle immagini

Assicurati che le tue workstation utilizzino la versione più recente delle immagini di base di Cloud Workstations, che contiene le patch e le correzioni di sicurezza più recenti. Il valore di timeout in esecuzione sulla configurazione della workstation aiuta a garantire che le workstation create con questa configurazione vengano aggiornate automaticamente alla sessione successiva, per corrispondere alla versione più recente dell'immagine del container definita nella configurazione della workstation.

  • Se la tua organizzazione utilizza una delle immagini di base di Cloud Workstations, quest'ultima recupera automaticamente gli eventuali aggiornamenti della configurazione della workstation al successivo riavvio e all'arresto della workstation. L'impostazione di runningTimeout o l'utilizzo del valore predefinito contribuisce a garantire che queste workstation vengano arrestate.
  • Se la tua organizzazione utilizza un'immagine personalizzata, assicurati di ricrearla regolarmente. Ti consigliamo di creare una pipeline di immagini sicure come descritto nella sezione seguente.

Crea una pipeline di immagini sicura per le immagini personalizzate

Sei responsabile della manutenzione e dell'aggiornamento dei pacchetti personalizzati e delle dipendenze aggiunte alle immagini personalizzate.

Se stai creando immagini personalizzate, ti consigliamo quanto segue:

Configura log di flusso VPC

Quando crei un cluster di workstation, Cloud Workstations lo associa a una subnet specifica e tutte le workstation vengono posizionate in quella subnet. Per abilitare i log di flusso VPC, assicurati di attivare il logging per quella subnet. Per ulteriori informazioni, consulta Abilitare i log di flusso VPC per una subnet esistente.