Generare report di conformità CIS dai nodi Kubernetes utilizzando kubectl debug - Amazon EKS

Contribuisci a migliorare questa pagina

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Generare report di conformità CIS dai nodi Kubernetes utilizzando kubectl debug

Questo argomento descrive come generare report di conformità CIS (Center for Internet Security) per i nodi Amazon EKS utilizzando il comando kubectl debug. Il comando ti consente di creare temporaneamente un container di debug su un nodo di Kubernetes ed eseguire controlli di conformità CIS utilizzando lo strumento apiclient. Lo strumento apiclient fa parte di Bottlerocket OS, il sistema operativo utilizzato dai nodi di EKS Auto Mode.

Prerequisiti

Prima di iniziare, assicurati di disporre di:

  • Accesso a un cluster Amazon EKS con kubectl configurato (la versione deve essere almeno v1.32.0; digitare kubectl version per verificare).

  • Le autorizzazioni IAM appropriate per il debug dei nodi.

  • Un profilo valido che consente operazioni di debug (ad esempio, sysadmin).

Per ulteriori informazioni sull’utilizzo dei profili di debug con kubectl, consultare Debugging a Pod or Node while applying a profile nella documentazione di Kubernetes.

Procedura

  1. Determina l’ID di istanza AWS del nodo su cui desideri eseguire il report. Utilizzare il seguente comando per elencare tutti i nodi nel cluster. L’ID dell’istanza si trova nella colonna del nome e inizia con i-:

    kubectl get nodes
    NAME                  STATUS   ROLES    AGE   VERSION
    i-0ea0ba0f8ef9ad609   Ready    <none>   62s   v1.30.10-eks-1a9dacd
  2. Esegui il comando seguente, sostituendo <instance-id> con l’ID di istanza del nodo su cui si desidera eseguire la query:

    kubectl debug node/<instance-id> -it --profile=sysadmin --image=public.ecr.aws/amazonlinux/amazonlinux:2023 -- bash -c "yum install -q -y util-linux-core; nsenter -t 1 -m apiclient report cis --level 1 --format text"

    I componenti di questo comando includono:

    • kubectl debug node/<instance-id>: crea una sessione di debug sull’ID di istanza EC2 specificato.

    • -it: assegna un TTY (shell a riga di comando) e mantiene aperto stdin per un utilizzo interattivo.

    • --profile=sysadmin: utilizza il profilo kubectl specificato con le autorizzazioni appropriate.

    • --image=public.ecr.aws/amazonlinux/amazonlinux:2023: utilizza amazonlinux:2023 come immagine del container per il debug.

    • bash -c "…​": esegue i seguenti comandi in una shell bash:

      • yum install -q -y util-linux-core: installa in background il pacchetto di utilità richiesto.

      • nsenter -t 1 -m: esegue nsenter per inserire il namespace del processo host (PID 1).

      • apiclient report cis --level 1 --format text: esegue il report di conformità CIS a livello 1 con output di testo.

  3. Esaminare l’output del testo del report.

Interpretazione dell’output

Il comando genera un report basato su testo che mostra lo stato di conformità di vari controlli CIS. L’output include:

  • ID di controllo CIS individuali

  • Descrizione di ciascun controllo

  • Lo stato Pass, Fail o Skip per ogni controllo

  • Dettagli che spiegano eventuali problemi di conformità

Ecco un esempio di output del report eseguito su un’istanza Bottlerocket:

Benchmark name:  CIS Bottlerocket Benchmark
Version:         v1.0.0
Reference:       https://www.cisecurity.org/benchmark/bottlerocket
Benchmark level: 1
Start time:      2025-04-11T01:40:39.055623436Z

[SKIP] 1.2.1     Ensure software update repositories are configured (Manual)
[PASS] 1.3.1     Ensure dm-verity is configured (Automatic)[PASS] 1.4.1     Ensure setuid programs do not create core dumps (Automatic)
[PASS] 1.4.2     Ensure address space layout randomization (ASLR) is enabled (Automatic)
[PASS] 1.4.3     Ensure unprivileged eBPF is disabled (Automatic)
[PASS] 1.5.1     Ensure SELinux is configured (Automatic)
[SKIP] 1.6       Ensure updates, patches, and additional security software are installed (Manual)
[PASS] 2.1.1.1   Ensure chrony is configured (Automatic)
[PASS] 3.2.5     Ensure broadcast ICMP requests are ignored (Automatic)
[PASS] 3.2.6     Ensure bogus ICMP responses are ignored (Automatic)
[PASS] 3.2.7     Ensure TCP SYN Cookies is enabled (Automatic)
[SKIP] 3.4.1.3   Ensure IPv4 outbound and established connections are configured (Manual)
[SKIP] 3.4.2.3   Ensure IPv6 outbound and established connections are configured (Manual)
[PASS] 4.1.1.1   Ensure journald is configured to write logs to persistent disk (Automatic)
[PASS] 4.1.2     Ensure permissions on journal files are configured (Automatic)

Passed:          11
Failed:          0
Skipped:         4
Total checks:    15

Per informazioni sul benchmark, consultare Kubernetes Benchmark dal Center for Internet Security (CIS).