Sicurezza dei container

Proteggi l'ambiente dei container su GCP, GKE o Anthos.

Panoramica

La containerizzazione consente ai team di sviluppo di spostarsi velocemente, eseguire il deployment del software in modo efficiente e operare su una scala senza precedenti. Dato che le aziende creano carichi di lavoro più containerizzati, la sicurezza deve essere integrata in ogni fase del ciclo di creazione e deployment. Scopri come proteggere l'ambiente dei container su GCP (in Google Kubernetes Engine o Anthos) in tre aree critiche.

Sicurezza dell'infrastruttura

La sicurezza dell'infrastruttura prevede che la piattaforma di gestione dei container fornisca le funzionalità di sicurezza adeguate. Kubernetes include funzionalità di sicurezza per proteggere identità, secret e rete. Google Kubernetes Engine inoltre utilizza funzionalità GCP native come Cloud IAM, Cloud Audit Logging e Virtual Private Clouds, nonché funzionalità specifiche di GKE, ad esempio la crittografia dei secret a livello di applicazione e Workload Identity per offrire il meglio della sicurezza Google ai tuoi carichi di lavoro.

Catena di fornitura del software

Proteggere la catena di fornitura del software significa proteggere il deployment delle immagini container. In questo modo puoi assicurarti che le immagini container siano prive di vulnerabilità e che le immagini che hai creato non vengano modificate prima di eseguirne il deployment.

Sicurezza del runtime

La sicurezza del runtime consente di identificare un container che agisce in modo dannoso in fase di produzione e di intervenire per proteggere il carico di lavoro.

L'esecuzione dei container consente di adottare un modello di sicurezza completamente diverso

Immutabilità e gestione delle patch più semplice

Immutabilità e gestione delle patch più semplice

I container sono concepiti per essere immutabili, quindi per apportare modifiche è necessario eseguire il deployment di una nuova immagine. Puoi semplificare la gestione delle patch ricreando regolarmente le immagini, in modo che la patch venga selezionata al successivo deployment di un container. Acquisisci un quadro completo del tuo ambiente con revisioni regolari della sicurezza delle immagini.

Superficie di attacco ridotta

Superficie di attacco ridotta

I container sono concepiti per essere eseguiti su un sistema operativo host molto più piccolo rispetto a quello per una VM, poiché un maggior numero di elementi viene inserito in pacchetti direttamente nell'applicazione. Questo sistema operativo host di dimensioni ridotte limita la potenziale superficie di attacco del carico di lavoro.

Isolamento del carico di lavoro e delle risorse

Isolamento del carico di lavoro e delle risorse

I container offrono un modo semplice per isolare risorse, ad esempio volumi di archiviazione, per alcuni processi, tramite cgroup e spazi dei nomi. Grazie a tecnologie come GKE Sandbox, puoi isolare in modo logico carichi di lavoro in una sandbox sotto-VM, separandoli da altre applicazioni.

Sicurezza dell'infrastruttura

La sicurezza dell'infrastruttura dei container consiste nell'assicurare che gli sviluppatori abbiano gli strumenti necessari per creare in sicurezza servizi containerizzati. Queste funzionalità in genere sono incorporate nell'agente di orchestrazione di container, ad esempio Kubernetes. Se utilizzi Google Kubernetes Engine, questa funzionalità è disponibile in modo nativo, insieme ad altre funzionalità di Google Cloud.

Identità e autorizzazioni

In Google Kubernetes Engine, utilizza Cloud IAM per gestire l'accesso ai progetti e il controllo degli accessi basato sui ruoli (RBAC) per gestire l'accesso ai cluster e agli spazi dei nomi.

Audit logging

In Kubernetes, gli audit log delle API vengono acquisiti automaticamente. In Google Kubernetes Engine, Cloud Audit Logging registra automaticamente gli audit log delle API.

Networking

In Google Kubernetes Engine, crea un criterio di rete per gestire le comunicazioni pod-to-pod nel cluster. Utilizza cluster privati per IP privati e includi le risorse di Kubernetes Engine in una rete VPC condivisa.

Conformità

Google Kubernetes Engine dispone di numerosi certificati di conformità, tra cui ISO 27001, ISO 27017, ISO 27108, HIPAA e PCI-DSS.

Sistema operativo host di dimensioni ridotte

Google Kubernetes Engine utilizza per impostazione predefinita Container-Optimized OS (COS), un sistema operativo realizzato appositamente e ottimizzato per eseguire i container. Il sistema operativo COS è gestito da Google in open source.

Componenti con upgrade automatico

In GKE, alle istanze master viene applicata automaticamente la patch relativa alla versione di Kubernetes più recente e puoi utilizzare l'upgrade automatico dei nodi per mantenere aggiornata la sicurezza mediante l'applicazione automatica delle ultime patch ai tuoi nodi.

Chiavi di crittografia gestite dal cliente

Gli utenti che operano in settori regolamentati potrebbero dover avere il controllo sulle chiavi utilizzate per criptare i dati archiviati in GKE. Nel caso delle chiavi crittografiche gestite dai clienti, puoi sceglierne una da Cloud KMS per proteggere il disco permanente GKE.

Crittografia dei secret a livello dell'applicazione

Per impostazione predefinita, i secret di Kubernetes sono archiviati in testo non crittografato. GKE cripta questi secret su disco e ne monitora i dati per evitare accessi indesiderati. Questa misura da sola, tuttavia, potrebbe non bastare per proteggere i secret da applicazioni pericolose nel tuo ambiente. Per proteggere i secret a livello di applicazione, viene applicata una crittografia envelope, con una chiave che è possibile gestire in Cloud KMS.

Workload Identity

È probabile che la tua applicazione containerizzata debba connettersi ad altri servizi, ad esempio un database, per svolgere le sue operazioni. A questo scopo, l'applicazione deve anzitutto eseguire l'autenticazione per accedere ai servizi. Workload Identity utilizza un account di servizio gestito da Google per condividere le credenziali per l'autenticazione dell'applicazione, seguendo i principi del privilegio minimo.

Certificati SSL gestiti

In GKE, i bilanciatori del carico HTTPS devono essere associati a un certificato SSL. Puoi ottenere, gestire e rinnovare questi certificati personalmente oppure farlo fare automaticamente a Google per non perdere tempo a rinnovarli in prima persona o anche per non rischiare di dimenticare di rinnovarli.

Catena di fornitura del software

La catena di fornitura del software consiste nel sapere esattamente che cosa viene distribuito nel tuo ambiente: implica il controllo delle applicazioni, dal codice all'immagine, fino al deployment. Queste funzionalità in genere sono integrate nella pipeline CI/CD, nel container registry, ad esempio Google Container Registry, e come controllo di ammissione prima del deployment dei container in produzione.

Immagini base sicure e gestite

Google Container Registry fornisce un'immagine di base Debian e Ubuntu gestita da Google con test e applicazione regolare delle patch. A queste immagini gestite da Google sono state applicate le patch upstream più recenti, perciò puoi mantenerle aggiornate facilmente senza doverle estrarre da un repository sconosciuto o gestire personalmente.

Analisi delle vulnerabilità

Google Container Registry fornisce una funzionalità di analisi delle vulnerabilità per analizzare immagini e pacchetti al fine di individuare le vulnerabilità note incluse nel database CVE.

Criteri di deployment

In Google Kubernetes Engine, utilizza l'autorizzazione binaria per limitare gli elementi di cui esegui il deployment nell'ambiente in base alle attestazioni di un'immagine. Puoi richiedere che le immagini rispettino i requisiti che definisci sotto forma di attestati o firme prima che ne venga eseguito il deployment. I requisiti potrebbero includere la scansione dell'immagine per verificare la presenza di vulnerabilità oppure la verifica da parte del team QA.

Build regolari

I container possono essere ricreati e ridistribuiti regolarmente, così puoi usufruire delle patch più recenti che vengono implementate gradualmente nell'ambiente.

Sicurezza del runtime

La sicurezza del runtime dei container consiste nell'assicurare che il team di risposta alla sicurezza possa individuare e reagire alle minacce alla sicurezza dei container in esecuzione nell'ambiente. Tali funzionalità in genere sono integrate negli strumenti per le operazioni di sicurezza.

Monitoraggio

Kubernetes Engine è integrato con Stackdriver per analizzare con semplicità i log. Puoi anche registrare gli eventi di sicurezza in Cloud Security Command Center (Cloud SCC).

Rilevamento di attività anomale

Per monitorare gli attacchi e visualizzare i risultati in Cloud SCC, affidati ai nostri partner, tra cui Aqua Security, Capsule8, StackRox, Sysdig Secure e Twistlock.

Applica criteri di sicurezza

PodSecurityPolicy è una funzionalità di Kubernetes open source che consente di creare delle barriere per i containers mediante l'impostazione di vincoli su come possono essere eseguiti i pod, ad esempio applicando vincoli come AppArmor e seccomp.

Isolamento

Evita che un container dannoso colpisca un altro container. GKE Sandbox utilizza un kernel dello spazio utente per intercettare e gestire le chiamate di sistema, in modo da applicare una difesa in profondità ai container senza che gli sviluppatori debbano cambiare il modo in cui interagiscono con le applicazioni. GKE Sandbox si basa su gVisor, un progetto open source creato da Google.

Risorse

Esplora ulteriori informazioni specifiche sulla sicurezza dei container.

Google Cloud

Inizia

Impara e crea

Non hai mai usato GCP? Inizia a utilizzare gratuitamente qualsiasi prodotto GCP con un credito di $ 300.

Hai bisogno di ulteriore assistenza?

I nostri esperti ti aiuteranno a creare la soluzione adeguata o a trovare il partner adatto alle tue esigenze.