Questa pagina mostra come eseguire automaticamente l'audit delle configurazioni dei workload per problemi di sicurezza e ricevere suggerimenti pratici per migliorare la security posture dei cluster Google Kubernetes Engine (GKE) Autopilot e Standard. Questa guida ti spiega come attivare il controllo della configurazione del workload, eseguire il deployment di un workload di test, visualizzare e intervenire sui risultati del controllo della configurazione e disattivare il controllo della configurazione del workload. Vengono inoltre trattati i prezzi, i requisiti e le limitazioni del controllo della configurazione dei workload.
Questa pagina è dedicata agli esperti di sicurezza che monitorano la sicurezza dei propri cluster GKE e vogliono saperne di più su come eseguire automaticamente l'audit delle configurazioni dei workload nei cluster GKE Autopilot e Standard. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti, consulta Ruoli e attività comuni degli utenti GKE. Google Cloud
Prima di leggere questa pagina, poiché il controllo della configurazione del workload è una funzionalità della dashboard di postura di sicurezza, assicurati di avere familiarità con i seguenti concetti:
- Panoramica generale della dashboard Postura di sicurezza
- Informazioni sul controllo della configurazione dei workload
Prezzi
La dashboard per la postura di sicurezza è offerta senza costi aggiuntivi in GKE tramite l'API Container Security.
Le voci aggiunte a Cloud Logging utilizzano i prezzi di Cloud Logging.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza
gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima versione
eseguendo
gcloud components update
.
Abilita l'API Container Security.
Assicurati di avere un cluster Autopilot o Standard che esegue la versione 1.21 o successive. Per creare un nuovo cluster, consulta Creazione di un cluster Autopilot.
Requisiti
-
Per ottenere le autorizzazioni necessarie per utilizzare il controllo della configurazione dei carichi di lavoro, chiedi all'amministratore di concederti il ruolo IAM Visualizzatore postura di sicurezza (
roles/containersecurity.viewer
) sul tuo progetto Google Cloud . Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.Questo ruolo predefinito contiene le autorizzazioni necessarie per utilizzare il controllo della configurazione dei carichi di lavoro. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per utilizzare il controllo della configurazione dei workload sono necessarie le seguenti autorizzazioni:
-
resourcemanager.projects.get
-
resourcemanager.projects.list
-
containersecurity.locations.list
-
containersecurity.locations.get
-
containersecurity.clusterSummaries.list
-
containersecurity.findings.list
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
-
- Il controllo della configurazione del workload richiede GKE versione 1.21 e successive.
Abilitare il controllo della configurazione del workload
Il controllo della configurazione del workload è abilitato per impostazione predefinita nei nuovi cluster Autopilot e standard che eseguono la versione 1.27 e successive. Puoi anche attivare manualmente questa funzionalità utilizzando gcloud CLI o la console Google Cloud .
Abilitare il controllo della configurazione su un cluster esistente
gcloud
Aggiorna il cluster:
gcloud container clusters update CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --security-posture=standard
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del tuo cluster.CONTROL_PLANE_LOCATION
: la posizione del control plane del cluster. Fornisci una regione per i cluster Standard e Autopilot regionali o una zona per i cluster Standard zonali.
Console
Vai alla pagina Postura di sicurezza nella console Google Cloud .
Vai a Postura di sicurezza- Fai clic sulla scheda Impostazioni.
- Nella sezione Cluster abilitati per il controllo della configurazione, fai clic su Seleziona cluster.
- Seleziona le caselle di controllo dei cluster che vuoi aggiungere.
- Nel menu a discesa Seleziona azione, seleziona Imposta su Base.
- Fai clic su Applica.
Se utilizzi Google Kubernetes Engine (GKE) Enterprise per gestire flotte di cluster, puoi anche configurare le impostazioni di controllo della configurazione a livello di parco risorse che si applicano a tutti i cluster membro. Per istruzioni, consulta Configurare le funzionalità della dashboard della postura di sicurezza di GKE a livello di parco risorse.
Esegui il deployment di un carico di lavoro di test
Esegui il deployment di un'applicazione di esempio che viola intenzionalmente gli standard di sicurezza dei pod.
Salva il seguente manifest come
misconfig-sample.yaml
:apiVersion: apps/v1 kind: Deployment metadata: name: helloweb labels: app: hello spec: selector: matchLabels: app: hello tier: web template: metadata: labels: app: hello tier: web spec: containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 ports: - containerPort: 8080 securityContext: runAsNonRoot: false resources: requests: cpu: 200m
Esegui il deployment dell'applicazione nel tuo cluster:
kubectl apply -f misconfig-sample.yaml
Se vuoi provare altre violazioni, modifica misconfig-sample.yaml
con la configurazione "errata" corrispondente.
Visualizza i risultati del controllo della configurazione e dell'azione
Il controllo iniziale richiede fino a 15 minuti per restituire i risultati. GKE mostra i risultati nella dashboard della security posture e aggiunge automaticamente voci ai log del cluster.
Visualizza risultati
Per visualizzare una panoramica dei problemi rilevati nei cluster e nei workload del progetto:
Vai alla pagina Postura di sicurezza nella console Google Cloud .
Fai clic sulla scheda Problemi.
Nel riquadro Filtra problemi, nella sezione Tipo di problema, seleziona la casella di controllo Configurazione.
Visualizzare i dettagli e i consigli relativi al problema
Per visualizzare informazioni dettagliate su un problema di configurazione specifico, fai clic sulla riga che contiene il problema.
Il riquadro Problema di configurazione mostra le seguenti informazioni:
- Descrizione:una descrizione del problema.
- Azione consigliata:una panoramica delle azioni che puoi intraprendere per risolvere il problema di configurazione. Questa sezione include i seguenti dettagli:
- Quali risorse richiedono la correzione
- Esempi di comandi che puoi eseguire per applicare la correzione alle risorse interessate
- Le istruzioni della console Google Cloud , se applicabili, per risolvere il problema
Visualizza i log per i problemi rilevati
GKE aggiunge voci al bucket di log _Default
in Logging
per ogni problema rilevato. Questi log vengono conservati solo per un periodo specifico. Per maggiori dettagli, vedi
Periodi di conservazione dei log.
Nella console Google Cloud , vai a Esplora log:
Vai a Esplora logNel campo Query, specifica la seguente query:
resource.type="k8s_cluster" jsonPayload.@type="type.googleapis.com/cloud.kubernetes.security.containersecurity_logging.Finding" jsonPayload.type="FINDING_TYPE_MISCONFIG"
Fai clic su Esegui query.
Per ricevere notifiche quando GKE aggiunge nuovi risultati a Logging, configura avvisi basati sui log per questa query. Per ulteriori informazioni, consulta Configurare gli avvisi basati su log.
Esegui la pulizia
Elimina il carico di lavoro di esempio di cui hai eseguito il deployment.
kubectl delete deployment helloweb
(Facoltativo) Elimina il cluster che hai utilizzato.
gcloud container clusters delete CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION
Disabilita il controllo della configurazione dei workload
Puoi disattivare il controllo della configurazione dei workload utilizzando gcloud CLI o la console Google Cloud .
gcloud
Esegui questo comando:
gcloud container clusters update CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --security-posture=disabled
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del tuo cluster.CONTROL_PLANE_LOCATION
: la posizione del control plane del cluster. Fornisci una regione per i cluster Standard e Autopilot regionali o una zona per i cluster Standard zonali.
Console
Vai alla pagina Postura di sicurezza nella console Google Cloud .
Vai a Postura di sicurezza- Fai clic sulla scheda Impostazioni.
- Nella sezione Cluster abilitati per il controllo della configurazione, fai clic su Seleziona cluster.
- Nella scheda Controllo abilitato, seleziona le caselle di controllo dei cluster da rimuovere.
- Fai clic su Disattiva controllo, quindi su Conferma per disattivare il controllo su questi cluster.
Limitazioni del controllo della configurazione dei workload
- I node pool Windows Server non sono supportati.
- Il controllo della configurazione dei workload non analizza i workload gestiti da GKE, ad esempio i workload nello spazio dei nomi
kube-system
. - Il controllo della configurazione del workload è disponibile solo per i cluster con meno di 1000 nodi.
La dashboard sulla postura di sicurezza supporta fino a 150.000 risultati di controllo della configurazione dei carichi di lavoro attivi per ogni cluster. Quando il numero di risultati per un cluster supera questo massimo, la dashboard della postura di sicurezza smette di mostrare i risultati della configurazione per quel cluster.
Per risolvere il problema, utilizza i log in Logging per identificare i problemi di configurazione e implementare i manifest aggiornati. Quando il numero di risultati di configurazione è inferiore a 150.000, la dashboard della postura di sicurezza inizia a mostrare i risultati per il cluster.
Passaggi successivi
- Scopri di più sulla dashboard della postura di sicurezza.
- Scopri di più su come funziona il controllo della configurazione.
- Scopri come proteggere i tuoi cluster in base ai consigli di Google.