En esta página, se muestra cómo aplicar la encriptación de datos en uso en tus nodos y cargas de trabajo con Confidential Google Kubernetes Engine Nodes. Aplicar la encriptación puede ayudar a aumentar la seguridad de tus cargas de trabajo.
Esta página está dirigida a los especialistas en seguridad que implementan medidas de seguridad en GKE. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud , consulta Roles y tareas comunes de los usuarios de GKE.
Antes de leer esta página, asegúrate de estar familiarizado con el concepto de datos en uso.
¿Qué son los Confidential GKE Nodes?
Puedes encriptar tus cargas de trabajo con nodos de GKE confidenciales o el modo confidencial para Hyperdisk Balanced.
Confidential GKE Nodes
Los Confidential GKE Nodes usan la Confidential VM de Compute Engine para proteger los datos en uso con la encriptación de memoria basada en hardware. Confidential GKE Nodes admite las siguientes tecnologías de Confidential Computing:
- Virtualización encriptada segura (SEV) de AMD
- Virtualización encriptada segura de AMD-Páginas anidadas seguras (SEV-SNP)
- Extensiones de dominio de confianza Intel (TDX)
Para obtener más información sobre estas tecnologías y ayuda para elegir la tecnología óptima según tus requisitos, consulta la Descripción general de Confidential VM.
Los nodos confidenciales de GKE no cambian las medidas de seguridad que GKE aplica a los planos de control de los clústeres. Para obtener más información sobre estas medidas, consulta Seguridad del plano de control. Para obtener visibilidad sobre quién accede a los planos de control en tus proyectos de Google Cloud, usa la Transparencia de acceso.
Puedes habilitar Confidential GKE Nodes para clústeres completos, grupos de nodos específicos o cargas de trabajo específicas. En la siguiente tabla, se describen estos métodos de habilitación:
Configura Confidential GKE Nodes | Descripción | Comportamiento |
---|---|---|
Nivel de las cargas de trabajo | Configura nodos de GKE confidenciales en un objeto ComputeClass y, luego, selecciona ese objeto ComputeClass en una carga de trabajo. GKE crea nodos que usan esa configuración para ejecutar tus Pods. | El parámetro de configuración de la carga de trabajo admite cualquiera de las siguientes tecnologías de Confidential Computing, independientemente del modo del clúster o del tipo de grupo de nodos:
|
Nivel de clúster | Este parámetro de configuración es irreversible.
Habilita los Confidential GKE Nodes cuando crees un clúster de Autopilot o Standard nuevo. Todos los nodos del clúster usan Confidential GKE Nodes. No puedes anular la configuración del clúster para grupos de nodos o cargas de trabajo individuales. |
Las tecnologías admitidas a nivel del clúster dependen del modo de operación del clúster, de la siguiente manera:
|
Nivel de grupo de nodos | Habilita los Confidential GKE Nodes cuando crees un grupo de nodos nuevo en un clúster estándar. Solo puedes usar este método si Confidential GKE Nodes está inhabilitado a nivel del clúster. | Las tecnologías compatibles a nivel del grupo de nodos dependen de si el grupo de nodos usa el aprovisionamiento automático de nodos, como se indica a continuación:
|
Modo confidencial para Hyperdisk Balanced
También puedes habilitar el modo confidencial para Hyperdisk Balanced en el almacenamiento de tu disco de arranque, que encripta tus datos en enclaves adicionales respaldados por hardware.
Puedes habilitar el modo confidencial para Hyperdisk Balanced cuando realices una de las siguientes acciones:
- Crea un clúster nuevo
- Crear un grupo de nodos nuevo
No puedes actualizar un clúster o un grupo de nodos existente para cambiar el parámetro de configuración del modo confidencial para Hyperdisk Balanced.
En la siguiente tabla, se muestra el comportamiento de GKE que se aplica cuando habilitas el modo confidencial para el parámetro de configuración Hyperdisk Balanced a nivel del clúster o del grupo de nodos:
Parámetro de configuración del modo confidencial para Hyperdisk Balanced | Cómo configurar | Comportamiento |
---|---|---|
Nivel de clúster | Crea un clúster nuevo | Solo el grupo de nodos predeterminado del clúster usará el parámetro de configuración del modo confidencial para Hyperdisk Balanced. No puedes hacer lo siguiente:
|
Nivel de grupo de nodos | Crear un grupo de nodos nuevo | Puedes configurar el parámetro de configuración del modo confidencial para Hyperdisk Balanced en cualquier grupo de nodos nuevo en el momento de la creación. No puedes actualizar los grupos de nodos existentes para que usen el parámetro de configuración del modo confidencial de Hyperdisk Balanced. |
Precios
Se aplican los siguientes precios, según cómo configures los Confidential GKE Nodes:
Precios de Confidential GKE Nodes | |
---|---|
A nivel de la carga de trabajo | En las cargas de trabajo de Autopilot, se aplican los siguientes costos:
En las cargas de trabajo estándar, se aplican los siguientes costos:
|
Nivel de clúster | En los clústeres de Autopilot, se aplican los siguientes costos:
En los clústeres de Standard, se aplican los siguientes costos:
|
Nivel de grupo de nodos | En los grupos de nodos estándar, se aplican los siguientes costos:
|
Además, los Confidential GKE Nodes pueden generar un poco más de datos de registro en el inicio que los nodos que no son Confidential GKE Nodes. Para obtener más información sobre los precios de los registros, consulta Precios de Google Cloud Observability.
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 quieres usar Google Cloud CLI para esta tarea,
instala y, luego,
inicializa
gcloud CLI. Si ya instalaste gcloud CLI, ejecuta
gcloud components update
para obtener la versión más reciente.
Requisitos
Confidential GKE Nodes tiene los siguientes requisitos:
- Los clústeres de Autopilot deben ejecutar la versión 1.30.2 de GKE o una posterior.
Los clústeres estándar deben ejecutar una de las siguientes versiones de GKE, según la tecnología de Confidential Computing que elijas:
- AMD SEV: Cualquier versión de GKE
- AMD SEV-SNP: 1.32.2-gke.1297000 o versiones posteriores
- Intel TDX: 1.32.2-gke.1297000 o posterior
Para habilitar los nodos confidenciales de GKE a nivel de la carga de trabajo, los clústeres de Autopilot y Standard deben ejecutar la versión 1.33.3-gke.1392000 o posterior de GKE.
Los nodos deben usar un tipo de máquina que admita la tecnología de Confidential Computing que elijas. Para obtener más información, consulta Tipos de máquinas, CPU y zonas.
Los planos de control y los nodos del clúster deben estar en una ubicación que admita la tecnología de Confidential Computing que elijas. Para obtener más información, consulta Cómo ver las zonas admitidas.
Configura Confidential GKE Nodes a nivel de la carga de trabajo
Para habilitar Confidential GKE Nodes en cargas de trabajo individuales, debes usar un objeto ComputeClass. Las ComputeClasses son recursos personalizados de Kubernetes que te permiten definir los atributos de los nodos nuevos que crea GKE y controlar el comportamiento de resguardo si el hardware no está disponible. Las ComputeClasses admiten todas las tecnologías de Confidential Computing disponibles para GKE, incluso si una tecnología específica no se admite a nivel del clúster o del grupo de nodos.
Para configurar Confidential GKE Nodes a nivel de la carga de trabajo, sigue estos pasos:
Opcional: En el caso de los clústeres de GKE estándar, habilita el aprovisionamiento automático de nodos para el clúster. En el caso de los clústeres de Autopilot, omite este paso.
Si decides usar ComputeClasses solo con grupos de nodos creados manualmente, también debes configurar manualmente los taints y las etiquetas de nodos en esos grupos de nodos. Esta configuración manual adicional puede hacer que notes menos beneficios por usar una ComputeClass para crear Confidential GKE Nodes.
Guarda el siguiente manifiesto de ComputeClass como un archivo YAML. Para obtener más información sobre los campos y valores admitidos para ComputeClasses, consulta la CustomResourceDefinition de 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
Reemplaza lo siguiente:
COMPUTE_CLASS
: Es un nombre para tu nueva clase de procesamiento.CONFIDENTIAL_COMPUTE_TECHNOLOGY
: Es la tecnología de Confidential Computing que se usará. Se admiten los siguientes valores:SEV
para AMD SEVSEV_SNP
para AMD SEV-SNPTDX
para Intel TDX
ZONE1,ZONE2,...
: Son las zonas en las que se crearán los nodos, como['us-central1-a','us-central1-b']
. Especifica las zonas que admiten la tecnología de Confidential Computing que especificaste. Para obtener más información, consulta Cómo ver las zonas admitidas.MACHINE_SERIES
: Es la serie de máquinas para los nodos, comon2d
. Especifica una serie de máquinas que admita la tecnología de Confidential Computing que especificaste. Para obtener más información, consulta Tipos de máquinas, CPU y zonas.MACHINE_TYPE
el tipo de máquina para los nodos, comon2d-standard-4
. Especifica un tipo de máquina que admita la tecnología de Confidential Computing que especificaste. Para obtener más información, consulta Tipos de máquinas, CPU y zonas.
Este manifiesto incluye el campo
spec.nodePoolAutoCreation
con un valor deenabled: true
, lo que permite que GKE cree grupos de nodos nuevos con el aprovisionamiento automático de nodos.Crea el objeto ComputeClass en tu clúster:
kubectl apply -f PATH_TO_COMPUTE_CLASS_MANIFEST
Reemplaza
PATH_TO_COMPUTE_CLASS_MANIFEST
por la ruta de acceso al archivo de manifiesto de ComputeClass.Guarda el siguiente manifiesto de Deployment como un archivo YAML:
Crea el Deployment:
kubectl apply -f PATH_TO_DEPLOYMENT_MANIFEST
Reemplaza
PATH_TO_DEPLOYMENT_MANIFEST
por la ruta de acceso al archivo de manifiesto de la Deployment.
Los nodos nuevos que GKE crea para esta carga de trabajo usan la tecnología de Confidential Computing que especificaste. Estos nodos se ejecutan en una de las zonas que seleccionaste, en un tipo de máquina que definiste en ComputeClass. GKE agrega taints y etiquetas de nodos para que solo los Pods que seleccionen la misma ComputeClass puedan ejecutarse en los nodos.
Configura Confidential GKE Nodes a nivel del clúster
Puedes habilitar Confidential GKE Nodes para todo un clúster de Autopilot o Standard, lo que significa que cada nodo de los clústeres usa Confidential GKE Nodes. Como resultado, todas las cargas de trabajo que implementes en ese clúster se ejecutarán en Confidential GKE Nodes. No puedes anular la configuración del clúster en cargas de trabajo o grupos de nodos individuales.
Crea un clúster de Autopilot nuevo
Los clústeres de Autopilot solo admiten AMD SEV a nivel del clúster. Cuando habilitas los Confidential GKE Nodes, la serie de máquinas predeterminada en el clúster de Autopilot cambia a N2D. Todas tus cargas de trabajo se ejecutan en estos nodos confidenciales sin necesidad de cambiar los manifiestos de carga de trabajo.
Ejecuta el siguiente comando:
gcloud container clusters create-auto CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-confidential-nodes
Reemplaza lo siguiente:
CLUSTER_NAME
: Es el nombre del clúster de Autopilot.CONTROL_PLANE_LOCATION
: Es la región de Compute Engine para el plano de control del clúster, comous-central1
.
El clúster debe ejecutar la versión 1.30.2 o una posterior. Para obtener más información, consulta Crea un clúster de Autopilot con un canal y una versión de lanzamiento específicos.
Crea un clúster estándar nuevo
Puedes especificar una tecnología de Confidential Computing para tus nodos cuando creas un clúster de Standard. Especificar la tecnología cuando creas un clúster tiene los siguientes efectos:
- En ese clúster, solo puedes crear grupos de nodos o cargas de trabajo que usen Confidential GKE Nodes.
- No puedes actualizar el clúster para inhabilitar los Confidential GKE Nodes.
- No puedes anular la tecnología de Confidential Computing a nivel del clúster en cargas de trabajo o grupos de nodos individuales.
La configuración de un parámetro de Confidential Computing a nivel del clúster es permanente. Por lo tanto, considera los siguientes casos de uso antes de crear tu clúster:
- Para usar el aprovisionamiento automático de nodos en tu clúster, debes configurar opciones específicas en el comando de creación del clúster. Para obtener más información, consulta la sección Usa Confidential GKE Nodes con el aprovisionamiento automático de nodos.
- Para usar diferentes tecnologías de Confidential Computing para encriptar grupos de nodos específicos en el clúster, omite esta sección y configura Confidential GKE Nodes a nivel del grupo de nodos.
Para crear un clúster en modo estándar que use Confidential GKE Nodes, selecciona una de las siguientes opciones:
gcloud
Al crear un clúster nuevo, especifica la opción --confidential-node-type
en la CLI de gcloud:
gcloud container clusters create CLUSTER_NAME \
--location=LOCATION \
--machine-type=MACHINE_TYPE \
--node-locations=ZONE1,ZONE2,... \
--confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY
Reemplaza lo siguiente:
CLUSTER_NAME
: El nombre de tu clúster.LOCATION
: Es la ubicación de Compute Engine para el plano de control del clúster. La ubicación debe admitir la tecnología de Confidential Computing que especifiques. Para obtener más información, consulta la sección Disponibilidad.MACHINE_TYPE
: Es un tipo de máquina que admite la tecnología de Confidential Computing que especificas. Para obtener más información, consulta la sección Disponibilidad.ZONE1,ZONE2,...
: Es una lista separada por comas de las zonas de la región del plano de control que admiten la nueva tecnología de Confidential Computing. Para obtener más información, consulta Cómo ver las zonas admitidas.CONFIDENTIAL_COMPUTE_TECHNOLOGY
: Es la tecnología de Confidential Computing que se usará. Se admiten los siguientes valores:sev
: AMD SEVsev_snp
: AMD SEV-SNPtdx
: Intel TDX
También puedes usar la marca --enable-confidential-nodes
en el comando de creación del clúster. Si solo especificas esta marca en tu comando, el clúster usará AMD SEV. El tipo de máquina que especifiques en el comando debe ser compatible con AMD SEV. Sin embargo, si especificas la marca --confidential-node-type
en el mismo comando, GKE usa el valor que especificas en la marca --confidential-node-type
.
Console
En la consola de Google Cloud , ve a la página Crea un clúster de Kubernetes.
En el menú de navegación, en la sección Clúster, haz clic en Seguridad.
Selecciona la casilla de verificación Habilitar Confidential GKE Node.
En el diálogo Cambios necesarios, haz clic en Hacer cambios.
En el menú Tipo, selecciona la tecnología de Confidential Computing que deseas usar.
Si la tecnología que seleccionas requiere una serie de máquinas de Compute Engine específica, aparecerá un diálogo. Haz clic en Realizar cambios para actualizar la serie de máquinas del grupo de nodos.
En el menú de navegación, en la sección Grupos de nodos, haz clic en default-pool.
En el panel Detalles del grupo de nodos, haz lo siguiente:
- Selecciona la casilla de verificación Especificar las ubicaciones de los nodos. Aparecerá una lista de las zonas de la región del clúster.
- Selecciona las casillas de verificación de las zonas que admiten la tecnología de Confidential Computing que seleccionaste para los nodos. Para obtener más información, consulta Cómo ver las zonas admitidas.
Haz clic en Crear.
Para obtener más información sobre la creación de clústeres, consulta Crea un clúster regional.
En el caso de cualquier grupo de nodos creado con el parámetro de configuración del modo confidencial para Hyperdisk Balanced, solo los nodos del grupo de nodos están restringidos a la configuración. Para cualquier grupo de nodos nuevo que se cree en el clúster, debes configurar el modo confidencial durante la creación.
Configura el aprovisionamiento automático de nodos
Puedes configurar el aprovisionamiento automático de nodos para usar Confidential GKE Nodes en grupos de nodos aprovisionados automáticamente. El aprovisionamiento automático de nodos admite las siguientes tecnologías de Confidential Computing:
- AMD SEV
- AMD SEV-SNP
Para usar Confidential GKE Nodes con el aprovisionamiento automático de nodos, especifica la marca --enable-confidential-nodes
de gcloud CLI cuando crees un clúster. Se aplican las siguientes consideraciones adicionales:
- Cuando crees el clúster, elige una tecnología de Confidential Computing que admita el aprovisionamiento automático de nodos. Esta elección es irreversible a nivel del clúster.
- Cuando habilitas el aprovisionamiento automático de nodos en un clúster existente, el clúster ya debe usar una tecnología de Confidential GKE Nodes que admita el aprovisionamiento automático de nodos.
- Cuando implementes cargas de trabajo, verifica que estas seleccionen la tecnología de Confidential Computing del clúster y una serie de máquinas compatible con esa tecnología.
Configura Confidential GKE Nodes a nivel del grupo de nodos
Puedes habilitar Confidential GKE Node en grupos de nodos específicos si Confidential GKE Node está inhabilitado a nivel de clúster.
Se debe especificar el modo confidencial para el parámetro de configuración de Hyperdisk Balanced durante la solicitud de creación del grupo de nodos.
Crear un grupo de nodos nuevo
Para crear un grupo de nodos nuevo con Confidential GKE Nodes habilitado, selecciona una de las siguientes opciones:
gcloud
Ejecuta el siguiente comando:
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
Reemplaza lo siguiente:
NODE_POOL_NAME
: es el nombre de tu grupo de nodos nuevo.LOCATION
: Es la ubicación de tu grupo de nodos nuevo. La ubicación debe admitir la tecnología de Confidential Computing que especifiques. Para obtener más detalles, consulta la sección Disponibilidad.CLUSTER_NAME
: El nombre de tu clúster.MACHINE_TYPE
: Es un tipo de máquina que admite la tecnología de Confidential Computing que especificas. Para obtener más detalles, consulta la sección Disponibilidad.ZONE1,ZONE2,...
: Es una lista separada por comas de las zonas de la región del clúster que admiten la nueva tecnología de Confidential Computing. Para obtener más información, consulta Cómo ver las zonas admitidas.CONFIDENTIAL_COMPUTE_TECHNOLOGY
: Es la tecnología de Confidential Computing que se usará. Se admiten los siguientes valores:sev
: AMD SEVsev_snp
: AMD SEV-SNPtdx
: Intel TDX
También puedes usar la marca --enable-confidential-nodes
en el comando de creación del clúster. Si solo especificas esta marca en tu comando, el clúster usará AMD SEV. El tipo de máquina que especifiques en el comando debe ser compatible con AMD SEV. Sin embargo, si especificas la marca --confidential-node-type
en el mismo comando, GKE usa el valor que especificas en la marca --confidential-node-type
.
Console
En la consola de Google Cloud , accede a la página de los clústeres de Kubernetes.
Haz clic en el nombre de tu clúster Standard.
Haz clic en
Agregar grupo de nodos.En el menú de navegación, haz clic en Seguridad.
En el panel Seguridad del nodo, haz lo siguiente:
- Selecciona la casilla de verificación Habilitar Confidential GKE Node.
- En el diálogo Cambios necesarios, haz clic en Hacer cambios.
En el menú Tipo, selecciona la tecnología de Confidential Computing que deseas usar.
Si la tecnología que seleccionas requiere una serie de máquinas de Compute Engine específica, aparecerá un diálogo. Haz clic en Realizar cambios para actualizar la serie de máquinas del grupo de nodos.
En el menú de navegación, haz clic en Detalles del grupo de nodos.
En el panel Detalles del grupo de nodos, haz lo siguiente:
- Selecciona la casilla de verificación Especificar las ubicaciones de los nodos. Aparecerá una lista de las zonas de la región del clúster.
- Selecciona las casillas de verificación de las zonas que admiten la tecnología de Confidential Computing que seleccionaste para los nodos. Para obtener más información, consulta Cómo ver las zonas admitidas.
Opcional: Configura otros parámetros para tu grupo de nodos.
Haz clic en Crear.
Actualiza un grupo de nodos existente
Este cambio requiere volver a crear los nodos, lo que puede causar interrupciones en tus cargas de trabajo en ejecución. Para obtener detalles sobre este cambio específico, busca la fila correspondiente en la tabla de cambios manuales que recrean los nodos con una estrategia de actualización de nodos sin respetar las políticas de mantenimiento. Para obtener más información sobre las actualizaciones de nodos, consulta Planificación de interrupciones por actualizaciones de nodos.
Puedes actualizar los grupos de nodos existentes para que usen Confidential GKE Nodes o para cambiar la tecnología de Confidential Computing que usan los nodos. El grupo de nodos debe cumplir con todos los siguientes requisitos:
- Los nodos usan un tipo de máquina que admite la tecnología de Confidential Computing elegida.
- Los nodos se ejecutan en zonas que admiten la tecnología de Confidential Computing elegida.
Dado que la disponibilidad del tipo de máquina y la ubicación pueden variar entre las tecnologías de Confidential Computing, es posible que debas actualizar estos atributos para tu grupo de nodos antes de habilitar una tecnología específica de Confidential Computing.
Para actualizar un grupo de nodos existente para usar Confidential GKE Nodes, selecciona una de las siguientes opciones:
gcloud
Puedes usar gcloud CLI para habilitar Confidential GKE Nodes en un grupo de nodos o para cambiar la tecnología de Confidential Computing de los nodos.
- Si el grupo de nodos ya usa Confidential GKE Nodes, inhabilita Confidential GKE Nodes. Espera a que se complete la operación de actualización del grupo de nodos.
Cambia el tipo de máquina del grupo de nodos y las ubicaciones de los nodos a valores admitidos para la nueva tecnología de Confidential Computing:
gcloud container node-pools update NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --location=CLUSTER_LOCATION \ --machine-type=MACHINE_TYPE \ --node-locations=ZONE1,ZONE2,...
Reemplaza lo siguiente:
NODE_POOL_NAME
: Es el nombre del grupo de nodos existente.CLUSTER_NAME
: el nombre del clústerCLUSTER_LOCATION
: Es la ubicación del clúster.MACHINE_TYPE
: Es un tipo de máquina que admite la nueva tecnología de Confidential Computing. Para obtener más información, consulta la sección Disponibilidad.ZONE1,ZONE2,...
: Es una lista separada por comas de las zonas de la región del clúster que admiten la nueva tecnología de Confidential Computing. Para obtener más información, consulta Cómo ver las zonas admitidas.
Actualiza el grupo de nodos con la tecnología de Confidential Computing que se usará:
gcloud container node-pools update NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --location=CLUSTER_LOCATION \ --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY
Reemplaza
CONFIDENTIAL_COMPUTE_TECHNOLOGY
por la tecnología de Confidential Computing que se usará. Se admiten los siguientes valores:sev
: AMD SEVsev_snp
: AMD SEV-SNPtdx
: Intel TDX
Console
Solo puedes actualizar un grupo de nodos existente para usar Confidential GKE Node si el tipo de máquina del grupo de nodos es compatible con la tecnología de Confidential Computing que elegiste. Si los nodos no usan un tipo de máquina compatible, usa las instrucciones de gcloud CLI que se indican en esta sección.
En la consola de Google Cloud , accede a la página de los clústeres de Kubernetes.
Haz clic en el nombre de tu clúster Standard.
Haz clic en la pestaña Nodos.
Haz clic en el nombre del grupo de nodos que deseas modificar.
En la página Detalles del grupo de nodos, haz clic en
Editar. Se abrirá el panel Editar grupo de nodos.En la sección Zonas, verifica que las zonas seleccionadas admitan la tecnología de Confidential Computing. Para obtener más información, consulta Cómo ver las zonas admitidas.
Si una zona seleccionada no admite la tecnología, haz lo siguiente:
- Desmarca la casilla de verificación de la zona no admitida.
- Opcional: Selecciona las casillas de verificación de otras zonas admitidas.
- Haz clic en Guardar. Espera a que se complete la operación de actualización del grupo de nodos.
- Haz clic en Editar para volver a abrir el panel Editar grupo de nodos.
En la sección Seguridad, selecciona la casilla de verificación Habilitar Confidential GKE Nodes.
En el menú Tipo, selecciona la tecnología de Confidential Computing para los nodos.
Haz clic en Guardar.
Coloca cargas de trabajo solo en grupos de nodos confidenciales
Si habilitas Confidential GKE Nodes a nivel del clúster, todas tus cargas de trabajo se ejecutarán en nodos confidenciales. No es necesario que realices cambios en tus manifiestos. Sin embargo, si habilitas Confidential GKE Node solo para grupos de nodos específicos del modo estándar a nivel del grupo de nodos, debes expresar de forma declarativa que tus cargas de trabajo solo deben ejecutarse en grupos de nodos con Confidential GKE Node.
Para requerir que una carga de trabajo se ejecute en una tecnología de Confidential Computing específica, usa un selector de nodos con la etiqueta
cloud.google.com/gke-confidential-nodes-instance-type
, como en el siguiente ejemplo: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"
Reemplaza
CONFIDENTIAL_COMPUTE_SELECTOR
por el nombre de la tecnología que usa el grupo de nodos. Este campo admite los siguientes valores, que debes especificar en mayúsculas:SEV
: AMD SEVSEV_SNP
: AMD SEV-SNPTDX
: Intel TDX
Para permitir que una carga de trabajo se ejecute en cualquier nodo confidencial, independientemente de la tecnología de Confidential Computing, usa una regla de afinidad de nodos, como en el siguiente ejemplo:
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
Para permitir que una carga de trabajo se ejecute en nodos que usan solo un subconjunto de las tecnologías de Confidential Computing disponibles, usa una regla de afinidad de nodos similar al siguiente ejemplo:
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
En el campo
values
, especifica solo las tecnologías de Confidential Computing en las que deseas ejecutar la carga de trabajo.
Verifica que Confidential GKE Nodes esté habilitado
Puedes verificar si tus clústeres o nodos usan Confidential GKE Nodes inspeccionando los clústeres, los grupos de nodos, los nodos o las instancias de Compute Engine.
Verificación para clústeres
Selecciona una de las siguientes opciones:
gcloud
Describe el clúster:
gcloud container clusters describe CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--format='yaml(confidentialNodes.confidentialInstanceType)'
Si Confidential GKE Nodes está habilitado, el resultado es similar al siguiente:
confidentialNodes:
confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR
Console
En la consola de Google Cloud , ve a la página de clústeres de Kubernetes.
Haz clic en el nombre del clúster que deseas inspeccionar.
En la sección Seguridad, verifica que el campo Confidential GKE Nodes tenga el valor Habilitado.
Verifica los grupos de nodos
Selecciona una de las siguientes opciones:
gcloud
Describe el grupo de nodos:
gcloud container node-pools describe NODE_POOL_NAME \
--location=CONTROL_PLANE_LOCATION \
--format='yaml(confidentialNodes.confidentialInstanceType,enableConfidentialStorage)'
Si Confidential GKE Nodes está habilitado, el resultado es similar al siguiente:
confidentialNodes:
confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR
Si también está habilitado el modo confidencial para Hyperdisk Balanced, el resultado es similar al siguiente:
confidentialNodes:
confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR
enableConfidentialStorage: true
Console
En la consola de Google Cloud , ve a la página de clústeres de Kubernetes.
Haz clic en el nombre del clúster que deseas inspeccionar.
Haz clic en el nombre de un grupo de nodos.
En la sección Seguridad, verifica que el campo Confidential GKE Nodes tenga el valor Habilitado.
Verifica un nodo específico
Busca el nombre del nodo:
kubectl get nodes
Describe el nodo:
kubectl describe NODE_NAME
Reemplaza
NODE_NAME
por el nombre de un nodo para inspeccionar.El resultado es similar a este:
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
En este resultado, la etiqueta de nodo
cloud.google.com/gke-confidential-nodes-instance-type
indica que el nodo es confidencial.
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 una de las tecnologías de Confidential Computing disponibles habilitadas. Agrega el nombre del servicio de la API container.googleapis.com
a la lista de denegación cuando apliques restricciones de políticas de la organización, como en el siguiente 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.
Crea un PersistentVolume para el modo confidencial de Hyperdisk Balanced
Para obtener orientación sobre los valores permitidos de capacidad de procesamiento o IOPS, consulta Planifica el nivel de rendimiento del volumen de Hyperdisk.
En los siguientes ejemplos, se muestra cómo puedes crear una StorageClass de modo confidencial para Hyperdisk Balanced para cada tipo de Hyperdisk:
Hiperdisco balanceado
Guarda el siguiente manifiesto como un archivo llamado
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"
Reemplaza lo siguiente:
KMS_PROJECT_ID
: Es el proyecto que posee la clave de Cloud KMSREGION
: Es la región en la que se encuentra el disco.KEY_RING
: es el nombre del llavero de claves que incluye la clave.HSM_KEY_NAME
: Es el nombre de la clave del HSM que se usa para encriptar el disco.
Crea la StorageClass:
kubectl create -f hdb-example-class.yaml
Crea un reclamo de volumen persistente de Hyperdisk para GKE que use tu volumen de modo confidencial para Hyperdisk Balanced.
Para encontrar el nombre de la StorageClass disponible en tu clúster, ejecuta el siguiente comando:
kubectl get sc
Limitaciones
Confidential GKE Nodes tienen las siguientes limitaciones:
- Todas las limitaciones de las instancias de Confidential VM de Compute Engine también se aplican a los nodos Confidential GKE Node.
- Los Confidential GKE Nodes no son compatibles con los nodos de usuario único.
- Los Confidential GKE Nodes solo admiten el uso del almacenamiento efímero en SSD locales, pero no admiten el uso de SSD locales en general.
- Los nodos confidenciales de GKE solo admiten imágenes de nodos de Container-Optimized OS. Los nodos de Ubuntu y Windows no son compatibles.
- Los clústeres de Autopilot solo admiten AMD SEV a nivel del clúster. Para usar otra tecnología de Confidential Computing, configura Confidential GKE Nodes a nivel de la carga de trabajo.
- El aprovisionamiento automático de nodos solo admite SEV de AMD y SEV-SNP de AMD a nivel del grupo de nodos. Para usar una tecnología diferente de Confidential Computing, configura Confidential GKE Nodes a nivel de la carga de trabajo.
El modo confidencial para Hyperdisk Balanced tiene las siguientes limitaciones:
- Todas las limitaciones del uso de claves de encriptación administradas por el cliente (CMEK) para encriptar discos se aplican al modo confidencial de Hyperdisk Balanced.
- El modo confidencial para Hyperdisk Balanced solo se admite en Confidential GKE Nodes que usan la tecnología de Confidential Computing de AMD SEV.
Limitaciones de la migración en vivo
Las Confidential VMs de Compute Engine que usan el tipo de máquina N2D y la tecnología de Confidential Computing de AMD SEV admiten la migración en vivo, lo que minimiza la posible interrupción de la carga de trabajo a causa del evento de mantenimiento del host. La migración en vivo se produce en las siguientes versiones de GKE:
- 1.27.10-gke.1218000 y versiones posteriores
- 1.28.6-gke.1393000 y versiones posteriores
- 1.29.1-gke.1621000 y versiones posteriores
Si tus grupos de nodos ya ejecutaban una versión compatible cuando se agregó la migración en vivo, actualiza los grupos de nodos de forma manual a la misma versión compatible o a una diferente. La actualización de los nodos activa la recreación de nodos, y los nodos nuevos tienen habilitada la migración en vivo.
Para obtener detalles sobre qué tipos de máquinas de Compute Engine admiten la migración, consulta Parámetros de configuración compatibles.
Si se trata de un evento de mantenimiento del host,
en un nodo que no admite la migración en vivo, el nodo ingresa en un estado de
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.
Inhabilitar Confidential GKE Node
Este cambio requiere volver a crear los nodos, lo que puede causar interrupciones en tus cargas de trabajo en ejecución. Para obtener detalles sobre este cambio específico, busca la fila correspondiente en la tabla de cambios manuales que recrean los nodos con una estrategia de actualización de nodos sin respetar las políticas de mantenimiento. Para obtener más información sobre las actualizaciones de nodos, consulta Planificación de interrupciones por actualizaciones de nodos.
Solo puedes inhabilitar Confidential GKE Nodes en grupos de nodos del modo estándar. Si el grupo de nodos se encuentra en un clúster que usa Confidential GKE Nodes a nivel del clúster, no puedes inhabilitar la función a nivel del grupo de nodos. Para inhabilitar Confidential GKE Nodes, selecciona una de las siguientes opciones:
gcloud
Ejecuta el siguiente comando:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=CLUSTER_LOCATION \
--no-enable-confidential-nodes
Console
En la consola de Google Cloud , accede a la página de los clústeres de Kubernetes.
Haz clic en el nombre de tu clúster Standard.
Haz clic en la pestaña Nodos.
Haz clic en el nombre del grupo de nodos que deseas modificar.
En la página Detalles del grupo de nodos, haz clic en
Editar. Se abrirá el panel Editar grupo de nodos.En la sección Seguridad, desmarca la casilla de verificación Habilitar Confidential GKE Node.
Haz clic en Guardar.
¿Qué sigue?
- Más información sobre Confidential VM
- Más información sobre la Google Cloud encriptación en reposo
- Más información sobre la Google Cloud encriptación en tránsito
- Obtén más información sobre las claves de encriptación administradas por el cliente (CMEK)
- Obtén más información para certificar de forma remota que las cargas de trabajo se ejecutan en Confidential VM
- Obtén más información para ejecutar GPUs en Confidential GKE Nodes