Controlla automaticamente i workload per rilevare problemi di configurazione


Questa pagina mostra come eseguire automaticamente il controllo delle configurazioni dei carichi di lavoro per verificare la presenza di problemi di sicurezza e ricevere consigli utili per migliorare la security posture dei cluster Autopilot e standard di Google Kubernetes Engine (GKE). Il controllo della configurazione dei carichi di lavoro è una funzionalità della dashboard della strategia di sicurezza. Per ulteriori informazioni, consulta Informazioni sul controllo della configurazione dei workload.

Prezzi

La dashboard della posizione 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à, installa e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo gcloud components update.

Requisiti

  • Per ottenere le autorizzazioni necessarie per utilizzare il controllo della configurazione del carico di lavoro, chiedi all'amministratore di concederti il ruolo IAM Visualizzatore della posizione di sicurezza (roles/containersecurity.viewer) nel tuo progetto Google Cloud. 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 visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:

    Autorizzazioni obbligatorie

    Per utilizzare il controllo della configurazione del 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 carico di lavoro richiede GKE 1.21 e versioni successive.

Abilita il controllo della configurazione del workload

Il controllo della configurazione del carico di lavoro è 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.

Attivare il controllo della configurazione in un nuovo cluster

gcloud

Crea un nuovo cluster GKE utilizzando gcloud CLI:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --security-posture=standard

Sostituisci quanto segue:

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine
  2. Fai clic su Crea.
  3. Nella sezione GKE Autopilot, fai clic su Configura.
  4. Nel riquadro di navigazione, fai clic su Impostazioni avanzate. Se stai creando un cluster standard, fai clic su Sicurezza.
  5. Nella sezione Sicurezza, seleziona la casella di controllo Controllo della configurazione.
  6. Configura altre opzioni per il cluster e fai clic su Crea quando è tutto pronto.

Attivare il controllo della configurazione su un cluster esistente

gcloud

Aggiorna il cluster:

gcloud container clusters update CLUSTER_NAME \
    --location=LOCATION \
    --security-posture=standard

Sostituisci quanto segue:

Console

  1. Vai alla pagina Posizione di sicurezza nella console Google Cloud.

    Vai a Postura di sicurezza
  2. Fai clic sulla scheda Impostazioni.
  3. Nella sezione Cluster abilitati per il controllo della configurazione, fai clic su Seleziona cluster.
  4. Seleziona le caselle di controllo per i cluster da aggiungere.
  5. Nel menu a discesa Seleziona azione, seleziona Imposta su Di base.
  6. Fai clic su Applica.

Se utilizzi la versione Enterprise di Google Kubernetes Engine (GKE) per gestire parchi risorse di cluster, 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.

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.

  1. 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
    
  2. 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 "non valida" corrispondente.

Visualizza e gestisci i risultati del controllo della configurazione

Il controllo iniziale può richiedere fino a 15 minuti per restituire i risultati. GKE visualizza 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 carichi di lavoro del progetto:

  1. Vai alla pagina Posizione di sicurezza nella console Google Cloud.

    Vai a Postura di sicurezza

  2. Fai clic sulla scheda Problemi.

  3. 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 dubbio.
  • 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 relativi ai problemi rilevati

GKE aggiunge voci al bucket dei log _Default in Logging per ogni problema rilevato. Questi log vengono conservati solo per un periodo specifico. Per maggiori dettagli, consulta Periodi di conservazione dei log.

  1. Nella console Google Cloud, vai a Esplora log:

    Vai a Esplora log
  2. Nel 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"
  3. Fai clic su Esegui query.

Per ricevere notifiche quando GKE aggiunge nuovi risultati a Logging, configura gli avvisi basati su log per questa query. Per ulteriori informazioni, consulta Configurare gli avvisi basati su log.

Esegui la pulizia

  1. Elimina il carico di lavoro di esempio di cui hai eseguito il deployment.

    kubectl delete deployment helloweb
    
  2. Se vuoi, elimina il cluster che hai utilizzato.

    gcloud container clusters delete CLUSTER_NAME \
        --region=COMPUTE_REGION
    

Disattivare il controllo della configurazione dei workload

Puoi disattivare il controllo della configurazione dei carichi di lavoro utilizzando la gcloud CLI o la console Google Cloud.

gcloud

Esegui questo comando:

gcloud container clusters update CLUSTER_NAME \
    --region=LOCATION \
    --security-posture=disabled

Sostituisci quanto segue:

Console

  1. Vai alla pagina Posizione di sicurezza nella console Google Cloud.

    Vai a Postura di sicurezza
  2. Fai clic sulla scheda Impostazioni.
  3. Nella sezione Cluster abilitati per il controllo della configurazione, fai clic su Seleziona cluster.
  4. Nella scheda Controllo abilitato, seleziona le caselle di controllo per i cluster da rimuovere.
  5. 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 carichi di lavoro non esegue la scansione dei carichi di lavoro gestiti da GKE, ad esempio i carichi di lavoro nello spazio dei nomi kube-system.
  • Il controllo della configurazione del carico di lavoro è disponibile solo per i cluster con meno di 1000 nodi.
  • La dashboard sulla postura di sicurezza supporta fino a 150.000 risultati attivi dell'audit della configurazione del carico di lavoro per ogni cluster. Quando il numero di risultati per un cluster supera questo valore massimo, la dashboard della postura di sicurezza smette di mostrare i risultati di configurazione per quel cluster.

    Per risolvere il problema, utilizza i log in Log 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 posizione di sicurezza inizia a mostrare i risultati per il cluster.

Passaggi successivi