Encripta los datos en uso de cargas de trabajo con Confidential Google Kubernetes Engine Nodes


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:
  • Inhabilitar Confidential GKE Nodes para un grupo de nodos nuevo o existente en el clúster
  • Inhabilitar Confidential GKE Nodes en el clúster
  • Habilitar Confidential GKE Nodes en clústeres existentes
Nivel de grupo de nodos
  • Crear un grupo de nodos nuevo
  • Actualiza un grupo de nodos existente
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:

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

  1. Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.

    Ir a Google Kubernetes Engine

  2. Haz clic en Crear.

  3. En la sección Estándar, haz clic en Configurar.

  4. En el panel de navegación, en Clúster, haz clic en Seguridad.

  5. Selecciona la casilla de verificación Habilitar Confidential GKE Node.

  6. Configura tu clúster según sea necesario.

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

  1. Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.

    Ir a Google Kubernetes Engine

  2. Haz clic en el nombre del clúster que deseas inspeccionar.

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

  1. Valida la SEV de AMD habilitada
  2. Validar Confidential VM mediante Cloud Monitoring.

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:

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?