Questa pagina mostra come eseguire automaticamente il controllo delle configurazioni dei workload per problemi di sicurezza e ottenere consigli pratici per migliorare la postura di sicurezza dei cluster Google Kubernetes Engine (GKE) Autopilot e Standard. Questa guida ti illustra come abilitare il controllo della configurazione dei workload, eseguire il deployment di un workload di test, visualizzare e gestire i risultati del controllo della configurazione e disabilitare il controllo della configurazione dei workload. Vengono inoltre illustrati i prezzi, i requisiti e le limitazioni del controllo della configurazione dei workload.
Questa pagina è rivolta agli specialisti della sicurezza che monitorano la sicurezza dei cluster GKE e vogliono saperne di più su come eseguire automaticamente il controllo delle configurazioni dei workload nei cluster GKE Autopilot e Standard. Per saperne di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei Google Cloud contenuti, consulta Ruoli e attività comuni degli utenti GKE.
Prima di leggere questa pagina, poiché il controllo della configurazione dei workload è una funzionalità della dashboard della postura di sicurezza, assicurati di conoscere i seguenti concetti:
- Panoramica generale della dashboard della postura di sicurezza
- Informazioni sul controllo della configurazione dei workload
Prezzi
La dashboard della 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 attività:
- Abilita l'API Google Kubernetes Engine. Abilita 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 il
gcloud components updatecomando. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
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, vedi Creare un cluster Autopilot.
Requisiti
-
Per ottenere le autorizzazioni necessarie per utilizzare il controllo della configurazione dei workload, chiedi all'amministratore di concederti il ruolo IAM Visualizzatore della postura di sicurezza (
roles/containersecurity.viewer) nel tuo Google Cloud progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.Questo ruolo predefinito contiene le autorizzazioni necessarie per utilizzare il controllo della configurazione dei workload. 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 dei workload richiede GKE versione 1.21 e successive.
Abilitare il controllo della configurazione dei workload
Il controllo della configurazione dei workload è abilitato per impostazione predefinita nei nuovi cluster Autopilot e Standard che eseguono la versione 1.27 e successive. Puoi anche abilitare manualmente questa funzionalità utilizzando gcloud CLI o la Google Cloud console.
Abilitare il controllo della configurazione in 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 località 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 Google Cloud console.
Vai a Postura di sicurezza- Fai clic sulla scheda Impostazioni.
- Nella sezione Cluster con controllo della configurazione abilitato, fai clic su Seleziona cluster.
- Seleziona le caselle di controllo per i cluster che vuoi aggiungere.
- Nel menu a discesa Seleziona azione, seleziona Imposta su Base.
- Fai clic su Applica.
Puoi anche configurare le impostazioni di controllo della configurazione a livello di parco risorse che si applicano a tutti i cluster membri. Per istruzioni, consulta Configurare le funzionalità della dashboard della postura di sicurezza di GKE a livello di parco risorse.
Eseguire il deployment di un workload 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: 200mEsegui 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.
Visualizzare e gestire i risultati del controllo della configurazione
Il controllo iniziale richiede fino a 15 minuti per restituire i risultati. GKE visualizza i risultati nella dashboard della postura di sicurezza e aggiunge automaticamente le voci ai log del cluster.
Visualizzare risultati
Per visualizzare una panoramica dei problemi rilevati nei cluster e nei workload del progetto:
Vai alla pagina Postura di sicurezza nella Google Cloud console.
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 ai problemi
Per visualizzare informazioni dettagliate su un problema di configurazione specifico, fai clic sulla riga contenente il problema.
Il riquadro Problema di configurazione mostra le seguenti informazioni:
- Descrizione: una descrizione del problema.
- Comportamento consigliato: una panoramica delle azioni che puoi intraprendere per risolvere il problema di configurazione. Questa sezione include i seguenti dettagli:
- Quali risorse richiedono la correzione
- Comandi di esempio che puoi eseguire per applicare la correzione alle risorse interessate
- Istruzioni della Google Cloud console, se applicabili, per risolvere il problema
Visualizzare 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 di tempo specifico. Per maggiori dettagli, consulta
Periodi di conservazione dei log.
Nella Google Cloud console, 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 su log per questa query. Per saperne di più, consulta Configurare gli avvisi basati su log.
Libera spazio
Elimina il workload 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
Disabilitare il controllo della configurazione dei workload
Puoi disabilitare il controllo della configurazione dei workload utilizzando gcloud CLI o la Google Cloud console.
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 località 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 Google Cloud console.
Vai a Postura di sicurezza- Fai clic sulla scheda Impostazioni.
- Nella sezione Cluster con controllo della configurazione abilitato, fai clic su Seleziona cluster.
- Nella scheda Controllo abilitato, seleziona le caselle di controllo per i cluster che vuoi rimuovere.
- Fai clic su Disabilita controllo, quindi su Conferma per disabilitare 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 esegue la scansione dei workload gestiti da GKE, ad esempio i workload nello spazio dei nomi
kube-system. - Il controllo della configurazione dei workload è disponibile solo per i cluster con meno di 1000 nodi.
La dashboard della postura di sicurezza supporta fino a 150.000 risultati di controllo della configurazione dei workload 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 ed eseguire il deployment dei manifest aggiornati. Quando il numero di risultati della configurazione è inferiore a 150.000, la dashboard della postura di sicurezza inizia a visualizzare i risultati per il cluster.
Per ogni cluster, il database della postura di sicurezza di GKE tiene traccia di tutti gli oggetti workload di primo livello nell'API Kubernetes. Ad esempio, un deployment che gestisce 20 repliche viene monitorato come un singolo oggetto. Anche un pod statico è un singolo oggetto.
Il database può elaborare fino a 5000 operazioni di eliminazione e creazione di oggetti in una singola transazione. Ad esempio, l'eliminazione di un deployment è una singola operazione e la ricreazione di un pod statico è costituita da due operazioni (eliminazione e creazione). Se il numero di operazioni supera 5000, la dashboard della postura di sicurezza smette di mostrare i risultati per quel cluster.
Se la dashboard non viene aggiornata e di recente hai scalato il numero di workload di primo livello nel cluster, puoi creare una richiesta di assistenza con l'assistenza clienti Google Cloud per reimpostare lo stato del database.
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 cluster in base ai consigli di Google.