Chiffrer les données de charge de travail utilisées avec des nœuds de type Confidential GKE Node


Cette page vous explique comment appliquer le chiffrement des données utilisées dans vos nœuds et vos charges de travail à l'aide des nœuds Confidential Google Kubernetes Engine (GKE) Node. L'application du chiffrement peut contribuer à renforcer la sécurité de vos charges de travail.

Cette page s'adresse aux spécialistes de la sécurité qui mettent en œuvre des mesures de sécurité sur GKE. Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans le contenu Google Cloud , consultez Rôles utilisateur et tâches courantes de GKE.

Avant de lire cette page, assurez-vous de connaître le concept de données en cours d'utilisation.

Que sont les nœuds Confidential GKE Node ?

Vous pouvez chiffrer vos charges de travail avec des nœuds Confidential GKE ou le mode confidentiel pour Hyperdisk Balanced.

Nœuds Confidential GKE Node

Les nœuds Confidential GKE Node utilisent les Confidential VMs Compute Engine pour protéger les données en cours d'utilisation grâce au chiffrement de la mémoire basé sur le matériel. Les nœuds Confidential GKE Node sont compatibles avec les technologies Confidential Computing suivantes :

  • AMD SEV (Secure Encrypted Virtualization)
  • AMD SEV-SNP (Secure Encrypted Virtualization-Secure Nested Paging)
  • Intel Trust Domain Extensions (TDX)

Pour en savoir plus sur ces technologies et obtenir de l'aide pour choisir celle qui répond le mieux à vos besoins, consultez la présentation de Confidential VM.

Les nœuds Confidential GKE ne modifient pas les mesures de sécurité que GKE applique aux plans de contrôle des clusters. Pour en savoir plus sur ces mesures, consultez Sécurité du plan de contrôle. Pour savoir qui accède aux plans de contrôle dans vos projets Google Cloud, utilisez Access Transparency.

Vous pouvez activer les nœuds Confidential GKE Node pour des clusters entiers, pour des pools de nœuds spécifiques ou pour des charges de travail spécifiques. Le tableau suivant décrit ces méthodes d'activation :

Paramètre "Confidential GKE Nodes" Description Comportement
Niveau de charge de travail Configurez les nœuds Confidential GKE dans une ComputeClass, puis sélectionnez cette ComputeClass dans une charge de travail. GKE crée des nœuds qui utilisent cette configuration pour exécuter vos pods.

Le paramètre de charge de travail est compatible avec l'une des technologies de Confidential Computing suivantes, quels que soient le mode de cluster ou le type de pool de nœuds :

  • AMD SEV
  • AMD SEV-SNP
  • Intel TDX
Au niveau du cluster Ce paramètre est irréversible.

Activez les nœuds Confidential GKE lorsque vous créez un cluster Autopilot ou Standard. Tous les nœuds du cluster utilisent des nœuds Confidential GKE Node. Vous ne pouvez pas remplacer le paramètre de cluster pour des pools de nœuds ou des charges de travail individuels.

Les technologies compatibles au niveau du cluster dépendent du mode de fonctionnement du cluster, comme suit :

  • Clusters Autopilot : AMD SEV
  • Clusters standards :
    • AMD SEV
    • AMD SEV-SNP
    • Intel TDX
Au niveau du pool de nœuds Activez les nœuds Confidential GKE Node lorsque vous créez un pool de nœuds dans un cluster Standard. Vous ne pouvez utiliser cette méthode que si les nœuds Confidential GKE Node sont désactivés au niveau du cluster.

Les technologies compatibles au niveau du pool de nœuds dépendent de l'utilisation ou non du provisionnement automatique des nœuds par le pool de nœuds, comme suit :

  • Pools de nœuds créés manuellement :
    • AMD SEV
    • AMD SEV-SNP
    • Intel TDX
  • Pools de nœuds provisionnés automatiquement :
    • AMD SEV
    • AMD SEV-SNP

Mode confidentiel pour Hyperdisk Balanced

Vous pouvez également activer le mode confidentiel pour Hyperdisk Balanced sur le stockage de votre disque de démarrage, ce qui chiffre vos données dans des enclaves supplémentaires soutenues par du matériel.

Vous pouvez activer le mode confidentiel pour Hyperdisk Balanced lorsque vous effectuez l'une des opérations suivantes :

  • Créer un cluster
  • Créer un pool de nœuds

Vous ne pouvez pas mettre à jour un cluster ou un pool de nœuds existant pour modifier le paramètre "Mode confidentiel pour Hyperdisk équilibré".

Le tableau suivant présente le comportement de GKE qui s'applique lorsque vous activez le paramètre "Mode confidentiel pour Hyperdisk équilibré" au niveau du cluster ou du pool de nœuds :

Paramètre du mode confidentiel pour Hyperdisk Balanced Procédure de configuration Comportement
Au niveau du cluster Créer un cluster Seul le pool de nœuds par défaut du cluster utilisera le paramètre "Mode confidentiel pour Hyperdisk Balanced". Vous ne pouvez pas effectuer les opérations suivantes :
  • Désactiver le paramètre "Mode confidentiel pour Hyperdisk Balanced" pour un pool de nœuds existant dans le cluster
  • Activer le paramètre "Mode confidentiel pour Hyperdisk Balanced" sur les clusters existants
Au niveau du pool de nœuds Créer un pool de nœuds Vous pouvez configurer le paramètre "Mode confidentiel pour Hyperdisk équilibré" pour tous les nouveaux pools de nœuds au moment de leur création. Vous ne pouvez pas mettre à jour les pools de nœuds existants pour utiliser le paramètre "Mode confidentiel pour Hyperdisk Balanced".

Tarifs

Les tarifs suivants s'appliquent en fonction de la façon dont vous configurez les nœuds Confidential GKE Nodes :

Tarification des nœuds Confidential GKE Node
Au niveau de la charge de travail

Dans les charges de travail Autopilot, les deux coûts suivants s'appliquent :

  • Facturation basée sur les nœuds Autopilot pour la série de machines Compute Engine sur laquelle les pods sont exécutés. Pour en savoir plus, consultez la section "Pods ayant des exigences matérielles spécifiques" sur la page Tarifs de Google Kubernetes Engine.
  • Tarification des nœuds Confidential GKE Node Pour en savoir plus, consultez la section "Tarification des nœuds Confidential GKE Node sur GKE Autopilot" dans la page Tarification des VM confidentielles.

Dans les charges de travail standards, les deux coûts suivants s'appliquent :

Au niveau du cluster

Dans les clusters Autopilot, les deux coûts suivants s'appliquent :

  • Tarifs de la classe de calcul équilibrée, car la série de machines par défaut du cluster passe à N2D. Pour en savoir plus, consultez la section "Pods de classe de calcul "Équilibrée" et "Scale-Out"" dans la page Tarifs de Google Kubernetes Engine.
  • Tarification des nœuds Confidential GKE Node Pour en savoir plus, consultez la section "Tarification des nœuds Confidential GKE Node sur GKE Autopilot" dans la page Tarification des VM confidentielles.

Dans les clusters standards, les deux coûts suivants s'appliquent :

Au niveau du pool de nœuds

Dans les pools de nœuds Standard, les coûts suivants s'appliquent :

De plus, les nœuds Confidential GKE Node sont susceptibles de générer un volume de données de journal légèrement supérieur au démarrage en comparaison aux nœuds qui ne sont pas des nœuds Confidential GKE Node. Pour en savoir plus sur la tarification des journaux, consultez la page Tarifs de Google Cloud Observability.

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.

Conditions requises

Les nœuds Confidential GKE Node présentent les exigences suivantes :

  • Les clusters Autopilot doivent exécuter GKE version 1.30.2 ou ultérieure.
  • Les clusters Standard doivent exécuter l'une des versions de GKE suivantes, en fonction de la technologie Confidential Computing que vous choisissez :

    • AMD SEV : n'importe quelle version de GKE.
    • AMD SEV-SNP : 1.32.2-gke.1297000 ou version ultérieure.
    • Intel TDX : 1.32.2-gke.1297000 ou version ultérieure.
  • Pour activer les nœuds Confidential GKE au niveau de la charge de travail, les clusters Autopilot et Standard doivent exécuter la version 1.33.3-gke.1392000 ou ultérieure de GKE.

  • Les nœuds doivent utiliser un type de machine compatible avec la technologie Confidential Computing que vous choisissez. Pour en savoir plus, consultez Types de machines, processeurs et zones.

  • Les plans de contrôle et les nœuds du cluster doivent se trouver dans un emplacement compatible avec la technologie Confidential Computing que vous choisissez. Pour en savoir plus, consultez Afficher les zones compatibles.

Configurer les nœuds Confidential GKE au niveau de la charge de travail

Pour activer les nœuds Confidential GKE Node dans des charges de travail individuelles, vous devez utiliser une ComputeClass. Les ComputeClasses sont des ressources personnalisées Kubernetes qui vous permettent de définir les attributs des nouveaux nœuds créés par GKE et de contrôler le comportement de secours si le matériel n'est pas disponible. Les ComputeClasses sont compatibles avec toutes les technologies d'informatique confidentielle disponibles pour GKE, même si une technologie spécifique n'est pas compatible au niveau du cluster ou du pool de nœuds.

Pour configurer les nœuds GKE confidentiels au niveau de la charge de travail, procédez comme suit :

  1. Facultatif : Pour les clusters GKE Standard, activez le provisionnement automatique des nœuds pour le cluster. Pour les clusters Autopilot, ignorez cette étape.

    Si vous choisissez d'utiliser des ComputeClasses avec uniquement des pools de nœuds créés manuellement, vous devez également configurer manuellement les rejets et les étiquettes de nœuds sur ces pools de nœuds. Cette configuration manuelle supplémentaire peut entraîner une diminution des avantages liés à l'utilisation d'une ComputeClass pour créer des nœuds Confidential GKE Node.

  2. Enregistrez le fichier manifeste ComputeClass suivant au format YAML. Pour en savoir plus sur les champs et valeurs compatibles pour ComputeClasses, consultez la définition de ressource personnalisée ComputeClass.

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: COMPUTE_CLASS
    spec:
      nodePoolConfig:
        confidentialNodeType: CONFIDENTIAL_COMPUTE_TECHNOLOGY
      nodePoolAutoCreation:
        enabled: true
      activeMigration:
        optimizeRulePriority: true
      priorityDefaults:
        location:
          zones: ['ZONE1','ZONE2']
      priorities:
      - machineFamily: MACHINE_SERIES
      - machineType: MACHINE_TYPE
      whenUnsatisfiable: DoNotScaleUp
    

    Remplacez les éléments suivants :

    • COMPUTE_CLASS : nom de votre nouvelle classe de calcul.
    • CONFIDENTIAL_COMPUTE_TECHNOLOGY : technologie d'informatique confidentielle à utiliser. Les valeurs suivantes sont acceptées :

      • SEV pour AMD SEV
      • SEV_SNP pour AMD SEV-SNP
      • TDX pour Intel TDX
    • ZONE1,ZONE2,... : zones dans lesquelles créer les nœuds, telles que ['us-central1-a','us-central1-b']. Spécifiez des zones compatibles avec la technologie d'informatique confidentielle que vous avez spécifiée. Pour en savoir plus, consultez Afficher les zones compatibles.

    • MACHINE_SERIES : série de machines pour les nœuds, par exemple n2d. Spécifiez une série de machines compatible avec la technologie d'informatique confidentielle que vous avez spécifiée. Pour en savoir plus, consultez Types de machines, processeurs et zones.

    • MACHINE_TYPE : type de machine pour les nœuds, tel que n2d-standard-4. Spécifiez un type de machine compatible avec la technologie d'informatique confidentielle que vous avez spécifiée. Pour en savoir plus, consultez Types de machines, processeurs et zones.

    Ce fichier manifeste inclut le champ spec.nodePoolAutoCreation avec la valeur enabled: true, ce qui permet à GKE de créer des pools de nœuds à l'aide du provisionnement automatique des nœuds.

  3. Créez la ComputeClass dans votre cluster :

    kubectl apply -f PATH_TO_COMPUTE_CLASS_MANIFEST
    

    Remplacez PATH_TO_COMPUTE_CLASS_MANIFEST par le chemin d'accès au fichier manifeste ComputeClass.

  4. Enregistrez le fichier manifeste Deployment suivant en tant que fichier YAML :

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: helloweb
      labels:
        app: hello
    spec:
      selector:
        matchLabels:
          app: hello
      template:
        metadata:
          labels:
            app: hello
        spec:
          nodeSelector:
            # Replace with the name of a compute class
            cloud.google.com/compute-class: COMPUTE_CLASS 
          containers:
          - name: hello-app
            image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
            ports:
            - containerPort: 8080
            resources:
              requests:
                cpu: "250m"
                memory: "4Gi"

  5. Créez le déploiement :

    kubectl apply -f PATH_TO_DEPLOYMENT_MANIFEST
    

    Remplacez PATH_TO_DEPLOYMENT_MANIFEST par le chemin d'accès au fichier manifeste du déploiement.

Les nouveaux nœuds que GKE crée pour cette charge de travail utilisent la technologie de calcul confidentiel que vous avez spécifiée. Ces nœuds s'exécutent dans l'une des zones que vous avez sélectionnées, sur un type de machine que vous avez défini dans ComputeClass. GKE ajoute des rejets et des libellés de nœud afin que seuls les pods qui sélectionnent la même ComputeClass puissent s'exécuter sur les nœuds.

Configurer les nœuds Confidential GKE Node au niveau du cluster

Vous pouvez activer les nœuds Confidential GKE Node pour l'ensemble d'un cluster Autopilot ou Standard, ce qui signifie que chaque nœud des clusters utilise des nœuds Confidential GKE Node. Par conséquent, toutes les charges de travail que vous déployez dans ce cluster s'exécutent sur des nœuds Confidential GKE Node. Vous ne pouvez pas remplacer le paramètre de cluster dans les charges de travail ou les pools de nœuds individuels.

Créer un cluster Autopilot

Les clusters Autopilot ne sont compatibles qu'avec AMD SEV au niveau du cluster. Lorsque vous activez les nœuds Confidential GKE Node, la série de machines par défaut dans le cluster Autopilot passe à N2D. Toutes vos charges de travail s'exécutent sur ces nœuds confidentiels sans que vous ayez besoin de modifier leurs fichiers manifestes.

  • Exécutez la commande suivante :

    gcloud container clusters create-auto CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-confidential-nodes
    

    Remplacez les éléments suivants :

    • CLUSTER_NAME : nom du cluster Autopilot.
    • CONTROL_PLANE_LOCATION : région Compute Engine du plan de contrôle du cluster, telle que us-central1.

    Le cluster doit exécuter la version 1.30.2 ou ultérieure. Pour en savoir plus, consultez Créer un cluster Autopilot avec une version et un canal de publication spécifiques.

Créer un cluster standard

Vous pouvez spécifier une technologie d'informatique confidentielle pour vos nœuds lorsque vous créez un cluster Standard. Spécifier la technologie lorsque vous créez un cluster a les effets suivants :

  • Dans ce cluster, vous ne pouvez créer que des pools de nœuds ou des charges de travail qui utilisent des nœuds Confidential GKE Node.
  • Vous ne pouvez pas mettre à jour le cluster pour désactiver les nœuds Confidential GKE Node.
  • Vous ne pouvez pas remplacer la technologie de Confidential Computing au niveau du cluster dans des pools de nœuds ou des charges de travail individuels.

La configuration d'un paramètre informatique confidentielle au niveau du cluster est définitive. Par conséquent, tenez compte des cas d'utilisation suivants avant de créer votre cluster :

Pour créer un cluster en mode Standard qui utilise des nœuds Confidential GKE Node, sélectionnez l'une des options suivantes :

gcloud

Lors de la création d'un cluster, spécifiez l'option --confidential-node-type dans gcloud CLI :

gcloud container clusters create CLUSTER_NAME \
    --location=LOCATION \
    --machine-type=MACHINE_TYPE \
    --node-locations=ZONE1,ZONE2,... \
    --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster
  • LOCATION : emplacement Compute Engine du plan de contrôle du cluster. L'emplacement doit être compatible avec la technologie d'informatique confidentielle que vous spécifiez. Pour en savoir plus, consultez la section Disponibilité.
  • MACHINE_TYPE : type de machine compatible avec la technologie de informatique confidentielle que vous spécifiez. Pour en savoir plus, consultez la section Disponibilité.
  • ZONE1,ZONE2,... : liste de zones séparées par une virgule dans la région du plan de contrôle qui prennent en charge la nouvelle technologie informatique confidentielle. Pour en savoir plus, consultez Afficher les zones compatibles.
  • CONFIDENTIAL_COMPUTE_TECHNOLOGY : technologie d'informatique confidentielle à utiliser. Les valeurs suivantes sont acceptées :

    • sev : AMD SEV
    • sev_snp : AMD SEV-SNP
    • tdx : Intel TDX

Vous pouvez également utiliser l'option --enable-confidential-nodes dans la commande de création de votre cluster. Si vous ne spécifiez que cette option dans votre commande, le cluster utilise AMD SEV. Le type de machine que vous spécifiez dans la commande doit être compatible avec AMD SEV. Toutefois, si vous spécifiez l'option --confidential-node-type dans la même commande, GKE utilise la valeur que vous spécifiez dans l'option --confidential-node-type.

Console

  1. Dans la console Google Cloud , accédez à la page Créer un cluster Kubernetes.

    Accéder à la page "Créer un cluster Kubernetes"

  2. Dans le menu de navigation, dans la section Cluster, cliquez sur Sécurité.

  3. Cochez la case Activer les nœuds Confidential GKE Node.

  4. Dans la boîte de dialogue Modifications requises, cliquez sur Apporter des modifications.

  5. Dans le menu Type, sélectionnez la technologie informatique confidentielle que vous souhaitez utiliser.

    Si la technologie que vous sélectionnez nécessite une série de machines Compute Engine spécifique, une boîte de dialogue s'affiche. Cliquez sur Apporter des modifications pour mettre à jour la série de machines du pool de nœuds.

  6. Dans la section Pools de nœuds du menu de navigation, cliquez sur default-pool.

  7. Dans le volet Détails du pool de nœuds, procédez comme suit :

    1. Cochez la case Spécifier les emplacements de nœuds. La liste des zones de la région du cluster s'affiche.
    2. Cochez les cases des zones compatibles avec la technologie de informatique confidentielle que vous avez sélectionnée pour les nœuds. Pour en savoir plus, consultez Afficher les zones compatibles.
  8. Cliquez sur Créer.

Pour en savoir plus sur la création de clusters, consultez Créer un cluster régional.

Pour tout pool de nœuds créé avec le paramètre "Mode confidentiel pour Hyperdisk Balanced", seuls les nœuds du pool de nœuds sont limités à la configuration. Pour tout nouveau pool de nœuds créé dans le cluster, vous devez configurer le mode confidentiel lors de la création.

Configurer le provisionnement automatique des nœuds

Vous pouvez configurer le provisionnement automatique des nœuds pour utiliser les nœuds Confidential GKE Node dans les pools de nœuds provisionnés automatiquement. L'auto-provisionnement des nœuds est compatible avec les technologies d'informatique confidentielle suivantes :

  • AMD SEV
  • AMD SEV-SNP

Pour utiliser les nœuds Confidential GKE avec le provisionnement automatique des nœuds, spécifiez l'indicateur --enable-confidential-nodes de la gcloud CLI lorsque vous créez un cluster. Les considérations supplémentaires suivantes s'appliquent :

  • Lorsque vous créez le cluster, choisissez une technologie Confidential Computing compatible avec le provisionnement automatique des nœuds. Ce choix est irréversible au niveau du cluster.
  • Lorsque vous activez le provisionnement automatique des nœuds sur un cluster existant, celui-ci doit déjà utiliser une technologie Confidential GKE Nodes compatible avec le provisionnement automatique des nœuds.
  • Lorsque vous déployez des charges de travail, vérifiez qu'elles sélectionnent la technologie Confidential Computing du cluster et une série de machines compatible avec cette technologie.

Configurer les nœuds Confidential GKE Node au niveau du pool de nœuds

Vous pouvez activer les nœuds Confidential GKE Node sur des pools de nœuds spécifiques si les nœuds Confidential GKE Node sont désactivés au niveau du cluster.

Le mode confidentiel pour le paramètre Hyperdisk Balanced doit être spécifié lors de la requête de création du pool de nœuds.

Créer un pool de nœuds

Pour créer un pool de nœuds avec les nœuds Confidential GKE Node activés, sélectionnez l'une des options suivantes :

gcloud

Exécutez la commande suivante :

gcloud container node-pools create NODE_POOL_NAME \
    --location=LOCATION \
    --cluster=CLUSTER_NAME \
    --machine-type=MACHINE_TYPE \
    --node-locations=ZONE1,ZONE2,... \
    --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY

Remplacez les éléments suivants :

  • NODE_POOL_NAME : nom de votre nouveau pool de nœuds.
  • LOCATION : emplacement de votre nouveau pool de nœuds. L'emplacement doit être compatible avec la technologie d'informatique confidentielle que vous spécifiez. Pour en savoir plus, consultez la section Disponibilité.
  • CLUSTER_NAME : nom du cluster
  • MACHINE_TYPE : type de machine compatible avec la technologie de informatique confidentielle que vous spécifiez. Pour en savoir plus, consultez la section Disponibilité.
  • ZONE1,ZONE2,... : liste des zones de la région du cluster qui sont compatibles avec la nouvelle technologie informatique confidentielle, séparées par une virgule. Pour en savoir plus, consultez Afficher les zones compatibles.
  • CONFIDENTIAL_COMPUTE_TECHNOLOGY : technologie d'informatique confidentielle à utiliser. Les valeurs suivantes sont acceptées :

    • sev : AMD SEV
    • sev_snp : AMD SEV-SNP
    • tdx : Intel TDX

Vous pouvez également utiliser l'option --enable-confidential-nodes dans la commande de création de votre cluster. Si vous ne spécifiez que cette option dans votre commande, le cluster utilise AMD SEV. Le type de machine que vous spécifiez dans la commande doit être compatible avec AMD SEV. Toutefois, si vous spécifiez l'option --confidential-node-type dans la même commande, GKE utilise la valeur que vous spécifiez dans l'option --confidential-node-type.

Console

  1. Dans la console Google Cloud , accédez à la page Clusters Kubernetes :

    Accéder à la page "Clusters Kubernetes"

  2. Cliquez sur le nom de votre cluster Standard.

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

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

  5. Dans le volet Sécurité des nœuds, procédez comme suit :

    1. Cochez la case Activer les nœuds Confidential GKE Node.
    2. Dans la boîte de dialogue Modifications requises, cliquez sur Apporter des modifications.
    3. Dans le menu Type, sélectionnez la technologie informatique confidentielle que vous souhaitez utiliser.

      Si la technologie que vous sélectionnez nécessite une série de machines Compute Engine spécifique, une boîte de dialogue s'affiche. Cliquez sur Apporter des modifications pour mettre à jour la série de machines du pool de nœuds.

  6. Dans le menu de navigation, cliquez sur Détails du pool de nœuds.

  7. Dans le volet Détails du pool de nœuds, procédez comme suit :

    1. Cochez la case Spécifier les emplacements de nœuds. La liste des zones de la région du cluster s'affiche.
    2. Cochez les cases des zones compatibles avec la technologie de informatique confidentielle que vous avez sélectionnée pour les nœuds. Pour en savoir plus, consultez Afficher les zones compatibles.
  8. (Facultatif) Configurez d'autres paramètres pour votre pool de nœuds.

  9. Cliquez sur Créer.

Mettre à jour un pool de nœuds existant

Cette modification nécessite de recréer les nœuds, ce qui peut perturber vos charges de travail en cours d'exécution. 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 sans respecter 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.

Vous pouvez mettre à jour des pools de nœuds existants pour utiliser les nœuds Confidential GKE Node ou pour changer la technologie de informatique confidentielle utilisée par les nœuds. Le pool de nœuds doit répondre à toutes les exigences suivantes :

  • Les nœuds utilisent un type de machine compatible avec la technologie informatique confidentielle choisie.
  • Les nœuds s'exécutent dans des zones compatibles avec la technologie informatique confidentielle choisie.

Étant donné que la disponibilité du type de machine et de l'emplacement peut varier entre les technologies de informatique confidentielle, vous devrez peut-être mettre à jour ces attributs pour votre pool de nœuds avant d'activer une technologie de informatique confidentielle spécifique.

Pour mettre à jour un pool de nœuds existant afin qu'il utilise des nœuds Confidential GKE Node, sélectionnez l'une des options suivantes :

gcloud

Vous pouvez utiliser gcloud CLI pour activer les nœuds Confidential GKE Nodes sur un pool de nœuds ou pour modifier la technologie de informatique confidentielle des nœuds.

  1. Si le pool de nœuds utilise déjà des nœuds Confidential GKE Node, désactivez-les. Patientez pendant la mise à jour du pool de nœuds.
  2. Remplacez le type de machine et les emplacements des nœuds du pool de nœuds par des valeurs compatibles avec la nouvelle technologie informatique confidentielle :

    gcloud container node-pools update NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --location=CLUSTER_LOCATION \
        --machine-type=MACHINE_TYPE \
        --node-locations=ZONE1,ZONE2,...
    

    Remplacez les éléments suivants :

    • NODE_POOL_NAME : nom du pool de nœuds existant.
    • CLUSTER_NAME : nom du cluster.
    • CLUSTER_LOCATION : emplacement du cluster.
    • MACHINE_TYPE : type de machine compatible avec la nouvelle technologie informatique confidentielle. Pour en savoir plus, consultez la section Disponibilité.
    • ZONE1,ZONE2,... : liste des zones de la région du cluster qui sont compatibles avec la nouvelle technologie informatique confidentielle, séparées par une virgule. Pour en savoir plus, consultez Afficher les zones compatibles.
  3. Mettez à jour le pool de nœuds avec la technologie informatique confidentielle à utiliser :

    gcloud container node-pools update NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --location=CLUSTER_LOCATION \
        --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY
    

    Remplacez CONFIDENTIAL_COMPUTE_TECHNOLOGY par la technologie informatique confidentielle à utiliser. Les valeurs suivantes sont acceptées :

    • sev : AMD SEV
    • sev_snp : AMD SEV-SNP
    • tdx : Intel TDX

Console

Vous ne pouvez mettre à jour un pool de nœuds existant pour utiliser les nœuds Confidential GKE Node que si le type de machine du pool de nœuds est compatible avec la technologie de informatique confidentielle que vous avez choisie. Si les nœuds n'utilisent pas un type de machine compatible, utilisez plutôt les instructions de gcloud CLI de cette section.

  1. Dans la console Google Cloud , accédez à la page Clusters Kubernetes :

    Accéder à la page "Clusters Kubernetes"

  2. Cliquez sur le nom de votre cluster Standard.

  3. Cliquez sur l'onglet Nœuds.

  4. Cliquez sur le nom du pool de nœuds que vous souhaitez modifier.

  5. Sur la page Détails du pool de nœuds, cliquez sur Modifier. Le volet Modifier le pool de nœuds s'ouvre.

  6. Dans la section Zones, vérifiez que les zones sélectionnées sont compatibles avec la technologie informatique confidentielle. Pour en savoir plus, consultez Afficher les zones compatibles.

    Si une zone sélectionnée n'est pas compatible avec la technologie, procédez comme suit :

    1. Décochez la case de la zone non prise en charge.
    2. Facultatif : Cochez les cases correspondant aux autres zones acceptées.
    3. Cliquez sur Enregistrer. Patientez jusqu'à la fin de l'opération de mise à jour du pool de nœuds.
    4. Cliquez sur Modifier pour rouvrir le volet Modifier le pool de nœuds.
  7. Dans la section Sécurité, cochez la case Activer les nœuds Confidential GKE Node.

  8. Dans le menu Type, sélectionnez la technologie de informatique confidentielle pour les nœuds.

  9. Cliquez sur Enregistrer.

Placer des charges de travail uniquement sur des pools de nœuds confidentiels

Si vous activez les nœuds Confidential GKE Node au niveau du cluster, toutes vos charges de travail s'exécutent sur des nœuds confidentiels. Vous n'avez pas besoin de modifier vos fichiers manifestes. Toutefois, si vous activez les nœuds Confidential GKE Node uniquement pour des pools de nœuds en mode Standard spécifiques au niveau du pool de nœuds, vous devez indiquer de manière déclarative que vos charges de travail ne doivent s'exécuter que sur des pools de nœuds avec des nœuds Confidential GKE Node.

  • Pour exiger qu'une charge de travail s'exécute sur une technologie informatique confidentielle spécifique, utilisez un sélecteur de nœud avec le libellé cloud.google.com/gke-confidential-nodes-instance-type, comme dans l'exemple suivant :

    apiVersion: v1
    kind: Pod
    spec:
    # For readability, lines are omitted from this example manifest
      nodeSelector:
        cloud.google.com/gke-confidential-nodes-instance-type: "CONFIDENTIAL_COMPUTE_SELECTOR"
    

    Remplacez CONFIDENTIAL_COMPUTE_SELECTOR par le nom de la technologie utilisée par le pool de nœuds. Ce champ accepte les valeurs suivantes, que vous devez spécifier en majuscules :

    • SEV : AMD SEV
    • SEV_SNP : AMD SEV-SNP
    • TDX : Intel TDX
  • Pour permettre à une charge de travail de s'exécuter sur n'importe quel nœud confidentiel, quelle que soit la technologie informatique confidentielle, utilisez une règle d'affinité de nœuds, comme dans l'exemple suivant :

    apiVersion: v1
    kind: Pod
    spec:
      containers:
      - name: confidential-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: cloud.google.com/gke-confidential-nodes-instance-type
                operator: Exists
    
  • Pour permettre à une charge de travail de s'exécuter sur des nœuds qui n'utilisent qu'un sous-ensemble des technologies de informatique confidentielle disponibles, utilisez une règle d'affinité de nœuds semblable à l'exemple suivant :

    apiVersion: v1
    kind: Pod
    spec:
      containers:
      - name: confidential-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: cloud.google.com/gke-confidential-nodes-instance-type
                operator: In
                values:
                - SEV
                - SEV_SNP
                - TDX
    

    Dans le champ values, spécifiez uniquement les technologies d'informatique confidentielle sur lesquelles vous souhaitez exécuter la charge de travail.

Vérifier que les nœuds Confidential GKE Node sont activés

Vous pouvez vérifier si vos clusters ou nœuds utilisent des nœuds Confidential GKE en inspectant les clusters, les pools de nœuds, les nœuds ou les instances Compute Engine.

Valider pour les clusters

Sélectionnez l'une des options suivantes :

gcloud

Décrivez le cluster :

gcloud container clusters describe CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --format='yaml(confidentialNodes.confidentialInstanceType)'

Si les nœuds Confidential GKE Node sont activés, le résultat ressemble à ce qui suit :

confidentialNodes:
  confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR

Console

  1. Dans la console Google Cloud , accédez à la page Clusters Kubernetes.

    Accéder à la page "Clusters Kubernetes"

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

  3. Dans la section Sécurité, vérifiez que le champ Nœuds Confidential GKE Node est défini sur Activé.

Valider pour les pools de nœuds

Sélectionnez l'une des options suivantes :

gcloud

Décrivez le pool de nœuds :

gcloud container node-pools describe NODE_POOL_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --format='yaml(confidentialNodes.confidentialInstanceType,enableConfidentialStorage)'

Si les nœuds Confidential GKE Node sont activés, le résultat ressemble à ce qui suit :

confidentialNodes:
  confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR

Si le mode confidentiel pour Hyperdisk Balanced est également activé, le résultat ressemble à ce qui suit :

confidentialNodes:
  confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR
enableConfidentialStorage: true

Console

  1. Dans la console Google Cloud , accédez à la page Clusters Kubernetes.

    Accéder à la page "Clusters Kubernetes"

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

  3. Cliquez sur le nom d'un pool de nœuds.

  4. Dans la section Sécurité, vérifiez que le champ Nœuds Confidential GKE Node est défini sur Activé.

Valider pour un nœud spécifique

  1. Recherchez le nom du nœud :

    kubectl get nodes
    
  2. Décrivez le nœud :

    kubectl describe NODE_NAME
    

    Remplacez NODE_NAME par le nom d'un nœud à inspecter.

    Le résultat ressemble à ce qui suit :

    Name:               gke-cluster-1-default-pool-affsf335r-asdf
    Roles:              <none>
    Labels:             cloud.google.com/gke-boot-disk=pd-balanced
                        cloud.google.com/gke-container-runtime=containerd
                        cloud.google.com/gke-confidential-nodes-instance-type=CONFIDENTIAL_COMPUTE_SELECTOR
                        cloud.google.com/gke-nodepool=default-pool
                        cloud.google.com/gke-os-distribution=cos
                        cloud.google.com/machine-family=e2
    # lines omitted for clarity
    

    Dans ce résultat, le libellé de nœud cloud.google.com/gke-confidential-nodes-instance-type indique que le nœud est un nœud confidentiel.

Définir des contraintes de règle d'administration

Vous pouvez définir une contrainte de règle d'administration pour vous assurer que toutes les ressources de VM créées dans votre organisation sont des instances de Confidential VM. Pour GKE, vous pouvez personnaliser la contrainte Limiter l'informatique non confidentielle pour exiger que tous les clusters soient créés avec l'une des technologies d'informatique confidentielle disponibles activée. Ajoutez le nom du service d'API container.googleapis.com à la liste de refus lors de l'application des contraintes de règle d'administration, comme dans l'exemple suivant :

gcloud resource-manager org-policies deny \
    constraints/compute.restrictNonConfidentialComputing compute.googleapis.com container.googleapis.com \
    --project=PROJECT_ID

Remplacez PROJECT_ID par l'ID du projet.

Créer un PersistentVolume pour le mode confidentiel pour Hyperdisk Balanced

Pour obtenir des conseils sur les valeurs autorisées pour le débit ou les IOPS, consultez la section Planifier le niveau de performances de vos volumes Hyperdisk.

Les exemples suivants montrent comment créer une StorageClass en mode confidentiel pour les StorageClass Hyperdisk Balanced pour chaque type de volume Hyperdisk :

Volume Hyperdisk équilibré

  1. Enregistrez le fichier manifeste suivant dans un fichier nommé confidential-hdb-example-class.yaml :

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: balanced-storage
    provisioner: pd.csi.storage.gke.io
    volumeBindingMode: WaitForFirstConsumer
    allowVolumeExpansion: true
    parameters:
      type: hyperdisk-balanced
      provisioned-throughput-on-create: "250Mi"
      provisioned-iops-on-create: "7000"
      enable-confidential-storage: true
      disk-encryption-kms-key: "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/HSM_KEY_NAME"
    

    Remplacez les éléments suivants :

    • KMS_PROJECT_ID : projet propriétaire de la clé Cloud KMS.
    • REGION : la région où se trouve le disque.
    • KEY_RING : nom du trousseau de clés qui inclut la clé
    • HSM_KEY_NAME : nom de la clé HSM utilisée pour chiffrer le disque.
  2. Créez la StorageClass :

    kubectl create -f hdb-example-class.yaml
    
  3. Créez une réclamation de volume persistant Hyperdisk pour GKE qui utilise votre mode Confidentiel pour le volume Hyperdisk équilibré.

Pour trouver le nom des StorageClasses disponibles dans votre cluster, exécutez la commande suivante :

kubectl get sc

Limites

Les nœuds Confidential GKE Node présentent les limites suivantes :

Le mode confidentiel pour Hyperdisk Balanced présente les limites suivantes :

Limites de la migration à chaud

Les Confidential VM Compute Engine qui utilisent le type de machine N2D et AMD SEV comme technologie de informatique confidentielle sont compatibles avec la migration à chaud, ce qui minimise le risque d'interruption de la charge de travail lors d'un événement de maintenance de l'hôte. La migration à chaud est disponible dans les versions GKE suivantes :

  • 1.27.10-gke.1218000 et versions ultérieures
  • 1.28.6-gke.1393000 et versions ultérieures
  • 1.29.1-gke.1621000 et versions ultérieures

Si vos pools de nœuds exécutaient déjà une version compatible lorsque la migration en direct a été ajoutée, mettez-les à niveau manuellement vers la même version compatible ou une autre. La mise à niveau des nœuds déclenche leur recréation, et la migration en direct est activée sur les nouveaux nœuds.

Pour savoir quels types de machines Compute Engine sont compatibles avec la migration à chaud, consultez Configurations compatibles.

Si un événement de maintenance de l'hôte se produit sur un nœud qui n'est pas compatible avec la migration à chaud, le nœud passe à l'état NotReady. L'exécution des pods entraîne des interruptions jusqu'à ce que le nœud soit à nouveau prêt. Si la maintenance prend plus de cinq minutes, GKE peut essayer de recréer les pods sur d'autres nœuds.

Désactiver les nœuds Confidential GKE Node

Cette modification nécessite de recréer les nœuds, ce qui peut perturber vos charges de travail en cours d'exécution. 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 sans respecter 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.

Vous ne pouvez désactiver les nœuds Confidential GKE Node que dans les pools de nœuds en mode Standard. Si le pool de nœuds se trouve dans un cluster qui utilise des nœuds Confidential GKE Node au niveau du cluster, vous ne pouvez pas désactiver la fonctionnalité au niveau du pool de nœuds. Pour désactiver les nœuds Confidential GKE Node, sélectionnez l'une des options suivantes :

gcloud

Exécutez la commande suivante :

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=CLUSTER_LOCATION \
    --no-enable-confidential-nodes

Console

  1. Dans la console Google Cloud , accédez à la page Clusters Kubernetes :

    Accéder à la page "Clusters Kubernetes"

  2. Cliquez sur le nom de votre cluster Standard.

  3. Cliquez sur l'onglet Nœuds.

  4. Cliquez sur le nom du pool de nœuds que vous souhaitez modifier.

  5. Sur la page Détails du pool de nœuds, cliquez sur Modifier. Le volet Modifier le pool de nœuds s'ouvre.

  6. Dans la section Sécurité, décochez la case Activer les nœuds Confidential GKE Node.

  7. Cliquez sur Enregistrer.

Étapes suivantes