Auditer automatiquement les charges de travail pour détecter les problèmes de configuration


Cette page explique comment auditer automatiquement les configurations de vos charges de travail pour détecter les problèmes de sécurité et obtenir des recommandations exploitables pour améliorer le niveau de sécurité de vos clusters Autopilot et Standard Google Kubernetes Engine (GKE). L'audit de la configuration de la charge de travail est une fonctionnalité du tableau de bord de stratégie de sécurité. Pour en savoir plus, consultez la page À propos de l'audit de la configuration des charges de travail.

Tarifs

Le tableau de bord de stratégie de sécurité est proposé sans frais dans GKE via l'API Container Security.

Les entrées ajoutées à Cloud Logging sont soumises aux tarifs de Cloud Logging.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande gcloud components update.

Exigences

  • Afin d'obtenir les autorisations nécessaires pour utiliser l'audit de la configuration des charges de travail, demandez à votre administrateur de vous accorder le rôle IAM Lecteur de stratégie de sécurité (roles/containersecurity.viewer) sur votre projet Google Cloud. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

    Ce rôle prédéfini contient les autorisations requises pour utiliser l'audit de la configuration des charges de travail. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

    Autorisations requises

    Les autorisations suivantes sont requises pour utiliser l'audit de la configuration des charges de travail :

    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • containersecurity.locations.list
    • containersecurity.locations.get
    • containersecurity.clusterSummaries.list
    • containersecurity.findings.list

    Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

  • L'audit de la configuration des charges de travail nécessite GKE en version 1.21 ou ultérieure.

Activer l'audit de la configuration des charges de travail

L'audit de la configuration de la charge de travail est activé par défaut dans les nouveaux clusters Autopilot et Standard exécutant la version 1.27 ou ultérieure. Vous pouvez également l'activer manuellement à l'aide de gcloud CLI ou de la console Google Cloud.

Activer l'audit de configuration sur un nouveau cluster

gcloud

Créez un cluster GKE à l'aide de la CLI gcloud :

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

Remplacez les éléments suivants :

Console

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine
  2. Cliquez sur Créer.
  3. Dans la section GKE Autopilot, cliquez sur Configurer.
  4. Dans le volet de navigation, cliquez sur Paramètres avancés. Si vous créez un cluster standard, cliquez plutôt sur Sécurité.
  5. Dans la section Sécurité, cochez la case Audit de configuration.
  6. Configurez les autres options de votre cluster, puis cliquez sur Créer lorsque vous êtes prêt.

Activer l'audit de configuration sur un cluster existant

gcloud

Mettez à jour le cluster :

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

Remplacez les éléments suivants :

Console

  1. Accédez à la page Stratégie de sécurité dans la console Google Cloud.

    Accédez à la stratégie de sécurité
  2. Cliquez sur l'onglet Paramètres.
  3. Dans la section Clusters activés pour l'audit de configuration, cliquez sur Sélectionner des clusters.
  4. Cochez les cases des clusters que vous souhaitez ajouter.
  5. Dans le menu déroulant Sélectionner une action, sélectionnez Définir sur "Basique".
  6. Cliquez sur Appliquer.

Si vous gérez les parcs de clusters à l'aide de l'édition Enterprise Google Kubernetes Engine (GKE), vous pouvez également configurer les paramètres d'audit des failles au niveau du parc qui s'appliquent à tous les clusters membres. Pour obtenir des instructions, consultez la page Configurer les fonctionnalités du tableau de bord de stratégie de sécurité GKE au niveau du parc.

Déployer une charge de travail de test

Déployer un exemple d'application qui enfreint intentionnellement les normes de sécurité des pods

  1. Enregistrez le manifeste suivant sous le nom 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. Déployez l'application sur votre cluster :

    kubectl apply -f misconfig-sample.yaml
    

Si vous souhaitez essayer d'autres violations, modifiez misconfig-sample.yaml avec la configuration "bad" correspondante.

Afficher les résultats de l'audit de configuration et prendre des mesures en conséquence

L'audit initial peut prendre jusqu'à 15 minutes pour renvoyer des résultats. GKE affiche les résultats dans le tableau de bord de la stratégie de sécurité et ajoute automatiquement des entrées aux journaux de cluster.

Afficher les résultats

Pour afficher une vue d'ensemble des problèmes détectés sur les clusters et les charges de travail de votre projet, procédez comme suit :

  1. Accédez à la page Stratégie de sécurité dans la console Google Cloud.

    Accédez à la stratégie de sécurité

  2. Cliquez sur l'onglet Problèmes.

  3. Dans le volet Filtrer les problèmes de la section Type de problème, cochez la case Configuration.

Afficher les détails et les recommandations

Pour afficher des informations détaillées sur un problème de configuration spécifique, cliquez sur la ligne contenant ce problème.

Le volet Problème de configuration affiche les informations suivantes :

  • Description : description du problème
  • Action recommandée : présentation des actions que vous pouvez effectuer pour résoudre le problème de configuration. Cette section fournit les informations suivantes :
    • Quelles ressources doivent être corrigées
    • Exemples de commandes que vous pouvez exécuter pour appliquer le correctif aux ressources concernées
    • Des instructions de la console Google Cloud, le cas échéant, pour résoudre le problème

Afficher les journaux pour les problèmes détectés

GKE ajoute des entrées à Logging pour chaque problème détecté.

  1. Accédez à l'explorateur de journaux dans la console Google Cloud.

    Accéder à l'explorateur de journaux

  2. Dans le champ Requête, saisissez la requête suivante :

    resource.type="k8s_cluster"
    jsonPayload.@type="type.googleapis.com/cloud.kubernetes.security.containersecurity_logging.Finding"
    jsonPayload.type="FINDING_TYPE_MISCONFIG"
    
  3. Cliquez sur Exécuter la requête.

Pour recevoir des notifications lorsque GKE ajoute de nouvelles découvertes à Logging, configurez des alertes basées sur les journaux pour cette requête. Pour en savoir plus, consultez la page Gérer les alertes basées sur les journaux.

Effectuer un nettoyage

  1. Supprimez l'exemple de charge de travail que vous avez déployé.

    kubectl delete deployment helloweb
    
  2. Vous pouvez également supprimer le cluster que vous avez utilisé.

    gcloud container clusters delete CLUSTER_NAME \
        --region=COMPUTE_REGION
    

Désactiver l'audit de configuration des charges de travail

Vous pouvez désactiver l'audit de configuration de la charge de travail à l'aide de gcloud CLI ou de la console Google Cloud.

gcloud

Exécutez la commande ci-dessous.

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

Remplacez les éléments suivants :

Console

  1. Accédez à la page Stratégie de sécurité dans la console Google Cloud.

    Accédez à la stratégie de sécurité
  2. Cliquez sur l'onglet Paramètres.
  3. Dans la section Clusters activés pour l'audit de configuration, cliquez sur Sélectionner des clusters.
  4. Dans l'onglet Audit activé, cochez les cases correspondant aux clusters que vous souhaitez retirer.
  5. Cliquez sur Désactiver l'audit, puis sur Confirmer pour désactiver l'audit sur ces clusters.

Limites de l'audit de configuration de la charge de travail

  • Les pools de nœuds Windows Server ne sont pas acceptés.
  • L'audit de la configuration des charges de travail n'analyse pas les charges de travail gérées par GKE, telles que les charges de travail de l'espace de noms kube-system.
  • L'audit de la configuration de la charge de travail n'est disponible que pour les clusters de moins de 1 000 nœuds.
  • Le tableau de bord de stratégie de sécurité accepte jusqu'à 150 000 résultats d'audit de configuration de charge de travail active pour chaque cluster. Lorsque le nombre de résultats pour un cluster dépasse ce maximum, le tableau de bord de stratégie de sécurité cesse d'afficher les résultats de configuration pour ce cluster.

    Pour résoudre ce problème, utilisez les journaux dans Logging pour identifier les problèmes de configuration et déployer les fichiers manifestes mis à jour. Lorsque le nombre de résultats de configuration est inférieur à 150 000, le tableau de bord de stratégie de sécurité commence à afficher les résultats pour le cluster.

Étapes suivantes