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 GKE 1.13.6-gke.0 et versions ultérieures.
  • 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 COS (Container-Optimized OS), les COS avec containerd et les images de nœuds Ubuntu.
  • 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 :

Configurez les paramètres gcloud par défaut à l'aide de l'une des méthodes suivantes :

  • Utilisez gcloud init pour suivre les instructions permettant de définir les paramètres par défaut.
  • Utilisez gcloud config pour définir individuellement l'ID, la zone et la région de votre projet.

Utiliser gcloud init

Si le message d'erreur One of [--zone, --region] must be supplied: Please specify location s'affiche, effectuez les tâches ci-dessous.

  1. Exécutez gcloud init et suivez les instructions :

    gcloud init

    Si vous utilisez SSH sur un serveur distant, utilisez l'option --console-only pour empêcher la commande d'ouvrir un navigateur :

    gcloud init --console-only
  2. Suivez les instructions pour autoriser gcloud à utiliser votre compte Google Cloud.
  3. Créez ou sélectionnez une configuration.
  4. Choisissez un projet Google Cloud.
  5. Choisissez une zone Compute Engine par défaut pour les clusters zonaux ou une région pour les clusters régionaux ou Autopilot.

Utiliser gcloud config

  • Définissez votre ID de projet par défaut :
    gcloud config set project PROJECT_ID
  • Si vous utilisez des clusters zonaux, définissez votre zone de calcul par défaut :
    gcloud config set compute/zone COMPUTE_ZONE
  • Si vous utilisez des clusters Autopilot ou régionaux, définissez votre région de calcul par défaut:
    gcloud config set compute/region COMPUTE_REGION
  • Mettez à jour gcloud vers la dernière version :
    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 activés à l'aide de l'outil gcloud ou de Google Cloud Console.

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 au menu Google Kubernetes Engine de Cloud Console.

    Accéder au menu 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 l'outil de ligne de commande gcloud ou de Google Cloud Console.

Une fois que vous avez 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 au menu GKE dans Cloud Console.

    Accéder au menu de GKE

  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 l'outil de ligne de commande gcloud ou de Google Cloud Console.

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 au menu GKE dans Cloud Console.

    Accéder au menu de GKE

  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 l'outil de ligne de commande gcloud ou de Google Cloud Console.

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 au menu GKE dans Cloud Console.

    Accéder au menu de GKE

  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 de modules tiers non signés du noyau, vous pouvez activer le démarrage sécurisé à l'aide de l'outil de ligne de commande gcloud ou de Google Cloud Console.

gcloud

Pour activer le démarrage sécurisé lors de la création d'un cluster, procédez comme suit :

gcloud container cluster 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-pool 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 au menu GKE dans Cloud Console.

    Accéder au menu de GKE

  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 l'outil de ligne de commande gcloud 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 cluster 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-pool 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 au menu GKE dans Cloud Console.

    Accéder au menu de GKE

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

Étape suivante