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
.
Activez l'API Container Security.
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 section Gérer les accès.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 :
CLUSTER_NAME
: nom de votre nouveau clusterLOCATION
: emplacement Compute Engine de votre cluster.
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Accéder à Google Kubernetes Engine- Cliquez sur Créer.
- Dans la section GKE Autopilot, cliquez sur Configurer.
- Dans le volet de navigation, cliquez sur Paramètres avancés. Si vous créez un cluster standard, cliquez plutôt sur Sécurité.
- Dans la section Sécurité, cochez la case Audit de configuration.
- 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 :
CLUSTER_NAME
: nom du clusterLOCATION
: emplacement Compute Engine du cluster
Console
Accédez à la page Stratégie de sécurité dans la console Google Cloud.
Accédez à la stratégie de sécurité- Cliquez sur l'onglet Paramètres.
- Dans la section Clusters activés pour l'audit de configuration, cliquez sur Sélectionner des clusters.
- Cochez les cases des clusters que vous souhaitez ajouter.
- Dans le menu déroulant Sélectionner une action, sélectionnez Définir sur "Basique".
- 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
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
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 :
Accédez à la page Stratégie de sécurité dans la console Google Cloud.
Cliquez sur l'onglet Problèmes.
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é.
Accédez à l'explorateur de journaux dans la console Google Cloud.
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"
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
Supprimez l'exemple de charge de travail que vous avez déployé.
kubectl delete deployment helloweb
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 :
CLUSTER_NAME
: nom du clusterLOCATION
: région ou zone Compute Engine du cluster.
Console
Accédez à la page Stratégie de sécurité dans la console Google Cloud.
Accédez à la stratégie de sécurité- Cliquez sur l'onglet Paramètres.
- Dans la section Clusters activés pour l'audit de configuration, cliquez sur Sélectionner des clusters.
- Dans l'onglet Audit activé, cochez les cases correspondant aux clusters que vous souhaitez retirer.
- 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
- Découvrez le tableau de bord de stratégie de sécurité.
- Apprenez-en plus sur le fonctionnement de l'audit de la configuration
- Découvrez comment sécuriser vos clusters en fonction des recommandations de Google.