En esta página, se muestra cómo aplicar la encriptación de datos en uso en tus nodos y cargas de trabajo mediante Confidential Google Kubernetes Engine Nodes.
Descripción general
Confidential GKE Node se compila sobre la Confidential VM de Compute Engine, que encripta el contenido de la memoria de las VM en uso. La encriptación en uso es uno de los tres estados de la encriptación de extremo a extremo.
Cuando habilitas Confidential GKE Nodes en un clúster o en un grupo de nodos, los datos en las cargas de trabajo que se ejecutan en los nodos confidenciales se encriptan en uso. Para obtener visibilidad del plano de control, usa la Transparencia de acceso.
Puedes habilitar Confidential GKE Nodes cuando realices una de las siguientes acciones:
- Crea un clúster nuevo
- Crear un grupo de nodos nuevo
- Actualiza un grupo de nodos existente
No puedes actualizar un clúster existente para cambiar la configuración de Confidential GKE Nodes a nivel de clúster.
En la siguiente tabla, se muestra el comportamiento de GKE que se aplica cuando habilitas Confidential GKE Nodes a nivel de clúster o de grupo de nodos:
Configura Confidential GKE Nodes | Cómo configurar | Comportamiento |
---|---|---|
Nivel de clúster | Crea un clúster nuevo | Todos los nodos del clúster de cualquier grupo de nodos usan Confidential GKE Nodes. No puedes hacer lo siguiente:
|
Nivel de grupo de nodos |
|
Solo puedes configurar Confidential GKE Nodes para grupos de nodos cuando esta función está inhabilitada a nivel de clúster. |
Precios
No se aplican costos adicionales para implementar los Confidential GKE Node, excepto el costo de la Confidential VM de Compute Engine. Sin embargo, los Confidential GKE Node pueden generar un poco más de datos de registro en el inicio que los nodos estándar. Para obtener información sobre el precio de los registros, consulta Precios de Google Cloud's operations suite.
Disponibilidad
Confidential GKE Node está disponible en las siguientes situaciones:
- Los Confidential GKE Node solo están disponibles en zonas y regiones con instancias N2D o instancias C2D disponibles.
- Confidential GKE Nodes puede usarse con Container-Optimized OS y Container-Optimized OS con containerd (
cos_containerd
).
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa la CLI de gcloud. Si ya instalaste la CLI de gcloud, ejecuta
gcloud components update
para obtener la versión más reciente.
Habilita Confidential GKE Node en clústeres
Puedes crear un clúster nuevo con Confidential GKE Nodes habilitados mediante la CLI de gcloud o la consola de Google Cloud. Si habilitas Confidential GKE Node a nivel de clúster, todos los nodos del clúster son Confidential VM.
gcloud
Cuando crees un clúster nuevo, especifica la opción --enable-confidential-nodes
en la CLI de gcloud:
gcloud container clusters create CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--enable-confidential-nodes
Reemplaza lo siguiente:
- CLUSTER_NAME: Es el nombre del clúster nuevo.
- MACHINE_TYPE: es el tipo de máquina para el grupo de nodos predeterminado del clúster, que debe ser el tipo de máquina N2D o el tipo de máquina C2D.
Consola
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en add_box Crear.
En la sección Estándar, haz clic en Configurar.
En el panel de navegación, en Clúster, haz clic en Seguridad.
Selecciona la casilla de verificación Habilitar Confidential GKE Node.
Configura tu clúster según sea necesario.
Haga clic en Crear.
Consulta Crea un clúster regional para obtener más detalles sobre la creación de clústeres.
Después de crear un clúster con Confidential GKE Node, cualquier grupo de nodos creado en este clúster solo puede usar nodos confidenciales. No puedes crear grupos de nodos normales en clústeres con Confidential GKE Nodes habilitado. Tampoco puedes inhabilitar Confidential GKE Nodes en grupos de nodos individuales cuando habilitas Confidential GKE Nodes a nivel de clúster.
Habilita Confidential GKE Node en grupos de nodos
Puedes habilitar Confidential GKE Node en grupos de nodos específicos si Confidential GKE Node está inhabilitado a nivel de clúster.
Crear un grupo de nodos nuevo
Para crear un grupo de nodos nuevo con Confidential GKE Node habilitado, ejecuta el siguiente comando:
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--enable-confidential-nodes
Reemplaza lo siguiente:
- NODE_POOL_NAME: es el nombre de tu grupo de nodos nuevo.
- CLUSTER_NAME: es el nombre de tu clúster.
- MACHINE_TYPE: es el tipo de máquina para tu grupo de nodos, que debe ser un tipo de máquina N2D o el tipo de máquina C2D.
Actualiza un grupo de nodos existente
Puedes habilitar los Confidential GKE Node en grupos de nodos existentes que usen el tipo de máquina N2D o el tipo de máquina C2D. Ejecuta el siguiente comando:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-confidential-nodes
Reemplaza lo siguiente:
- NODE_POOL_NAME: es el nombre de tu grupo de nodos.
- CLUSTER_NAME: El nombre de tu clúster.
Verifica que Confidential GKE Nodes estén habilitados
En clústeres
Puedes verificar que tu clúster esté utilizando Confidential GKE Node con Google Cloud CLI o la consola de Google Cloud.
gcloud
Describe el clúster:
gcloud container clusters describe CLUSTER_NAME
Si Confidential GKE Nodes están habilitados, se incluyen las siguientes líneas en el resultado del comando:
confidentialNodes:
enabled: true
Consola
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en el nombre del clúster que deseas inspeccionar.
En Seguridad, en el campo Confidential GKE Node, verifica que los Confidential GKE Node estén habilitados.
En grupos de nodos
Para verificar que tu grupo de nodos use Confidential GKE Node, ejecuta el siguiente comando:
gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME
Si Confidential GKE Node están habilitado, el resultado es similar al siguiente:
confidentialNodes:
enabled: true
En nodos
Para validar la confidencialidad de los nodos específicos, puedes hacer lo siguiente:
Ejecuta aplicaciones en Confidential GKE Nodes
El enfoque de Google respecto de Confidential Computing es permitir que las aplicaciones existentes puedan realizar una migración lift-and-shift sin esfuerzo. Las cargas de trabajo de GKE que ejecutas hoy pueden ejecutarse en los Confidential GKE Node sin cambios en el código.
De manera opcional, si deseas expresar de forma declarativa que tus cargas de trabajo solo deben ejecutarse en clústeres con Confidential GKE Nodes, puedes usar el selector de nodos de cloud.google.com/gke-confidential-nodes
.
A continuación, se muestra un ejemplo de una especificación de Pod que usa este selector:
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
Establece restricciones de políticas de la organización
Puedes definir una restricción de política de la organización para garantizar que todos los recursos de VM creados en tu organización sean instancias de Confidential VMs.
Para GKE, puedes personalizar la restricción Restringir el procesamiento no confidencial para exigir que todos los clústeres nuevos se creen con Confidential GKE Nodes habilitados. Agrega el nombre del Service de la API container.googleapis.com
a la lista de denegación cuando apliques restricciones de políticas de la organización, por ejemplo:
gcloud resource-manager org-policies deny \
constraints/compute.restrictNonConfidentialComputing compute.googleapis.com container.googleapis.com \
--project=PROJECT_ID
Reemplaza PROJECT_ID con el ID del proyecto.
Limitaciones
Confidential GKE Nodes tienen las siguientes limitaciones:
- Todas las limitaciones de las instancias de Confidential VM de Compute Engine se aplican a los Confidential GKE Nodes.
- Las instancias de Confidential VM finalizan cuando se produce un evento de mantenimiento del host, lo que hace que el nodo entre en un estado
NotReady
. Los Pods en ejecución experimentarán interrupciones hasta que el nodo vuelva a estar listo. Si el mantenimiento lleva más de cinco minutos, GKE podría intentar volver a crear los Pods en otros nodos. - Confidential GKE Nodes que tengan el tipo de máquina C2D solo pueden usar el aprovisionamiento automático de nodos en la versión de GKE 1.24 o una posterior.
- Confidential GKE Nodes solo admiten PersistentVolumes respaldados por discos persistentes si tu plano de control ejecuta la versión de GKE 1.22 o una posterior. Para obtener instrucciones, consulta Usa el controlador de CSI de disco persistente de Compute Engine.
- Los Confidential GKE Node no son compatibles con las GPU.
- Los Confidential GKE Node no son compatibles con los nodos de usuario único.
- Confidential GKE Nodes solo admiten el uso del almacenamiento efímero en SSD locales, pero no admiten el uso de SSD locales en general.
- Solo se admiten los nodos de Container-Optimized OS. Los nodos de Ubuntu y Windows no son compatibles.
- Los clústeres de Autopilot no admiten nodos de GKE confidenciales.
Inhabilitar Confidential GKE Nodes
La inhabilitación de Confidential GKE Node solo funciona para los grupos de nodos que habilitaron Confidential GKE Node. Si el clúster se crea con Confidential GKE Node, no puedes inhabilitar la función. Ejecuta el siguiente comando para inhabilitar Confidential GKE Node en un grupo de nodos:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--no-enable-confidential-nodes
¿Qué sigue?
- Obtén más información sobre la Confidential VM.
- Usa nodos de GKE protegidos.
- Obtén más información sobre la encriptación en reposo de Google Cloud.
- Obtén más información sobre la encriptación en tránsito de Google Cloud.
- Obtén más información sobre las claves de encriptación administradas por el cliente (CMEK).
- Obtén más información sobre la encriptación de secretos de la capa de la aplicación.