Sicurezza

Questa pagina descrive le funzionalità di sicurezza incluse nei cluster Anthos su AWS (GKE su AWS), inclusi ciascun livello della relativa infrastruttura e come configurare le funzionalità di sicurezza in base alle tue esigenze.

Panoramica

I cluster Anthos su AWS offrono diverse funzionalità per proteggere i carichi di lavoro, inclusi i contenuti dell'immagine del 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 di accesso che fornisci agli utenti e ai carichi di lavoro. Potresti dover trovare un compromesso per garantire il giusto livello di flessibilità e sicurezza.

Responsabilità condivise

Quando utilizzi i cluster Anthos su AWS, accetti di assumerti determinate responsabilità per i tuoi cluster. Per maggiori informazioni, consulta la pagina relativa alle responsabilità condivise dei cluster Anthos.

Autenticazione e autorizzazione

L'autenticazione su un cluster utente AWS su AWS tramite uno dei seguenti metodi:

Per configurare un accesso più granulare alle risorse Kubernetes a livello di cluster o negli spazi dei nomi Kubernetes, utilizza il controllo dell'accesso basato sui ruoli (RBAC). RBAC consente di creare criteri dettagliati per definire le operazioni e le risorse a cui gli utenti e gli account di servizio possono accedere. Con RBAC, puoi controllare l'accesso per qualsiasi identità convalidata fornita.

Per semplificare e ottimizzare ulteriormente la tua strategia di autenticazione e autorizzazione per Kubernetes Engine, Cluster Anthos on AWS disabilita il legacy Access-based Access Control (ABAC).

Crittografia

Per impostazione predefinita, i cluster Anthos su AWS criptano i dati in etcd at-rest, i volumi EBS, i secret di Kubernetes e i componenti del piano di controllo con AWS Key Management Service (KMS).

Per criptare i dati sensibili nei cluster utente, puoi utilizzare uno dei seguenti strumenti:

Secret di Kubernetes

Le risorse secret di Kubernetes archiviano nei cluster dati sensibili, come password, token OAuth e chiavi SSH. L'archiviazione di dati sensibili nei secret è più sicura rispetto all'archiviazione in ConfigMap in testo normale o nelle specifiche dei pod. L'uso dei secret ti dà il controllo su come vengono utilizzati i dati sensibili e riduce il rischio di esposizione dei dati a utenti non autorizzati.

Hashicorp Vault

I cluster Anthos su AWS possono utilizzare Hashicorp Vault per proteggere i Secret sui tuoi cluster utente. Per ulteriori informazioni, consulta la pagina relativa all'utilizzo di HashiCorp Vault su Cluster Anthos on AWS.

Sicurezza del piano di controllo

I componenti del piano di controllo includono il servizio di gestione e il server API, lo scheduler, i controller e il database etcd del cluster utente. In Cluster Anthos su AWS, gli amministratori locali gestiscono i componenti del piano di controllo.

Nei cluster Anthos su AWS, i componenti del piano di controllo vengono eseguiti su AWS. Puoi proteggere i cluster Anthos sul server API di AWS utilizzando i gruppi di sicurezza e gli ACL di rete di AWS.

Tutte le comunicazioni nei cluster Anthos su AWS utilizzano canali Transport Layer Security (TLS) regolati dalle seguenti autorità di certificazione (CA):

  • La CA etcd protegge la comunicazione dal server API alle repliche etcd e anche il traffico tra le repliche etcd. Questa CA è autofirmata.
  • La CA del cluster utente protegge la comunicazione tra il server API e tutti i client API interni di Kubernetes (kubelet, controller, scheduler). Questa CA è criptata con KMS.
  • La CA del servizio di gestione è criptata con AWS KMS. Viene creato quando esegui anthos-gke init e archiviato nell'area di lavoro Terraform. Quando utilizzi terraform apply per creare il servizio di gestione, la chiave CA viene passata come dati utente AWS EC2 e decriptata da AWS KMS all'avvio del cluster.

Per il servizio di gestione, le chiavi del piano di controllo sono archiviate sul piano di controllo [nodi]{:.external}. Per i cluster utente, le chiavi vengono archiviate come Kubernetes Secret nel piano di controllo del servizio di gestione.

L'autenticazione del cluster in Cluster Anthos on AWS è gestita da certificati e token di accesso dell'account di servizio. In qualità di amministratore, puoi autenticarti nel piano di controllo utilizzando il certificato amministrativo per il servizio di gestione (che utilizzi per la creazione iniziale delle associazioni di ruoli o per scopi di emergenza).

La rotazione dei certificati viene gestita nei seguenti modi:

  • Per il server API, i piani di controllo e i nodi, i cluster Anthos su AWS ruotano i certificati TLS a ogni upgrade.
  • Puoi anche rotare le credenziali di sicurezza manualmente.

Sicurezza dei nodi

Cluster Anthos on AWS esegue il deployment dei tuoi carichi di lavoro su pool di nodi di istanze AWS EC2. Le seguenti sezioni spiegano come utilizzare le funzionalità di sicurezza a livello di nodo in Cluster Anthos on AWS.

Ubuntu

I cluster Anthos su AWS utilizzano una versione ottimizzata di Ubuntu come sistema operativo su cui eseguire il piano di controllo e i nodi di Kubernetes. Ubuntu include un ricco set di moderne funzionalità di sicurezza e Cluster Anthos on AWS implementa diverse funzionalità di potenziamento della sicurezza per i cluster, tra cui:

  • Set pacchetto ottimizzato.
  • Cloud Linux personalizzato per Google Cloud.
  • Account utente con limitazioni e accesso root disattivato.

Sono disponibili guide per la sicurezza aggiuntive per Ubuntu, ad esempio:

Upgrade dei nodi

Dovresti eseguire l'upgrade dei nodi regolarmente. A volte, a causa di problemi di sicurezza nel runtime dei container, di Kubernetes o del sistema operativo dei nodi, potrebbe essere necessario eseguire l'upgrade dei nodi in modo più urgente. Quando esegui l'upgrade del cluster utente, il software di ogni nodo viene aggiornato alle versioni più recenti. Inoltre, l'upgrade dei nodi ruota le credenziali di crittografia.

Protezione dei carichi di lavoro

Kubernetes consente agli utenti di eseguire rapidamente il provisioning, la scalabilità e l'aggiornamento dei carichi di lavoro basati su container. Questa sezione descrive le tattiche che puoi utilizzare per limitare gli effetti collaterali dell'esecuzione dei container sul cluster e sui servizi Google Cloud.

Limitazione dei privilegi di processo dei container dei pod

La limitazione dei privilegi dei processi containerizzati è importante per la sicurezza del cluster. Puoi impostare opzioni relative alla sicurezza con il contesto di sicurezza di pod e container. Queste impostazioni consentono di modificare le impostazioni di sicurezza dei processi, ad esempio:

  • Utente e gruppo che eseguono il processo.
  • Funzionalità di Linux disponibili.
  • Riassegnazione dei privilegi.

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

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

Passaggi successivi