Benchmark CIS


Questa pagina descrive l'approccio adottato da Google Kubernetes Engine (GKE) per migliorare la conformità ai benchmark di Center for Internet Security (CIS) per per Kubernetes e per GKE. Questa pagina include quanto segue: informazioni:

  • Come configuriamo il control plane GKE gestito in conformità al benchmark Kubernetes CIS
  • Come configurare i nodi e i carichi di lavoro GKE in modo che rispettino il benchmark CIS Google Kubernetes Engine (GKE)

Informazioni sui CIS Benchmarks

CIS rilascia i seguenti benchmark che contengono linee guida per la configurazione sicura di Kubernetes:

  • CIS Kubernetes Benchmark: si applica al progetto Kubernetes open source. Ha lo scopo di fornire indicazioni per una serie di soluzioni gestite autonomamente e le implementazioni di Kubernetes.
  • CIS GKE Benchmark: stabilisce le linee guida per la configurazione sicura di componenti che puoi controllare nei cluster GKE. Include specifici per GKE su Google Cloud.

Ti consigliamo di dare la priorità al CIS GKE Benchmark, perché specifici di GKE su Google Cloud. Il benchmark Kubernetes CIS contiene molti consigli per i controlli che non puoi visualizzare o modificare in GKE. Il nostro approccio alla sicurezza del cluster include misure di mitigazione che vanno oltre lo scopo del benchmark Kubernetes open source e potrebbero comportare conflitti con questi consigli.

Altri benchmark che si applicano a GKE

Oltre al CIS GKE Benchmark e al CIS Kubernetes Benchmark, i seguenti benchmark si applicano ai sistemi operativi disponibili in GKE. Anche se un benchmark di sistema operativo specifico non riguarda esplicitamente l'utilizzo di Kubernetes, devi comunque fare riferimento a quel benchmark per ulteriori indicazioni sulla sicurezza.

Il runtime del contenitore predefinito, containerd, non ha un benchmark.

Modello di responsabilità condivisa

In base ai Modello di responsabilità condivisa di GKE, gestiamo per te i seguenti componenti:

  • Il piano di controllo, incluse le VM del piano di controllo, il server API e componenti come etcd, kube-controller-manager e kube-scheduler.
  • Il sistema operativo del nodo.

Questi componenti esistono in un progetto di proprietà di GKE, pertanto non puoi modificarli o valutarli in base ai controlli del benchmark CIS corrispondente. Tuttavia, puoi valutare e correggere qualsiasi controllo di CIS Benchmark applicabili ai nodi worker e ai carichi di lavoro. In base al modello di responsabilità condivisa GKE, questi componenti sono di tua responsabilità.

Il nostro approccio alla protezione di GKE per CIS Benchmark

GKE è un'implementazione gestita di Kubernetes open source. Me gestire completamente il piano di controllo e sono responsabili dei componenti del piano di controllo. La seguente tabella descrive alcune le nostre decisioni che potrebbero influire sul punteggio dei CIS Benchmark:

Approccio alla sicurezza di GKE
Autenticazione
  • Alcuni componenti di monitoraggio di GKE utilizzano l'autenticazione anonima per ottenere le metriche. GKE consente l'accesso per il kubelet, ma questa esposizione è identica porta di sola lettura perché disattiviamo gestori di debug aggiuntivi.
  • Il bootstrap di alcuni componenti del piano di controllo utilizzati per eseguire l'autenticazione sul server API. Questi token vengono generati ogni volta che una VM viene avviata o riavviata.
Controllori di ammissione

GKE disattiva i seguenti controller di ammissione:

  • EventRateLimit: questa è una funzionalità alpha in Kubernetes
  • AlwaysPullImages: questo controller fornisce una certa protezione per le immagini dei registry privati in cluster multi-tenant non cooperativi, a costo di rendere i registry delle immagini un punto di errore singolo per la creazione di nuovi pod nel cluster.
  • SecurityContextDeny: il controller di ammissione di sicurezza dei pod è preferito ed è disponibile in tutte le versioni di GKE. Se utilizzi GKE Enterprise, puoi anche attivare l'applicazione obbligatoria degli standard di sicurezza dei pod utilizzando Policy Controller.
  • ImagePolicyWebhook: GKE disattiva ImagePolicyWebhook per impostazione predefinita perché dispone di propri meccanismi per la gestione e la sicurezza delle immagini. In questo modo, GKE può mantenere un controllo più rigoroso sull'ambiente e garantire che le sue pratiche di sicurezza vengano applicate in modo coerente. Tuttavia, puoi utilizzare Autorizzazione binaria o Policy Controller per la gestione dei criteri.
Audit logging GKE acquisisce gli audit log utilizzando il criterio di controllo GKE. Di conseguenza, non è necessario impostare i flag di registrazione degli audit del server dell'API Kubernetes.
Debug GKE utilizza il profiling per il debug.
Crittografia
kubelet
  • GKE abilita la porta di sola lettura di kubelet non autenticata.
  • La modalità GKE Standard consente di modificare i carichi di lavoro i valori predefiniti del kernel, se necessario.
  • GKE limita il numero di eventi Kubernetes nel kubelet per ridurre il rischio di attacchi di denial-of-service.
  • GKE usa mTLS per proteggere il traffico tra il kubelet e il server API.
  • GKE esegue la rotazione dei certificati del server per impostazione predefinita e dei certificati client quando è abilitato Shielded GKE Nodes.
  • GKE utilizza l'insieme di crittografi consentiti predefinito di Golang, che è anche quello predefinito per Kubernetes.

Valuta GKE rispetto ai CIS Benchmarks

Puoi automatizzare la valutazione dei tuoi cluster in base ai benchmark utilizzando uno dei seguenti metodi:

  • Benchmark CIS GKE:

    • Tutte le versioni di GKE:
      • Esegui kube-bench per valutare i nodi worker rispetto al benchmark. Per maggiori dettagli, consulta il repository GitHub di kube-bench.
      • Utilizza uno strumento di terze parti come Twistlock Defender per valutare i nodi rispetto il benchmark.
    • Versione GKE Enterprise: utilizza la dashboard Conformità per valutare la conformità di tutti i tuoi cluster al benchmark GKE CIS. Per maggiori dettagli, consulta Informazioni sulla dashboard di conformità GKE.
  • Benchmark CIS Kubernetes: esegui kube-bench per valutare i nodi worker rispetto al benchmark. Non puoi valutare il piano di controllo gestito rispetto a questi consigli nel benchmark.

Passaggi successivi