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. In questa pagina sono inclusi i seguenti informazioni:

  • Come configuriamo il piano di controllo GKE gestito per la conformità il CIS Kubernetes Benchmark
  • Come configurare la conformità di nodi e carichi di lavoro GKE rispetto al benchmark CIS per Google Kubernetes Engine (GKE)

Informazioni sui CIS Benchmarks

CIS rilascia i seguenti benchmark che contengono configurazioni sicure linee guida per Kubernetes:

  • Benchmark CIS per Kubernetes: 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. La CIS di Kubernetes La scheda Benchmark contiene molti consigli relativi ai controlli che non puoi visualizzare o e le modifiche in GKE. Il nostro approccio alla sicurezza dei cluster include che vanno oltre l'ambito del benchmark Kubernetes open source potrebbero causare conflitti con i 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 container predefinito, containerd, non ha un benchmark.

Modello di responsabilità condivisa

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

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

Questi componenti si trovano in un progetto di proprietà di GKE, quindi non puoi modificare o valutare uno qualsiasi di questi componenti rispetto al CIS Benchmark corrispondente i controlli di sicurezza. Tuttavia, puoi valutare e correggere qualsiasi controllo di CIS Benchmark applicabili ai nodi worker e ai carichi di lavoro. In base alla del modello di responsabilità condivisa di GKE, questi componenti responsabile.

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 tabella seguente 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 usano 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 usati per eseguire l'autenticazione sul server API. Questi vengono generati a ogni avvio o riavvio di una VM.
Controller di ammissione

GKE disabilita i seguenti controller di ammissione:

  • EventRateLimit: questa è una funzionalità alpha in Kubernetes
  • AlwaysPullImages: questo controller offre una certa protezione per immagini di registro private in cluster multitenant non cooperativi, il costo di rendere i registri di immagini un single point of failure per creando nuovi pod nel cluster.
  • SecurityContextDeny: il parametro Controller di ammissione della sicurezza dei pod ed è disponibile in tutte le versioni di GKE. Se utilizzi GKE Enterprise, puoi anche abilitare l'applicazione forzata degli standard di sicurezza dei pod Policy Controller.
  • ImagePolicyWebhook: disabilita GKE ImagePolicyWebhook per impostazione predefinita perché ha i propri meccanismi per la gestione e la sicurezza delle immagini. Questo consente a GKE di mantenere sull'ambiente e garantire che la sua sicurezza vengono 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 Criteri di controllo di GKE. Di conseguenza, non è necessario impostare alcun audit logging del server API Kubernetes e i flag facoltativi.
Debug GKE utilizza la profilazione per il debug.
Crittografia
kubelet
  • GKE abilita la porta di sola lettura 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 denial of service.
  • GKE usa mTLS per proteggere il traffico tra il kubelet e il server API.
  • GKE ruota i certificati server per impostazione predefinita ruota i certificati client quando i nodi GKE schermati sono abilitati.
  • GKE utilizza set di crittografia consentito predefinito golang, che è anche l'impostazione predefinita per Kubernetes.

Valuta GKE rispetto ai CIS Benchmarks

Puoi automatizzare la valutazione dei tuoi cluster rispetto ai benchmark utilizzando una uno dei seguenti metodi:

  • Benchmark CIS GKE:

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

Passaggi successivi