Usar Confidential GKE Node


En esta página, se muestra cómo usar la función de Confidential Google Kubernetes Engine Nodes. Los Confidential GKE Node proporcionan encriptación en uso para tus cargas de trabajo.

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. Los clústeres con Confidential GKE Nodes habilitados aplican el uso de la Confidential VM en todos los nodos. Esto significa que tus nodos, incluidas las cargas de trabajo que se ejecutan en ellos, se encriptan en uso. Para obtener visibilidad del plano de control, usa la Transparencia de acceso.

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:

  • Asegúrate de que habilitaste la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Asegúrate de que instalaste Google Cloud CLI.
  • Establece la configuración predeterminada de Google Cloud CLI para tu proyecto mediante uno de los siguientes métodos:
    • Usa gcloud init si deseas ver una explicación sobre cómo configurar los valores predeterminados del proyecto.
    • Usa gcloud config para configurar el ID, la zona y la región del proyecto de manera individual.

    gcloud init

    1. Ejecuta gcloud init y sigue las instrucciones:

      gcloud init

      Si usas SSH en un servidor remoto, usa la marca --console-only para evitar que el comando abra un navegador:

      gcloud init --console-only
    2. Sigue las instrucciones para autorizar a la CLI de gcloud a usar tu cuenta de Google Cloud.
    3. Crea una configuración nueva o selecciona una existente.
    4. Elige un proyecto de Google Cloud.
    5. Elige una zona de Compute Engine predeterminada.
    6. Elige una región de Compute Engine predeterminada.

    gcloud config

    1. Establece tu ID del proyecto predeterminado:
      gcloud config set project PROJECT_ID
    2. Configura la región de Compute Engine predeterminada (por ejemplo, us-central1):
      gcloud config set compute/region COMPUTE_REGION
    3. Configura la zona de Compute Engine predeterminada (por ejemplo, us-central1-c):
      gcloud config set compute/zone COMPUTE_ZONE
    4. Actualiza gcloud a la versión más reciente:
      gcloud components update

    Cuando configuras las ubicaciones predeterminadas, puedes evitar errores en la CLI de gcloud como el siguiente: One of [--zone, --region] must be supplied: Please specify location.

Habilita Confidential GKE Node en clústeres

Puedes crear un clúster nuevo con los Confidential GKE Node habilitados mediante la CLI de gcloud o Google Cloud Console. 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 Google Cloud:

gcloud beta container clusters create CLUSTER_NAME \
    --machine-type=N2D_MACHINE_TYPE \
    --enable-confidential-nodes

Reemplaza lo siguiente:

  • CLUSTER_NAME: Es el nombre del clúster nuevo.
  • N2D_MACHINE_TYPE: Es el tipo de máquina para el grupo de nodos predeterminado del clúster, que debe ser un tipo de máquina N2d.

Console

  1. Ve a la página de Google Kubernetes Engine en la consola de 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 como desees.

  7. Haga clic en Crear.

Consulta Crea un clúster para obtener más detalles sobre la creación de clústeres

Después de crear un clúster con Confidential GKE Nodes, 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 Node habilitado. Tampoco puedes inhabilitar Confidential GKE Node en grupos de nodos individuales cuando habilitas Confidential GKE Node 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.

En un grupo de nodos nuevo

Para crear un grupo de nodos nuevo con Confidential GKE Node habilitado, ejecuta el siguiente comando:

gcloud beta container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --machine-type=N2D_MACHINE_TYPE \
    --enable-confidential-nodes

Reemplaza lo siguiente:

  • NODE_POOL_NAME: es el nombre de tu grupo de nodos nuevo.
  • CLUSTER_NAME: El nombre de tu clúster.
  • N2D_MACHINE_TYPE: El tipo de máquina para tu grupo de nodos, que debe ser un tipo de máquina N2D.

En un grupo de nodos existente

Puedes habilitar Confidential GKE Node en grupos de nodos existentes que usen el tipo de máquina N2D. Ejecuta el siguiente comando:

gcloud beta 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 los Confidential GKE Node estén habilitados

En clústeres

Puedes verificar que tu clúster esté utilizando los Confidential GKE Node con Google Cloud CLI o Google Cloud Console.

gcloud

Describe el clúster:

gcloud beta container clusters describe CLUSTER_NAME

Si Confidential GKE Node están habilitado, el resultado del comando incluirá las siguientes líneas:

confidentialNodes:
  enabled: true

Console

  1. Ve a la página de Google Kubernetes Engine en la consola de 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 beta 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 los Confidential GKE Node

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 Node, puedes usar el selector de nodos 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

Limitaciones

Ten en cuenta las siguientes limitaciones antes de habilitar los Confidential GKE Node en un clúster nuevo:

  • Confidential GKE Node no admite PersistentVolumes respaldados por discos persistentes.
  • Los Confidential GKE Node no son compatibles con las GPU.
  • Los Confidential GKE Node no son compatibles con los nodos de usuario único.
  • Los Confidential GKE Node no admiten SSD locales en general, pero admiten el uso de almacenamiento efímero en SSD locales.
  • Solo se admiten los nodos de Container-Optimized OS. Los nodos de Ubuntu y Windows no son compatibles.

Inhabilita Confidential GKE Node

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 beta container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --no-enable-confidential-nodes

¿Qué sigue?