Cette page explique comment utiliser la fonctionnalité Nœuds GKE protégés. Les nœuds GKE protégés offrent une identité et une intégrité de nœud solides et vérifiables pour renforcer la sécurité des nœuds Google Kubernetes Engine (GKE).
Pour les clusters GKE Autopilot, la fonctionnalité Nœuds GKE protégés est activée par défaut et ne peut pas être remplacée. Pour les clusters GKE Standard, la fonctionnalité Nœuds GKE protégés est activée par défaut, mais peut être remplacée.
À propos des nœuds GKE protégés
Les nœuds GKE protégés s'appuient sur les VM protégées Compute Engine. Sans les nœuds GKE protégés, un pirate informatique peut exploiter une faille sur un pod afin d'exfiltrer les identifiants d'amorçage et usurper l'identité des nœuds de votre cluster, ce qui lui permet ainsi d'accéder aux secrets du cluster. Lorsque les nœuds GKE protégés sont activés, le plan de contrôle GKE vérifie de manière cryptographique que :
- chaque nœud de votre cluster est une machine virtuelle exécutée dans un centre de données de Google ;
- chaque nœud fait partie du groupe d'instances géré provisionné pour le cluster ;
- le kubelet reçoit un certificat pour le nœud sur lequel il s'exécute.
Cela limite la capacité d'un pirate informatique à usurper l'identité d'un nœud de votre cluster, même s'il parvient à exfiltrer les identifiants d'amorçage du nœud.
Les nœuds du plan de contrôle du cluster GKE utilisent toujours les nœuds GKE protégés, même si vous désactivez la fonctionnalité sur votre cluster. L'activation ou la désactivation des nœuds GKE protégés n'affecte que le fait que les nœuds de calcul qui exécutent vos charges de travail utilisent cette fonctionnalité ou non.
Tarifs
L'exécution de nœuds GKE protégés n'entraîne aucun coût supplémentaire. Toutefois, les nœuds GKE protégés génèrent environ 0,5 ko de journaux supplémentaires au démarrage comparés aux nœuds standards. Pour en savoir plus, consultez la page 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
.
Activer les nœuds GKE protégés dans un nouveau cluster
Vous pouvez créer un cluster avec des nœuds GKE protégés à l'aide de gcloud CLI ou de la console Google Cloud .
gcloud
Lors de la création d'un cluster, spécifiez l'option --enable-shielded-nodes
:
gcloud container clusters create CLUSTER_NAME \
--enable-shielded-nodes
Console
Accédez à la page Google Kubernetes Engine dans la console Google Cloud .
Cliquez sur add_box Créer.
Dans le volet de navigation, cliquez sur Sécurité sous Cluster.
Cochez la case Activer les nœuds GKE protégés.
Configurez le cluster selon vos besoins.
Cliquez sur Créer.
Pour en savoir plus sur la création de clusters, consultez la page Créer un cluster.
Activer les nœuds GKE protégés dans un cluster existant
Vous pouvez activer les nœuds GKE protégés dans un cluster existant à l'aide de Google Cloud CLI ou de la console Google Cloud .
Comment GKE active les nœuds GKE protégés
Après avoir activé les nœuds GKE protégés, les nœuds de calcul sont recréés en tant que VM protégées. Les nœuds de cluster sont recréés de façon progressive afin de minimiser les temps d'arrêt.
Une fois que vous avez activé les nœuds GKE protégés, GKE met à jour votre cluster en procédant comme suit :
- GKE recrée immédiatement le plan de contrôle, en ignorant la disponibilité pour maintenance.
- GKE recrée les nœuds de calcul en tant que VM protégées, en respectant la disponibilité de la maintenance. GKE utilise les mises à niveau de surutilisation pour mettre à jour chacun des pools de nœuds. Cela dépend de la disponibilité des ressources. La désactivation des mises à niveau automatiques des nœuds n'empêche pas ce changement.
Pour en savoir plus sur cette modification spécifique, recherchez la ligne correspondante dans le tableau Modifications manuelles qui recréent les nœuds à l'aide d'une stratégie de mise à niveau des nœuds et qui respectent les règles de maintenance. Pour en savoir plus sur les mises à jour des nœuds, consultez Planifier les interruptions liées aux mises à jour des nœuds.
Activer les nœuds GKE protégés
gcloud
Lors de la mise à jour du cluster, spécifiez l'option --enable-shielded-nodes
:
gcloud container clusters update CLUSTER_NAME \
--enable-shielded-nodes
Console
Accédez à la page Google Kubernetes Engine dans la console Google Cloud .
Cliquez sur le nom du cluster que vous souhaitez modifier.
Sous Sécurité, dans le champ Nœuds GKE protégés, cliquez sur edit Modifier les nœuds GKE protégés.
Cochez la case Activer les nœuds GKE protégés.
Cliquez sur Save Changes (Enregistrer les modifications).
Vérifier que les nœuds GKE protégés sont activés
Vérifiez que votre cluster utilise des nœuds GKE protégés à l'aide de Google Cloud CLI ou de la console Google Cloud .
gcloud
Décrivez le cluster :
gcloud container clusters describe CLUSTER_NAME
Si les nœuds GKE protégés sont activés, le résultat de la commande inclut les lignes suivantes :
shieldedNodes:
enabled: true
Console
Pour vérifier qu'un cluster utilise des nœuds GKE protégés :
Accédez à la page Google Kubernetes Engine dans la console Google Cloud .
Cliquez sur le nom du cluster que vous souhaitez inspecter.
Sous Sécurité, dans le champ Nœuds GKE protégés, vérifiez que les nœuds GKE protégés sont bien activés.
Vous pouvez également surveiller l'intégrité des VM protégées sous-jacentes de vos nœuds. Pour en savoir plus sur cette procédure, reportez-vous à la section Surveiller l'intégrité sur des instances de VM protégées.
Désactiver des nœuds GKE protégés
Vous pouvez désactiver les nœuds GKE protégés à l'aide de Google Cloud CLI ou de la console Google Cloud .
Comment GKE désactive les nœuds GKE protégés
Une fois que vous avez désactivé les nœuds GKE protégés, GKE met à jour votre cluster en procédant comme suit :
- GKE recrée immédiatement le plan de contrôle, en ignorant la disponibilité pour maintenance.
- GKE recrée les nœuds de calcul en tant que VM non protégées, en respectant la disponibilité de la maintenance. GKE utilise les mises à niveau de surutilisation pour mettre à jour chacun des pools de nœuds. Cela dépend de la disponibilité des ressources. La désactivation des mises à niveau automatiques des nœuds n'empêche pas ce changement.
Pour en savoir plus sur cette modification spécifique, recherchez la ligne correspondante dans le tableau Modifications manuelles qui recréent les nœuds à l'aide d'une stratégie de mise à niveau des nœuds et qui respectent les règles de maintenance. Pour en savoir plus sur les mises à jour des nœuds, consultez Planifier les interruptions liées aux mises à jour des nœuds.
Désactiver les nœuds GKE protégés
gcloud
Lors de la mise à jour du cluster, spécifiez l'option --no-enable-shielded-nodes
:
gcloud container clusters update CLUSTER_NAME \
--no-enable-shielded-nodes
Console
Accédez à la page Google Kubernetes Engine dans la console Google Cloud .
Cliquez sur le nom du cluster que vous souhaitez modifier.
Sous Sécurité, dans le champ Nœuds GKE protégés, cliquez sur edit Modifier les nœuds GKE protégés.
Décochez la case Activer les nœuds GKE protégés.
Cliquez sur Enregistrer les modifications.
Intégrité des nœuds
Vous pouvez éventuellement configurer des vérifications de l'intégrité des nœuds sur les pools de nœuds pour améliorer la protection du rootkit et du bootkit de vos nœuds. Les nœuds GKE protégés, le démarrage sécurisé et la surveillance de l'intégrité sont des fonctionnalités indépendantes qui peuvent être activées ou désactivées individuellement.
Démarrage sécurisé
Le démarrage sécurisé est un paramètre de pool de nœuds qui authentifie les composants de démarrage de vos VM de nœuds, comme le noyau et le chargeur de démarrage, pendant le processus de démarrage. Le démarrage sécurisé est désactivé par défaut sur les pools de nœuds.
Avant d'activer le démarrage sécurisé dans vos pools de nœuds, tenez compte des points suivants :
- L'activation du démarrage sécurisé dans les nœuds Ubuntu empêche le chargement des modules de noyau tiers non signés dans ces nœuds.
- L'activation du démarrage sécurisé dans les nœuds Container-Optimized OS n'a aucun effet sur le chargement des modules de noyau, car les images de nœud Container-Optimized OS contrôlent la capacité de chargement des modules de noyau tiers indépendamment du démarrage sécurisé.
Pour activer le démarrage sécurisé, utilisez Google Cloud CLI ou la console Google Cloud .
gcloud
Pour activer le démarrage sécurisé lors de la création d'un cluster, procédez comme suit :
gcloud container clusters create CLUSTER_NAME \
--shielded-secure-boot
Pour activer le démarrage sécurisé lors de la création d'un pool de nœuds, procédez comme suit :
gcloud container node-pools create POOL_NAME \
--shielded-secure-boot
Le démarrage sécurisé est désactivé par défaut. Vous pouvez le désactiver explicitement lors de la création d'un cluster ou d'un pool de nœuds à l'aide de l'option --no-shielded-secure-boot
.
Console
Pour activer le démarrage sécurisé lors de la création d'un pool de nœuds, procédez comme suit :
Accédez à la page Google Kubernetes Engine dans la console Google Cloud .
Cliquez sur le nom du cluster que vous souhaitez modifier.
Cliquez sur add_box Ajouter un pool de nœuds.
Dans le menu de navigation, cliquez sur Sécurité.
Sous Options protégées, cochez la case Activer le démarrage sécurisé.
Cliquez sur Créer.
Surveillance de l'intégrité
La surveillance de l'intégrité est un paramètre de pool de nœuds activé par défaut sur GKE. Vous pouvez désactiver la surveillance de l'intégrité à l'aide de Google Cloud CLI ou de la console Google Cloud .
gcloud
Pour désactiver la surveillance de l'intégrité des composants système lors de la création d'un pool de nœuds, procédez comme suit :
gcloud container node-pools create POOL_NAME \
--no-shielded-integrity-monitoring
La surveillance de l'intégrité est activée par défaut. Vous pouvez l'activer explicitement lors de la création d'un pool de nœuds à l'aide de l'option --shielded-integrity-monitoring
.
Console
Pour désactiver la surveillance de l'intégrité lors de la création d'un pool de nœuds, procédez comme suit :
Accédez à la page Google Kubernetes Engine dans la console Google Cloud .
Cliquez sur le nom du cluster que vous souhaitez modifier.
Cliquez sur add_box Ajouter un pool de nœuds.
Dans le volet de navigation, cliquez sur Sécurité.
Sous Options protégées, décochez la case Activer la surveillance de l'intégrité.