Sicurezza del piano di controllo


Questo documento descrive in che modo Google Kubernetes Engine (GKE) protegge i componenti del control plane del cluster.

In base al modello di responsabilità condivisa, Google gestisce per te i componenti del piano di controllo GKE. Il piano di controllo include il server API Kubernetes, lo spazio di archiviazione etcd e altri controllori. Google è responsabile della protezione del piano di controllo, anche se potresti essere in grado di configurare determinate opzioni in base ai tuoi requisiti. Sei responsabile della protezione dei tuoi nodi, container e pod.

Sistema operativo rafforzato

I componenti del piano di controllo di GKE vengono eseguiti su Container-Optimized OS, che è un sistema operativo con protezione avanzata progettato da Google. Per una descrizione dettagliata delle funzionalità di sicurezza integrate in Container-Optimized OS, consulta la panoramica della sicurezza di Container-Optimized OS.

Architettura e isolamento

In un cluster GKE, i componenti del piano di controllo vengono eseguiti su istanze Compute Engine di proprietà di Google, in un progetto gestito da Google. Ogni istanza esegue questi componenti solo per un cluster.

Per informazioni dettagliate su come i componenti del cluster si autenticano tra loro, consulta Attendibilità del cluster.

Controlla l'accesso al control plane al tuo progetto

GKE utilizza un agente di servizio chiamato Kubernetes Engine Service Agent per attivare per tuo conto le risorse del cluster, come nodi, dischi e bilanciatori del carico. All'account di servizio viene assegnato automaticamente il ruolo Agente di servizio Kubernetes Engine (roles/container.serviceAgent) nel progetto.

L'agente del servizio Kubernetes Engine ha il seguente indirizzo email:

service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com

In questo indirizzo email, PROJECT_NUMBER è il numero del progetto.

Accesso amministrativo al cluster

Le sessioni SSH dei tecnici Site Reliability di Google vengono registrate tramite l'infrastruttura di controllo interno di Google, che è disponibile per le indagini forensi e la risposta alla sicurezza. Per ulteriori informazioni, consulta la sezione Accesso amministrativo nel white paper sulla sicurezza di Google.

Sicurezza etcd

In Google Cloud, i contenuti dei clienti vengono criptati a livello di file system per impostazione predefinita. Pertanto, i dischi che ospitano lo spazio di archiviazione etcd per i cluster GKE vengono criptati a livello di file system. Per ulteriori informazioni, consulta Crittografia at-rest.

etcd è in ascolto su due porte TCP. La porta 2379 è destinata ai client etcd, come il server API Kubernetes. La porta 2379 è associata all'interfaccia di rete loopback locale, pertanto è accessibile solo dalla VM su cui è in esecuzione il server API Kubernetes. La porta 2380 è destinata alla comunicazione server-to-server. Il traffico sulla porta 2380 è criptato da TLS reciproco. In altre parole, ogni server deve dimostrare la propria identità all'altro. In un cluster regionale, la comunicazione tra i server etcd per stabilire un quorum è criptata da TLS reciproco.

Autorità di certificazione e attendibilità del cluster

Ogni cluster ha la propria autorità di certificazione (CA) radice. Le chiavi radice di questa CA vengono gestite da un servizio interno di Google. Ogni cluster ha anche una propria CA per etcd. Le chiavi principali per la CA etcd vengono distribuite ai metadati delle VM che eseguono il server API Kubernetes. La comunicazione tra i nodi e il server API Kubernetes è protetta da TLS. Per ulteriori informazioni, consulta Attendibilità del cluster.

Gestione delle vulnerabilità e delle patch

GKE rispetta gli standard di Google per i test, la qualifica e l'implementazione graduale delle modifiche al piano di controllo. In questo modo si riduce al minimo il rischio che un componente del piano di controllo non sia disponibile. GKE rispetta un accordo sul livello del servizio che definisce molti aspetti della disponibilità.

I componenti del piano di controllo di GKE sono gestiti da un team di SRE (Site Reliability Engineer) di Google e vengono mantenuti aggiornati con le patch di sicurezza più recenti. Sono incluse le patch per il sistema operativo host, i componenti Kubernetes e i container in esecuzione sulle VM del piano di controllo.

GKE applica tempestivamente le nuove correzioni a livello di kernel, sistema operativo e Kubernetes alle VM del piano di controllo. Se contengono correzioni per vulnerabilità note, sono disponibili ulteriori informazioni nei bollettini sulla sicurezza di GKE. GKE esegue la scansione di tutto il sistema Kubernetes e dei container specifici di GKE per rilevare le vulnerabilità utilizzando Artifact Analysis e mantiene aggiornati i container, a vantaggio dell'intero ecosistema Kubernetes.

Gli ingegneri di Google contribuiscono a trovare, correggere e divulgare i bug di sicurezza di Kubernetes. Google paga anche ricercatori esterni nel campo della sicurezza, tramite il programma a premi per il rilevamento delle vulnerabilità di Google, per cercare bug di sicurezza. In alcuni casi, come la vulnerabilità dnsmasq di ottobre 2017, GKE è stato in grado di applicare patch a tutti i cluster in esecuzione prima che la vulnerabilità diventasse di dominio pubblico.

Che cosa puoi vedere

Le funzionalità di sicurezza discusse in precedenza in questo argomento sono gestite da Google. Questa sezione e la successiva illustrano le funzionalità di sicurezza che puoi monitorare e configurare.

  • Audit log: l'audit logging è abilitato per impostazione predefinita. Viene fornito un record dettagliato, disponibile in Google Cloud Observability, delle chiamate effettuate al server dell'API Kubernetes. Puoi visualizzare le voci di log in Esplora log nella console Google Cloud. Puoi anche utilizzare BigQuery per visualizzare e analizzare questi log.
  • Integrità dell'immagine VM del piano di controllo: GKE aggiunge a Cloud Logging log dettagliati per la creazione e gli eventi di avvio delle VM dei nodi. Inoltre, su GitHub pubblichiamo VSA SLSA corrispondenti alle immagini macchina del piano di controllo e dei nodi worker. Puoi verificare che le VM utilizzino immagini del sistema operativo con VSA corrispondenti e verificare l'integrità dell'avvio di ogni VM del piano di controllo.

    Per eseguire la verifica dell'integrità della VM, consulta Verificare l'integrità della VM del control plane GKE.

Cosa puoi configurare

Sebbene GKE gestisca la maggior parte del piano di controllo per te, puoi controllare quanto segue:

  • Accesso al control plane: il control plane ha due tipi di endpoint per l'accesso al cluster:

    • Endpoint basato su DNS
    • Endpoint basati su IP

    Per impostazione predefinita, il server API Kubernetes utilizza un indirizzo IP esterno. Puoi proteggere il server API Kubernetes attivando un endpoint basato su DNS per l'accesso al piano di controllo. Puoi controllare chi può accedere all'endpoint DNS con i Controlli di servizio VPC, che ti consentono di definire un parametro di sicurezza per tutte le API di Google nel tuo progetto. Se utilizzi endpoint basati su IP per l'accesso al piano di controllo, ti consigliamo di utilizzare le reti autorizzate e di disattivare l'accesso sull'endpoint esterno del piano di controllo. Per saperne di più sull'isolamento di rete, consulta Informazioni sulla personalizzazione dell'isolamento di rete.

  • Autenticazione: puoi gestire l'autenticazione del cluster in GKE utilizzando IAM come provider di identità. Per una maggiore sicurezza dell'autenticazione, l'autenticazione di base e l'emissione del certificato client sono disattivati per impostazione predefinita.

  • Rotazione delle credenziali: ruota regolarmente l'autorità di certificazione (CA) e i certificati TLS del cluster eseguendo una rotazione delle credenziali. GKE esegue anche la rotazione dell'indirizzo IP del server API Kubernetes durante questa procedura. Per ulteriori informazioni, consulta la sezione sulla rotazione delle credenziali.

Inoltre, se la tua organizzazione ha requisiti di conformità o criteri rigorosi relativi al piano di controllo, l'autorità del piano di controllo GKE è un insieme di funzionalità che ti offre visibilità e controllo avanzati su aspetti specifici del piano di controllo, tra cui:

  • Gestisci le tue CA e le tue chiavi per l'emissione di identità utilizzando Cloud KMS e CA Service.
  • Crittografa i dischi di avvio di etcd e del control plane utilizzando le tue chiavi in Cloud KMS.

Per informazioni dettagliate sul motivo per cui utilizzare queste funzionalità e su tutte le funzionalità disponibili, consulta Informazioni sull'autorità del control plane di GKE.

Passaggi successivi