Génération de rapports de conformité CIS à partir des nœuds Kubernetes à l’aide de kubectl debug - Amazon EKS

Aidez à améliorer cette page

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Génération de rapports de conformité CIS à partir des nœuds Kubernetes à l’aide de kubectl debug

Cette rubrique explique comment générer des rapports de conformité CIS (Center for Internet Security) pour les nœuds Amazon EKS à l’aide de la commande kubectl debug. Cette commande permet de créer temporairement un conteneur de débogage sur un nœud Kubernetes et d’exécuter les vérifications CIS à l’aide de l’outil apiclient. L’outil apiclient fait partie de l’OS Bottlerocket, utilisé par les nœuds du mode automatique EKS.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Accès à un cluster Amazon EKS avec la commande kubectl configurér (la version installée doit être au minimum v1.32.0 ; tapez kubectl version pour vérifier).

  • Autorisations IAM appropriées pour déboguer les nœuds.

  • Profil valide autorisant les opérations de débogage (par exemple, sysadmin).

Pour plus d’informations sur l’utilisation de profils de débogage avec kubectl, consultez la section Débogage d’un pod ou d’un nœud lors de l’application d’un profil dans la documentation de Kubernetes.

Procédure

  1. Identifiez l’ID d’instance AWS du nœud sur lequel vous souhaitez exécuter le rapport. Utilisez la commande suivante pour afficher la liste des nœuds du cluster. L’ID d’instance se trouve dans la colonne du nom et commence par i- :

    kubectl get nodes
    NAME                  STATUS   ROLES    AGE   VERSION
    i-0ea0ba0f8ef9ad609   Ready    <none>   62s   v1.30.10-eks-1a9dacd
  2. Exécutez la commande ci-dessous en remplaçant <instance-id> par l’ID d’instance du nœud ciblé :

    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"

    Les composants de cette commande sont les suivants :

    • kubectl debug node/<instance-id> : crée une session de débogage sur l’ID d’instance EC2 spécifié.

    • -it : alloue un TTY (shell de ligne de commande) et maintient stdin ouvert pour une utilisation interactive.

    • --profile=sysadmin : utilise le profil kubectl spécifié avec les autorisations appropriées.

    • --image=public.ecr.aws/amazonlinux/amazonlinux:2023 : utilise amazonlinux:2023 comme image de conteneur pour le débogage.

    • bash -c "…​" : exécute les commandes suivantes dans un shell bash :

      • yum install -q -y util-linux-core : installe discrètement le package d’utilitaires requis.

      • nsenter -t 1 -m : exécute nsenter pour accéder à l’espace de noms du processus hôte (PID 1).

      • apiclient report cis --level 1 --format text : exécute le rapport de conformité CIS au niveau 1, avec un résultat au format texte.

  3. Passez en revue le résultat au format texte du rapport.

Interprétation du résultat

La commande génère un rapport au format texte indiquant l’état de conformité des différents contrôles CIS. Le résultat comprend :

  • Identifiants de contrôle CIS individuels

  • Description de chaque contrôle

  • État Réussite, Échec ou Ignoré pour chaque vérification

  • Détails expliquant les éventuels problèmes de conformité

Voici un exemple de résultat du rapport exécuté sur une instance de 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

Pour plus d’informations sur le référentiel, consultez Référentiel Kubernetes dans la documentation du Center for Internet Security (CIS).