Sicurezza

In questa pagina vengono descritte le funzionalità di sicurezza incluse in Google Distributed Cloud (solo software) per VMware, inclusi ogni livello dell'infrastruttura e come puoi configurare queste funzionalità di sicurezza in base alle tue esigenze.

Panoramica

Google Distributed Cloud (solo software) per VMware offre diverse funzionalità per aiutarti proteggere i carichi di lavoro, inclusi i contenuti dell'immagine container, il runtime del container, la rete del cluster e l'accesso al server API del cluster.

È meglio adottare un approccio a più livelli per proteggere i cluster e i carichi di lavoro. Puoi applicare il principio del privilegio minimo al livello l'accesso consentito a utenti e carichi di lavoro. Potresti dover scendere a compromessi per garantire il giusto livello di flessibilità e sicurezza.

Autenticazione e autorizzazione

Esegui l'autenticazione nei cluster utilizzando OpenID Connect (OIDC) o un token dell'account di servizio Kubernetes tramite Console Cloud.

Per configurare un accesso più granulare alle risorse Kubernetes a livello di cluster. o all'interno degli spazi dei nomi Kubernetes, Controllo degli accessi basato sui ruoli (RBAC). RBAC ti consente di creare criteri dettagliati che definiscono le operazioni e le risorse che vuoi consentire agli utenti a cui accedere. Con RBAC, puoi controllare l'accesso per qualsiasi identità convalidata fornito.

Per semplificare e ottimizzare ulteriormente l'autenticazione strategia di autorizzazione per Kubernetes Engine, Google Distributed Cloud disattiva Controllo degli accessi basato su attributi (ABAC) legacy.

Sicurezza del piano di controllo

I componenti del piano di controllo includono il server API, lo scheduler, e il database etcd in cui viene eseguito il deployment sia permanente. mentre in GKE I componenti del piano di controllo Kubernetes sono gestiti e gestiti Google, gli amministratori locali gestiscono i componenti del piano di controllo Google Distributed Cloud.

In Google Distributed Cloud, i componenti del piano di controllo vengono eseguiti all'interno rete aziendale. Puoi proteggere il server API Kubernetes utilizzando dai firewall e dai criteri di rete aziendali esistenti. Puoi anche assegnare indirizzo IP interno al server API e limitare l'accesso all'indirizzo.

Tutte le comunicazioni in Google Distributed Cloud avvengono tramite canali TLS, che regolato da tre autorità di certificazione (CA): etcd, cluster e org:

  • La CA etcd protegge le comunicazioni dal server API alle repliche etcd e anche il traffico tra le repliche etcd. Questa CA è autofirmata.
  • La CA del cluster protegge le comunicazioni tra il server API e tutti i server Client API Kubernetes (kubelet, controller, scheduler). Questa CA è autofirmato.
  • La CA dell'organizzazione è una CA esterna utilizzata per gestire l'API Kubernetes utenti. Sei tu a gestire questa CA.

Per i piani di controllo amministrativi, le chiavi vengono memorizzate sul piano di controllo node. Per i cluster utente, le chiavi vengono archiviate come Kubernetes Secret nel piano di controllo amministratore. Il server API è configurato con un certificato fornito dall'utente firmato dalla CA dell'organizzazione. Il server API utilizza il nome del server Indicazione (SNI) per determinare se utilizzare la chiave firmata dalla CA del cluster la chiave firmata dalla CA dell'organizzazione.

L'autenticazione del cluster è gestita da certificati e connessione dell'account di servizio di token. In qualità di amministratore, puoi eseguire l'autenticazione al piano di controllo utilizzando OIDC, o con il certificato amministrativo (che utilizzerai per l'associazione iniziale del ruolo creazione o per finalità di emergenza).

La rotazione dei certificati viene gestita nei seguenti modi:

  • Per il server API, i piani di controllo e i nodi, i certificati vengono creati vengono ruotati a ogni upgrade.
  • Le CA possono essere ruotate raramente o on demand.

Sicurezza dei nodi

Google Distributed Cloud esegue il deployment dei tuoi carichi di lavoro in istanze VMware, collegati ai tuoi cluster come nodi. Le seguenti sezioni spiegano come utilizzare le funzionalità di sicurezza a livello di nodo a tua disposizione.

Ubuntu

Google Distributed Cloud utilizza una versione ottimizzata di Ubuntu come il sistema operativo su cui eseguire il piano di controllo e i nodi Kubernetes. Ubuntu include un ricco insieme di moderne funzionalità di sicurezza e Google Distributed Cloud implementa diverse funzionalità di miglioramento della sicurezza per tra cui:

Sono disponibili ulteriori guide alla sicurezza per Ubuntu, come:

Upgrade dei nodi

Dovresti eseguire l'upgrade dei nodi regolarmente. Di tanto in tanto, la sicurezza problemi relativi al runtime del container, a Kubernetes stesso o al sistema operativo dei nodi potrebbe richiedere un upgrade più urgente. Quando esegui l'upgrade viene eseguito l'upgrade del software di ciascun nodo alle versioni più recenti.

Protezione dei carichi di lavoro

Kubernetes consente agli utenti di eseguire rapidamente il provisioning, la scalabilità e l'aggiornamento carichi di lavoro con scale out impegnativi. Questa sezione descrive le tattiche che amministratori e utenti possono utilizzare per limitare la capacità dei container in esecuzione di influenzare altri container nel cluster, gli host su cui vengono eseguiti e i servizi Google Cloud sia abilitato nel proprio progetto.

Limitazione dei privilegi di processo del container di pod

Limitare i privilegi dei processi containerizzati è importante per l'infrastruttura la sicurezza del tuo cluster. Kubernetes Engine ti consente di impostare tramite il contesto di sicurezza su pod e container. Queste impostazioni consentono di modificare le impostazioni di sicurezza dei processi, ad esempio: come:

  • Utente e gruppo da usare per l'esecuzione.
  • Funzionalità Linux disponibili.
  • Escalation dei privilegi.

Il sistema operativo nodo predefinito, Ubuntu, applica il valore predefinito Docker AppArmor criteri di sicurezza a tutti i container avviati da Kubernetes. Puoi visualizzare del profilo su GitHub. Tra le altre cose, il profilo nega le seguenti funzionalità per i container:

  • Scrittura nei file direttamente in una directory ID di processo (/proc/).
  • Scrittura su file non in /proc/.
  • Scrittura in file in /proc/sys diversi da /proc/sys/kernel/shm*.
  • Montaggio dei file system.

Audit logging

L'audit logging di Kubernetes consente agli amministratori di conservare, eseguire query, elaborare avviso sugli eventi che si verificano negli ambienti Google Distributed Cloud. Gli amministratori possono utilizzare le informazioni registrate per eseguire analisi forensi in tempo reale per gli avvisi o per catalogare le modalità di creazione di un parco Kubernetes Engine utilizzati e da chi.

Per impostazione predefinita, Google Distributed Cloud registra l'attività di amministrazione dei log. In via facoltativa, registrare anche gli eventi di accesso ai dati, a seconda dei tipi di operazioni interessato a ispezionare.

L'agente Connect comunica solo con il server API locale in esecuzione on-premise e ogni cluster deve avere il proprio set di audit log. Tutte le azioni che gli utenti eseguono dall'interfaccia utente attraverso Connect vengono registrati dallo stesso in un cluster Kubernetes.

Crittografia

Se i cluster e i carichi di lavoro si connettono in modo sicuro ai servizi Google Cloud tramite Cloud VPN, puoi utilizzare Cloud Key Management Service (Cloud KMS) per la gestione delle chiavi. Cloud KMS è un servizio di gestione Key Management Service che consente di gestire chiavi di crittografia per i tuoi servizi. Puoi generare, utilizzare, ruotare ed eliminare Chiavi di crittografia AES256, RSA 2048, RSA 3072, RSA 4096, EC P256 ed EC P384. Cloud KMS è integrato con Identity and Access Management (IAM) e Cloud Audit Logging, per poter gestire le autorizzazioni per le singole chiavi e monitorare il modo in cui che vengono utilizzati. Utilizza Cloud KMS per proteggere i secret e altri dati sensibili che che devi archiviare. Altrimenti, puoi scegliere di utilizzare una delle seguenti opzioni: alternative:

  • Secret di Kubernetes
  • Hashicorp Vault
  • HSM della rete Thales Luna
  • Modulo di sicurezza hardware (HSM) di Google Cloud

Secret di Kubernetes

Le risorse Secret di Kubernetes archiviano dati sensibili come password, OAuth e chiavi SSH nei tuoi cluster. L'archiviazione dei dati sensibili nei secret più sicuro rispetto all'archiviazione in testo non crittografato ConfigMaps o nel pod specifiche. L'uso dei secret ti consente di controllare come vengono usati i dati sensibili, e riduce il rischio di esporre i dati a utenti non autorizzati.

Modulo di sicurezza hardware