Utiliser des nœuds GKE protégés


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).

À 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.

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. Ces paramètres de pool de nœuds sont indépendants des nœuds GKE protégés et fonctionnent même si les nœuds GKE protégés sont désactivés sur le cluster.

Pour en savoir plus, consultez la documentation sur les VM protégées.

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.

Disponibilité

  • Les nœuds GKE protégés sont disponibles dans les versions 1.13.6-gke.0 et ultérieures de GKE.
  • Les nœuds GKE protégés sont disponibles dans toutes les zones et dans toutes les régions.
  • Les nœuds GKE protégés peuvent être utilisés avec toutes les images de nœuds.
  • Les nœuds GKE protégés peuvent être utilisés avec les GPU.

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

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

    Accéder à Google Kubernetes Engine

  2. Cliquez sur Créer.

  3. Dans le volet de navigation, cliquez sur Sécurité sous Cluster.

  4. Cochez la case Activer les nœuds GKE protégés.

  5. Configurez le cluster selon vos besoins.

  6. Cliquez sur Create (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.

Après avoir activé les nœuds GKE protégés, le plan de contrôle et les nœuds sont recréés en tant que VM protégées. Le plan de contrôle n'est pas disponible lorsqu'il est en cours de recréation. Les nœuds de cluster sont recréés de façon progressive afin de minimiser les temps d'arrêt.

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

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

    Accéder à Google Kubernetes Engine

  2. Cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Sous Sécurité, dans le champ Nœuds GKE protégés, cliquez sur  Modifier les nœuds GKE protégés.

  4. Cochez la case Activer les nœuds GKE protégés.

  5. 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 :

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

    Accéder à Google Kubernetes Engine

  2. Cliquez sur le nom du cluster que vous souhaitez inspecter.

  3. 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.

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

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

    Accéder à Google Kubernetes Engine

  2. Cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Sous Sécurité, dans le champ Nœuds GKE protégés, cliquez sur  Modifier les nœuds GKE protégés.

  4. Décochez la case Activer les nœuds GKE protégés.

  5. Cliquez sur Save Changes (Enregistrer les modifications).

Après avoir désactivé les nœuds GKE protégés, le plan de contrôle et les nœuds sont recréés en tant que VM non protégées. Le plan de contrôle n'est pas disponible lorsqu'il est en cours de recréation. Les nœuds de cluster sont recréés de façon progressive afin de minimiser les temps d'arrêt.

Intégrité des nœuds

Le démarrage sécurisé et la surveillance de l'intégrité sont des paramètres de pool de nœuds qui peuvent être utilisés avec des nœuds GKE protégés. 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 désactivé par défaut sur GKE, car les modules tiers non signés du noyau ne peuvent pas être chargés lorsque le démarrage sécurisé est activé.

Si vous n'utilisez pas les modules tiers non signés du noyau, vous pouvez activer le démarrage sécurisé à l'aide de Google Cloud CLI ou de 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 :

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

    Accéder à Google Kubernetes Engine

  2. Cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Cliquez sur  Ajouter un pool de nœuds.

  4. Dans le menu de navigation, cliquez sur Sécurité.

  5. Sous Options protégées, cochez la case Activer le démarrage sécurisé.

  6. Cliquez sur Create (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 Google Cloud Console.

gcloud

Pour désactiver la surveillance de l'intégrité des composants système lors de la création d'un cluster, procédez comme suit :

gcloud container clusters create CLUSTER_NAME \
    --no-shielded-integrity-monitoring

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 cluster ou 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 :

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

    Accéder à Google Kubernetes Engine

  2. Cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Cliquez sur  Ajouter un pool de nœuds.

  4. Dans le volet de navigation, cliquez sur Sécurité.

  5. Sous Options protégées, décochez la case Activer la surveillance de l'intégrité.

Étapes suivantes