Configurare le best practice per la sicurezza

Questa pagina fornisce una panoramica delle best practice per la sicurezza consigliate per migliorare la sicurezza e la protezione dei dati delle tue Cloud Workstations. Questo elenco non è un elenco di controllo completo che garantisce garanzie di sicurezza o un'alternativa alle tue posture di sicurezza esistenti.

L'obiettivo è fornirti una guida alle best practice per la sicurezza rese possibili da Cloud Workstations. Aggiungi questi consigli al tuo portafoglio di soluzioni di sicurezza, se applicabili, nell'ambito del tuo impegno per creare un approccio alla sicurezza a più livelli. Un approccio alla sicurezza a più livelli è uno dei principi di sicurezza fondamentali per l'esecuzione di servizi sicuri e conformi su Google Cloud.

Sfondo

Il servizio Cloud Workstations fornisce immagini di base predefinite da utilizzare con il servizio. Il servizio ricostruisce e ripubblica queste immagini settimanalmente per contribuire a garantire che il software in bundle includa le patch di sicurezza più recenti. Inoltre, il servizio utilizza un valore predefinito per il timeout di esecuzione nella configurazione della workstation per assicurarsi che le workstation vengano aggiornate automaticamente e che le immagini non sottoposte a patch non rimangano attive.

Tuttavia, Google Cloud non possiede tutti i pacchetti raggruppati in queste immagini. I gestori dei pacchetti potrebbero dare la priorità agli aggiornamenti in modo diverso a seconda dell'impatto di un bug o di vulnerabilità e esposizioni comuni (CVE) sul loro prodotto. Se un prodotto utilizza solo una parte di una raccolta, potrebbe non essere interessato dalle scoperte in altre parti della raccolta. Per questo motivo, anche se esistono risultati CVE provenienti da analisi delle vulnerabilità delle nostre immagini, Cloud Workstations è comunque in grado di fornire un prodotto sicuro.

Cloud Workstations possono farlo perché forniscono un sistema di autenticazione e autorizzazione che contribuisce ad assicurare che solo lo sviluppatore designato possa accedere alla propria workstation. Come per qualsiasi ambiente di sviluppo, gli sviluppatori devono applicare le best practice quando utilizzano la workstation. Per garantire la massima sicurezza possibile, esegui solo codice attendibile, opera solo su input attendibili e accedi solo a domini attendibili. Inoltre, ti sconsigliamo di utilizzare le stazioni di lavoro per ospitare i server di produzione o di condividere una singola stazione di lavoro con più sviluppatori.

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

Limitare l'accesso alla rete pubblica

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

Limita l'accesso SSH diretto

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

Per disattivare l'accesso SSH diretto alla VM, esegui il seguente comando Google Cloud CLI:

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

Limitare l'accesso alle risorse sensibili

Configura un perimetro di servizio VPC Service Controls per limitare l'accesso alle risorse sensibili dalle tue workstation, impedendo l'esfiltrazione di codice sorgente e 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 predefinita di Identity and Access Management, limitando l'accesso alla workstation a un singolo sviluppatore. In questo modo, ogni sviluppatore utilizza un'istanza della workstation univoca con una VM di base distinta, aumentando l'isolamento dell'ambiente. Gli editor di codice e le applicazioni di Cloud Workstations vengono eseguiti all'interno di un contenitore in modalità privilegiata e con accesso amministrativo, per una maggiore flessibilità per gli sviluppatori. In questo modo viene fornita una stazione di lavoro unica per sviluppatore e si contribuisce ad assicurare che, anche se un utente esce da questo contenitore, rimarrà all'interno della VM e non potrà accedere ad altre risorse esterne.

Configura le autorizzazioni IAM che limitano l'accesso non amministrativo alla modifica delle configurazioni della workstation e delle immagini container su Artifact Registry.

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

Per ulteriori informazioni, consulta Utilizzare IAM in modo sicuro.

Autorizzazioni Cloud KMS

Per supportare meglio il principio del privilegio minimo, ti consigliamo di mantenere le risorse Cloud KMS e le risorse Cloud Workstations in progetti Google Cloud separati. Crea il progetto di chiavi Cloud KMS senza un owner a livello di progetto e designa un amministratore dell'organizzazione conseguito 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 dei criteri IAM, che limitano chi può gestire e utilizzare le chiavi.

Questo è noto anche come separazione dei compiti,ovvero il concetto di assicurarsi che un individuo non disponga di tutte le autorizzazioni necessarie per poter completare un'azione dannosa. Per ulteriori informazioni, consulta la sezione sulla separazione delle responsabilità.

Applicare aggiornamenti automatici e patch alle immagini

Assicurati che le tue stazioni di lavoro utilizzino la versione più recente delle immagini di base delle stazioni di lavoro Cloud, che contengono le patch e le correzioni di sicurezza più recenti. Il valore timeout esecuzione nella configurazione della workstation contribuisce ad assicurare che le workstation create con questa configurazione vengano aggiornate automaticamente nella sessione successiva in modo da corrispondere alla versione più recente dell'immagine del contenitore definita nella configurazione della workstation.

  • Se la tua organizzazione utilizza una delle immagini di base di Cloud Workstations, la workstation rileva automaticamente gli aggiornamenti alla configurazione della workstation al successivo arresto e riavvio. L'impostazione runningTimeout o l'utilizzo dell'impostazione predefinita contribuisce a garantire che queste stazioni di lavoro vengano arrestate.
  • Se la tua organizzazione utilizza un'immagine personalizzata, assicurati di rigenerarla regolarmente. Ti consigliamo di creare una pipeline di immagini sicure come descritto nella sezione seguente.

Creare una pipeline di immagini sicure per le immagini personalizzate

È tua responsabilità gestire e aggiornare i pacchetti e le dipendenze personalizzate aggiunte alle immagini personalizzate.

Se crei immagini personalizzate, ti consigliamo quanto segue:

Configura i log di flusso VPC

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