Google Cloud include controlli per proteggere le risorse di calcolo e le risorse container di Google Kubernetes Engine (GKE). Questo documento del Google Cloud Architecture Framework descrive i controlli chiave e le best practice per utilizzarli.
Utilizzare immagini VM protette e curate
Google Cloud include le VM schermate, che ti consentono di rafforzare le istanze VM. La VM protetta è progettata per impedire il caricamento di codice dannoso durante il ciclo di avvio. Fornisce sicurezza di avvio, monitora l'integrità e utilizza il Virtual Trusted Platform Module (vTPM). Utilizza le VM protette per i carichi di lavoro sensibili.
Oltre a utilizzare le VM schermate, puoi usare leGoogle Cloud soluzioni dei partner per proteggere ulteriormente le tue VM. Molte soluzioni di partner offerte su Google Cloud si integrano con Security Command Center, che fornisce il rilevamento delle minacce e il monitoraggio dell'integrità degli eventi. Puoi utilizzare i partner per l'analisi avanzata delle minacce o per una maggiore sicurezza di runtime.
Utilizzare Confidential Computing per l'elaborazione dei dati sensibili.
Per impostazione predefinita, Google Cloud cripta i dati at-rest e in transito sulla rete, ma i dati non vengono criptati mentre sono in uso in memoria. Se la tua organizzazione gestisce dati riservati, devi mitigare le minacce che minano la riservatezza e l'integrità dell'applicazione o dei dati nella memoria di sistema. I dati riservati includono informazioni che consentono l'identificazione personale (PII), dati finanziari e informazioni sanitarie.
Confidential Computing si basa su Shielded VM. Protegge i dati in uso eseguendo calcoli in un ambiente di esecuzione attendibile basato su hardware. Questo tipo di ambiente sicuro e isolato contribuisce a impedire l'accesso o la modifica non autorizzati di applicazioni e dati durante il loro utilizzo. Un ambiente di esecuzione attendibile aumenta anche le garanzie di sicurezza per le organizzazioni che gestiscono dati sensibili e regolamentati.
In Google Cloud, puoi abilitare Confidential Computing eseguendo Confidential VM o nodi GKE riservati. Attiva Confidential Computing quando elabori carichi di lavoro confidenziali o quando hai dati confidenziali (ad esempio i secret) che devono essere esposti durante l'elaborazione. Per ulteriori informazioni, visita il sito del Confidential Computing Consortium.
Proteggere le VM e i container
OS Login consente ai dipendenti di connettersi alle VM utilizzando le autorizzazioni Identity and Access Management (IAM) come fonte attendibile anziché fare affidamento sulle chiavi SSH. Pertanto, non devi gestire le chiavi SSH in tutta l'organizzazione. L'accesso al sistema operativo lega l'accesso di un amministratore al ciclo di vita del dipendente, il che significa che se i dipendenti passano a un altro ruolo o lasciano la tua organizzazione, il loro accesso viene revocato con il loro account. OS Login supporta anche l'autenticazione a due fattori, che aggiunge un ulteriore livello di sicurezza contro gli attacchi di acquisizione dell'account.
In GKE, App Engine esegue istanze di applicazione all'interno di container Docker. Per attivare un profilo di rischio definito e impedire ai dipendenti di apportare modifiche ai container, assicurati che i container siano stateless e immutabili. Il principio di immutabilità significa che i tuoi dipendenti non modificano il contenitore né vi accedono in modo interattivo. Se deve essere modificata, crea una nuova immagine e esegui il redeployment. Attiva l'accesso SSH ai contenitori sottostanti solo in scenari di debug specifici.
Disattiva gli indirizzi IP esterni, a meno che non siano necessari
Per disattivare l'allocazione di indirizzi IP esterni (video) per le VM di produzione e per impedire l'utilizzo di bilanciatori del carico esterni, puoi utilizzare i criteri dell'organizzazione. Se vuoi che le tue VM raggiungano internet o il tuo data center on-premise, puoi attivare un gateway Cloud NAT.
Puoi eseguire il deployment di cluster privati in GKE. In un cluster privato, i nodi hanno solo indirizzi IP interni, il che significa che i nodi e i pod sono isolati da internet per impostazione predefinita. Puoi anche definire un criterio di rete per gestire la comunicazione tra pod nel cluster. Per ulteriori informazioni, consulta Opzioni di accesso privato per i servizi.
Monitorare l'istanza di calcolo e l'utilizzo di GKE
Cloud Audit Logs vengono attivati automaticamente per Compute Engine e GKE. Gli audit log ti consentono di acquisire automaticamente tutte le attività del tuo cluster e di monitorare eventuali attività sospette.
Puoi integrare GKE con i prodotti dei partner per la sicurezza di runtime. Puoi integrare queste soluzioni con Security Command Center per avere un'unica interfaccia per il monitoraggio delle applicazioni.
Mantieni aggiornate le immagini e i cluster
Google Cloud fornisce immagini del sistema operativo selezionate che vengono sottoposte a patch regolarmente. Puoi portare immagini personalizzate ed eseguirle su Compute Engine, ma in questo caso devi applicare le patch autonomamente. Google Cloud aggiorna regolarmente le immagini di sistema operativo per mitigare le nuove vulnerabilità come descritto nei bollettini sulla sicurezza e fornisce la correzione per risolvere le vulnerabilità per i deployment esistenti.
Se utilizzi GKE, ti consigliamo di abilitare l'upgrade automatico dei nodi per consentire a Google di aggiornare i nodi del cluster con le patch più recenti. Google gestisce i piani di controllo GKE, che vengono aggiornati e sottoposti a patch automaticamente. Inoltre, utilizza le immagini ottimizzate per i container selezionate da Google per il tuo deployment. Google applica patch e aggiorna regolarmente queste immagini.
Controllare l'accesso alle immagini e ai cluster
È importante sapere chi può creare e avviare istanze. Puoi controllare questo accesso utilizzando IAM. Per informazioni su come determinare i requisiti di accesso dei carichi di lavoro, consulta Pianificare le identità del carico di lavoro.
Inoltre, puoi utilizzare Controlli di servizio VPC per definire quote personalizzate per i progetti in modo da limitare chi può lanciare le immagini. Per saperne di più, consulta la sezione Proteggere la rete.
Per garantire la sicurezza dell'infrastruttura del cluster, GKE ti consente di utilizzare IAM con il controllo degli accessi basato sui ruoli (RBAC) per gestire l'accesso al cluster e agli spazi dei nomi.
Isolare i container in una sandbox
Utilizza GKE Sandbox per eseguire il deployment di applicazioni multi-tenant che necessitano di un ulteriore livello di sicurezza e isolamento dal kernel host. Ad esempio, utilizza GKE Sandbox quando esecuti codice sconosciuto o non attendibile. GKE Sandbox è una soluzione per l'isolamento dei container che fornisce un secondo livello di difesa tra i carichi di lavoro containerizzati su GKE.
GKE Sandbox è stato creato per le applicazioni con requisiti I/O ridotti, ma con un'elevata scalabilità. Questi carichi di lavoro containerizzati devono mantenere velocità e prestazioni, ma potrebbero anche coinvolgere codice non attendibile che richiede maggiore sicurezza. Utilizza gVisor, una sandbox del runtime del contenitore, per fornire un ulteriore isolamento di sicurezza tra le applicazioni e il kernel host. gVisor fornisce ulteriori controlli di integrità e limita l'ambito di accesso per un servizio. Non è un servizio di rafforzamento dei contenitori per proteggersi dalle minacce esterne. Per ulteriori informazioni su gVisor, consulta gVisor: proteggere gli utenti di GKE e serverless nel mondo reale.
Passaggi successivi
Scopri di più sulla sicurezza del calcolo e dei contenitori con le seguenti risorse:
- Proteggere la rete (documento successivo di questa serie)
- Perché la sicurezza dei container è importante (PDF)
- Elenco di controllo per il lancio di Google Cloud
- Verificare l'identità delle istanze
- Workload Identity Federation per GKE
- VM schermata
- Best practice per gli snapshot dei dischi permanenti
- Best practice per la gestione delle immagini