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.
Présentation
Les nœuds Confidential GKE Node s'appuient sur les Confidential VMs Compute Engine à l'aide de la plate-forme AMD SEV, qui chiffre le contenu de la mémoire des VM pendant l'utilisation. Le chiffrement en cours d'utilisation est l'un des trois états du chiffrement de bout en bout.
Lorsque vous activez les nœuds Confidential GKE Node sur un cluster ou un pool de nœuds, les données des charges de travail exécutées sur les nœuds confidentiels sont chiffrées en cours d'utilisation. Pour plus de visibilité sur votre plan de contrôle, utilisez Access Transparency.
Vous pouvez activer les nœuds Confidential GKE Node lorsque vous effectuez l'une des opérations suivantes:
- Créer un cluster
- Créer un pool de nœuds
- Mettre à jour un pool de nœuds existant
Vous ne pouvez pas mettre à jour un cluster existant pour modifier le paramètre "Confidential GKE Nodes" au niveau du cluster.
Le tableau suivant présente le comportement de GKE qui s'applique lorsque vous activez les nœuds Confidential GKE Node au niveau du cluster ou du pool de nœuds:
Paramètre "Confidential GKE Nodes" | Procédure de configuration | Comportement |
---|---|---|
Au niveau du cluster | Créer un cluster | Tous les nœuds du cluster d'un pool de nœuds utilisent des nœuds Confidential GKE Node. Vous ne pouvez pas effectuer les opérations suivantes :
|
Au niveau du pool de nœuds |
|
Vous ne pouvez configurer des nœuds Confidential GKE Node pour les pools de nœuds que lorsque cette fonctionnalité est désactivée au niveau du cluster. |
Tarifs
Le déploiement de nœuds Confidential GKE Node n'entraîne aucun coût supplémentaire, en dehors du coût des Confidential VMs de Compute Engine. Toutefois, 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 standards. Pour en savoir plus sur la tarification des journaux, consultez la page Tarifs de Google Cloud Observability.
Disponibilité
Les nœuds Confidential GKE Node sont disponibles dans les situations suivantes :
Les nœuds Confidential GKE Node ne sont disponibles que dans les zones et les régions dans lesquelles les instances N2D ou les instances C2D sont disponibles.
Les nœuds Confidential GKE Node peuvent être utilisés avec Container-Optimized OS et Container-Optimized OS avec containerd (
cos_containerd
).
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 Confidential GKE Node sur des clusters
Vous pouvez créer un cluster avec des nœuds Confidential GKE Node activés à l'aide de gcloud CLI ou de la console Google Cloud. Si vous activez les nœuds Confidential GKE Node au niveau du cluster, tous les nœuds du cluster sont des Confidential VM.
gcloud
Lors de la création d'un cluster, spécifiez l'option --enable-confidential-nodes
dans gcloud CLI :
gcloud container clusters create CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--enable-confidential-nodes
Remplacez les éléments suivants :
- CLUSTER_NAME : nom de votre nouveau cluster
- MACHINE_TYPE : type de machine du pool de nœuds par défaut de votre cluster, qui doit être le type de machine N2D ou le type de machine C2D
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur add_box Créer.
Dans la section Standard, cliquez sur Configurer.
Dans le volet de navigation, cliquez sur Sécurité sous Cluster.
Cochez la case Activer les nœuds Confidential GKE Node.
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 régional.
Après la création d'un cluster avec des nœuds Confidential GKE Node, les pools de nœuds créés dans ce cluster ne peuvent utiliser que des nœuds confidentiels. Vous ne pouvez pas créer de pools de nœuds standards dans des clusters où les nœuds Confidential GKE Node sont activés. Vous ne pouvez pas non plus désactiver les nœuds Confidential GKE Node sur des pools de nœuds individuels lorsque vous activez les nœuds Confidential GKE Node au niveau du cluster.
Activer les nœuds Confidential GKE Node sur des pools 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.
Créer un pool de nœuds
Pour créer un pool de nœuds avec les nœuds Confidential GKE Node activés, exécutez la commande suivante :
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--enable-confidential-nodes
Remplacez les éléments suivants :
- NODE_POOL_NAME : nom de votre nouveau pool de nœuds.
- CLUSTER_NAME : nom du cluster
- MACHINE_TYPE : type de machine de votre pool de nœuds, qui doit être un type de machine N2D ou le type de machine C2D
Mettre à jour un pool de nœuds existant
Vous pouvez activer les nœuds Confidential GKE Node sur des pools de nœuds existants qui utilisent le type de machine N2D ou le type de machine C2D. Exécutez la commande ci-dessous.
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-confidential-nodes
Remplacez les éléments suivants :
- NODE_POOL_NAME : nom de votre pool de nœuds.
- CLUSTER_NAME : nom du cluster
Vérifier que les nœuds Confidential GKE Node sont activés
Sur des clusters
Vous pouvez vérifier que votre cluster utilise des nœuds Confidential GKE Node à l'aide de gcloud CLI ou de la console Google Cloud.
gcloud
Décrivez le cluster :
gcloud container clusters describe CLUSTER_NAME
Si les nœuds Confidential GKE Node sont activés, le résultat de la commande inclut les lignes suivantes :
confidentialNodes:
enabled: true
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur le nom du cluster que vous souhaitez inspecter.
Sous Sécurité, dans le champ Nœuds Confidential GKE Node, vérifiez que les nœuds Confidential GKE Node sont Activés.
Sur des pools de nœuds
Pour vérifier que votre pool de nœuds utilise des nœuds Confidential GKE Node, exécutez la commande suivante :
gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME
Si les nœuds Confidential GKE Node sont activés, le résultat ressemble à ce qui suit :
confidentialNodes:
enabled: true
Sur les nœuds
Pour valider la confidentialité de nœuds spécifiques, vous pouvez :
- vérifier que la plate-forme AMD SEV est activée, ou
- vérifier qu'il s'agit d'une Confidential VM à l'aide de Cloud Monitoring.
Exécuter des applications sur des nœuds Confidential GKE Node
L'approche de Google en matière d'informatique confidentielle consiste à permettre une migration Lift and Shift sans effort pour les applications existantes. Les charges de travail GKE que vous exécutez aujourd'hui peuvent s'exécuter sur des nœuds Confidential GKE Node sans modification du code.
Si vous souhaitez indiquer de manière déclarative que vos charges de travail ne doivent s'exécuter que sur des clusters avec nœuds Confidential GKE Node, vous pouvez utiliser le sélecteur de nœuds cloud.google.com/gke-confidential-nodes
.
Voici un exemple de spécification de pod utilisant ce sélecteur :
apiVersion: v1
kind: Pod
spec:
containers:
- name: my-confidential-app
image: us-docker.pkg.dev/myproject/myrepo/my-confidential-app
nodeSelector:
cloud.google.com/gke-confidential-nodes: "true"
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 les nœuds Confidential GKE Node. 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, par exemple :
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é
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.
Créez la StorageClass :
kubectl create -f hdb-example-class.yaml
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 :
- Toutes les limites des instances Confidential VMs de Compute Engine s'appliquent aux nœuds Confidential GKE Node.
- Les nœuds Confidential GKE Node disposant du type de machine C2D ne peuvent utiliser le provisionnement automatique des nœuds que dans GKE 1.24 ou une version ultérieure.
- Les nœuds Confidential GKE Node ne sont compatibles avec les PersistentVolumes sauvegardés par des disques persistants que si votre plan de contrôle exécute GKE 1.22 ou une version ultérieure. Pour obtenir les instructions correspondantes, consultez la page Utiliser le pilote CSI de disque persistant Compute Engine.
- Les nœuds Confidential GKE Node ne sont pas compatibles avec les GPU.
- Les nœuds Confidential GKE Node ne sont pas compatibles avec les nœuds à locataire unique.
- Les nœuds Confidential GKE Node ne sont compatibles qu'avec le stockage éphémère sur des disques SSD locaux, mais pas avec les disques SSD locaux en général.
- Seuls les nœuds Container-Optimized OS sont acceptés. Les nœuds Ubuntu et Windows ne sont pas acceptés.
- Les clusters Autopilot ne sont pas compatibles avec les nœuds Confidential GKE Node.
- Pour en savoir plus sur le mode Confidential pour Hyperdisk équilibré, consultez la section Limites.
Limites de la migration à chaud
Certains types de machines Compute Engine Confidential VM sont compatibles avec la migration à chaud, qui minimise les interruptions potentielles de la charge de travail en cas d'événement de maintenance de l'hôte. La migration à chaud a lieu 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 lors de l'ajout de la migration à chaud, mettez à niveau manuellement les pools de nœuds vers la même version compatible ou une version différente. La mise à niveau des nœuds déclenche leur recréation, et la migration en direct est activée pour les nouveaux nœuds.
Pour en savoir plus sur les types de machines Compute Engine compatibles avec la migration à chaud, consultez la section 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
La désactivation des nœuds Confidential GKE Node ne fonctionne que pour les pools de nœuds sur lesquels les nœuds Confidential GKE Node sont activés. Si le cluster est créé avec des nœuds Confidential GKE Node, vous ne pouvez pas désactiver cette fonctionnalité. Exécutez la commande suivante pour désactiver les nœuds Confidential GKE Node sur un pool de nœuds :
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--no-enable-confidential-nodes
Étapes suivantes
- Apprenez-en plus sur les Confidential VMs.
- Obtenez plus d'informations sur les images de nœuds.
- Apprenez-en plus sur le chiffrement au repos dans Google Cloud.
- Apprenez-en plus sur le chiffrement en transit dans Google Cloud.
- Apprenez-en plus sur les clés de chiffrement gérées par le client (CMEK).
- Apprenez-en plus sur le chiffrement des secrets au niveau de la couche d'application.