En esta página se muestra cómo aplicar el cifrado de los datos en uso en los nodos y las cargas de trabajo mediante nodos confidenciales de Google Kubernetes Engine. Aplicar el cifrado puede ayudar a aumentar la seguridad de tus cargas de trabajo.
Esta página está dirigida a especialistas en seguridad que implementan medidas de seguridad en GKE. Para obtener más información sobre los roles habituales y las tareas de ejemplo a las que hacemos referencia en el contenido, consulta Roles y tareas habituales de los usuarios de GKE. Google Cloud
Antes de leer esta página, asegúrate de que conoces el concepto de datos en uso.
¿Qué es Confidential GKE Nodes?
Puedes cifrar tus cargas de trabajo con nodos de GKE confidenciales o con el modo confidencial de Hyperdisk Balanced.
Nodos confidenciales de GKE
Los nodos confidenciales de GKE usan máquinas virtuales confidenciales de Compute Engine para proteger los datos en uso mediante el cifrado de memoria basado en hardware. Confidential GKE Nodes admite las siguientes tecnologías de Confidential Computing:
- Virtualización segura encriptada (SEV) de AMD
- Virtualización segura encriptada con paginación anidada segura (SEV-SNP) de AMD
- Extensiones de dominio de confianza (TDX) de Intel
Para obtener más información sobre estas tecnologías y ayuda para elegir la tecnología óptima para tus requisitos, consulta la descripción general de las VMs confidenciales.
Confidential GKE Nodes no cambia las medidas de seguridad que GKE aplica a los planos de control de los clústeres. Para obtener información sobre estas medidas, consulta Seguridad del plano de control. Para saber quién accede a los planos de control de tus proyectos de Google Cloud, usa Transparencia de acceso.
Puedes habilitar los nodos de GKE confidenciales en clústeres completos, en grupos de nodos específicos o en cargas de trabajo concretas. En la siguiente tabla se describen estos métodos de habilitación:
Ajuste de Confidential GKE Nodes | Descripción | Comportamiento |
---|---|---|
Nivel de carga de trabajo | Configura Confidential GKE Nodes en una ComputeClass y, a continuación, selecciona esa ComputeClass en una carga de trabajo. GKE crea nodos que usan esa configuración para ejecutar tus pods. | El ajuste de carga de trabajo admite cualquiera de las siguientes tecnologías de computación confidencial, independientemente del modo del clúster o del tipo de grupo de nodos:
|
Nivel de clúster | Este ajuste es irreversible.
Habilita los nodos confidenciales de GKE al crear un clúster Autopilot o Standard. Todos los nodos del clúster usan nodos de Confidential GKE. No puedes anular el ajuste del clúster en grupos de nodos o cargas de trabajo concretos. |
Las tecnologías admitidas a nivel de clúster dependen del modo de funcionamiento del clúster, tal como se indica a continuación:
|
Nivel de grupo de nodos | Habilita los nodos confidenciales de GKE al crear un grupo de nodos en un clúster estándar. Solo puedes usar este método si Confidential GKE Nodes está inhabilitado a nivel de clúster. | Las tecnologías admitidas a nivel de 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, lo que encripta tus datos en enclaves adicionales respaldados por hardware.
Puedes habilitar el modo Confidencial para Hyperdisk Balanced cuando hagas una de las siguientes acciones:
- Crear una agrupación
- Crear un grupo de nodos
No puedes actualizar un clúster o un grupo de nodos para cambiar el ajuste Modo confidencial de Hyperdisk Balanced.
En la siguiente tabla se muestra el comportamiento de GKE que se aplica cuando habilitas el modo Confidencial para el ajuste Hyperdisk Balanced a nivel de clúster o de grupo de nodos:
Ajuste del modo Confidencial para Hyperdisk Balanced | Cómo se configura | Comportamiento |
---|---|---|
Nivel de clúster | Crear una agrupación | Solo el grupo de nodos predeterminado del clúster usará el ajuste Modo confidencial para Hyperdisk Balanced. No puede hacer lo siguiente:
|
Nivel de grupo de nodos | Crear un grupo de nodos | Puedes configurar el 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 que ya tengas para que usen el modo Confidencial para Hyperdisk Balanced. |
Precios
Se aplican los siguientes precios en función de cómo configures los nodos confidenciales de GKE:
Precios de Confidential GKE Nodes | |
---|---|
Nivel de carga de trabajo | En las cargas de trabajo de Autopilot, se aplican los dos costes siguientes:
En las cargas de trabajo estándar, se aplican los dos costes siguientes:
|
Nivel de clúster | En los clústeres de Autopilot, se aplican los dos costes siguientes:
En los clústeres estándar, se aplican los dos costes siguientes:
|
Nivel de grupo de nodos | En los grupos de nodos estándar, se aplican los siguientes costes:
|
Además, los nodos confidenciales de GKE pueden generar ligeramente más datos de registro al iniciarse que los nodos que no son confidenciales de GKE. Para obtener más información sobre los precios de los registros, consulta la página Precios de Google Cloud Observability.
Antes de empezar
Antes de empezar, asegúrate de que has 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, instálala y, a continuación, inicialízala. Si ya has instalado la gcloud CLI, obtén la versión más reciente ejecutando
gcloud components update
.
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, en función de la tecnología de Confidential Computing que elijas:
- AMD SEV: cualquier versión de GKE.
- AMD SEV-SNP: 1.32.2-gke.1297000 o una versión posterior.
- Intel TDX: 1.32.2-gke.1297000 o versiones posteriores.
Para habilitar los nodos confidenciales de GKE a nivel de carga de trabajo, los clústeres Autopilot y Estándar deben ejecutar la versión 1.33.3-gke.1392000 de GKE o una posterior.
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, CPUs y zonas.
Los planos de control y los nodos del clúster deben estar en una ubicación que admita la tecnología de computación confidencial que elijas. Para obtener más información, consulta Ver las zonas admitidas.
Configurar nodos de Confidential GKE a nivel de carga de trabajo
Para habilitar los nodos confidenciales de GKE en cargas de trabajo concretas, debes usar un ComputeClass. Las clases de computación son recursos personalizados de Kubernetes que te permiten definir los atributos de los nuevos nodos que crea GKE y controlar el comportamiento alternativo si el hardware no está disponible. ComputeClasses admite todas las tecnologías de Confidential Computing disponibles para GKE, aunque una tecnología específica no sea compatible a nivel de clúster o de grupo de nodos.
Para configurar nodos de Confidential GKE Node a nivel de carga de trabajo, sigue estos pasos:
Opcional: En los clústeres estándar de GKE, habilita el aprovisionamiento automático de nodos en el clúster. En el caso de los clústeres de Autopilot, omite este paso.
Si decides usar ComputeClasses con grupos de nodos creados manualmente, también debes configurar manualmente los taints y las etiquetas de los nodos de esos grupos de nodos. Esta configuración manual adicional puede provocar que notes menos ventajas al usar una ComputeClass para crear nodos de GKE confidenciales.
Guarda el siguiente manifiesto de ComputeClass como archivo YAML. Para obtener más información sobre los campos y valores admitidos de 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
Haz los cambios siguientes:
COMPUTE_CLASS
: el nombre de la nueva clase de cálculo.CONFIDENTIAL_COMPUTE_TECHNOLOGY
: la tecnología de computación confidencial que se va a usar. Se admiten los siguientes valores:SEV
para AMD SEVSEV_SNP
para AMD SEV-SNPTDX
para Intel TDX
ZONE1,ZONE2,...
: 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 computación confidencial que has indicado. Para obtener más información, consulta Ver zonas admitidas.MACHINE_SERIES
: la serie de máquinas de los nodos, comon2d
. Especifica una serie de máquinas que admita la tecnología de Confidential Computing que hayas especificado. Para obtener más información, consulta Tipos de máquinas, CPUs y zonas.MACHINE_TYPE
el tipo de máquina de los nodos, comon2d-standard-4
. Especifica un tipo de máquina que admita la tecnología de Confidential Computing que hayas especificado. Para obtener más información, consulta Tipos de máquinas, CPUs y zonas.
Este manifiesto incluye el campo
spec.nodePoolAutoCreation
con el valorenabled: true
, que permite a GKE crear grupos de nodos mediante el aprovisionamiento automático de nodos.Crea el ComputeClass en tu clúster:
kubectl apply -f PATH_TO_COMPUTE_CLASS_MANIFEST
Sustituye
PATH_TO_COMPUTE_CLASS_MANIFEST
por la ruta al archivo de manifiesto de ComputeClass.Guarda el siguiente manifiesto de Deployment como un archivo YAML:
Crea el despliegue:
kubectl apply -f PATH_TO_DEPLOYMENT_MANIFEST
Sustituye
PATH_TO_DEPLOYMENT_MANIFEST
por la ruta del archivo de manifiesto de la implementación.
Los nodos que GKE crea para esta carga de trabajo usan la tecnología de Confidential Computing que has especificado. Estos nodos se ejecutan en una de las zonas que has seleccionado, en un tipo de máquina que has definido en ComputeClass. GKE añade intolerancias y etiquetas de nodo para que solo los pods que seleccionen la misma ComputeClass puedan ejecutarse en los nodos.
Configurar nodos confidenciales de GKE a nivel de clúster
Puedes habilitar los nodos confidenciales de GKE en todo un clúster Autopilot o Estándar, lo que significa que todos los nodos de los clústeres utilizan nodos confidenciales de GKE. Por lo tanto, todas las cargas de trabajo que implementes en ese clúster se ejecutarán en nodos confidenciales de GKE. No puedes anular la configuración del clúster en cargas de trabajo o grupos de nodos concretos.
Crear un clúster de Autopilot
Los clústeres Autopilot solo admiten AMD SEV a nivel de clúster. Cuando habilitas los nodos confidenciales de GKE, la serie de máquinas predeterminada del clúster Autopilot cambia a N2D. Todas tus cargas de trabajo se ejecutan en estos nodos confidenciales sin necesidad de cambiar sus manifiestos.
Ejecuta el siguiente comando:
gcloud container clusters create-auto CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-confidential-nodes
Haz los cambios siguientes:
CLUSTER_NAME
: nombre del clúster de Autopilot.CONTROL_PLANE_LOCATION
: la región de Compute Engine del 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 Crear un clúster de Autopilot con un canal de lanzamiento y una versión específicos.
Crear un clúster estándar
Puedes especificar una tecnología de Confidential Computing para tus nodos cuando crees un clúster estándar. Si especificas la tecnología al crear un clúster, se producirán los siguientes efectos:
- En ese clúster, solo puedes crear grupos de nodos o cargas de trabajo que usen nodos confidenciales de GKE.
- No puedes actualizar el clúster para inhabilitar Confidential GKE Nodes.
- No puedes anular la tecnología de Confidential Computing a nivel de clúster en grupos de nodos o cargas de trabajo concretos.
La configuración de la opción de computación confidencial a nivel de clúster es permanente. Por lo tanto, ten en cuenta los siguientes casos prácticos 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 Usar nodos confidenciales de GKE con el aprovisionamiento automático de nodos.
- Para usar diferentes tecnologías de Confidential Computing para encriptar grupos de nodos específicos del clúster, omite esta sección y configura los nodos confidenciales de GKE a nivel de grupo de nodos.
Para crear un clúster en modo estándar que use nodos de GKE confidenciales, selecciona una de las siguientes opciones:
gcloud
Cuando crees un clúster, 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
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre de tu clúster.LOCATION
: la ubicación de Compute Engine del 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
: un tipo de máquina que admita la tecnología de Confidential Computing que especifiques. Para obtener más información, consulta la sección Disponibilidad.ZONE1,ZONE2,...
: lista separada por comas de las zonas de la región del plano de control que admiten la nueva tecnología de computación confidencial. Para obtener más información, consulta Ver las zonas admitidas.CONFIDENTIAL_COMPUTE_TECHNOLOGY
: la tecnología de computación confidencial que se va a 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 de clústeres. Si solo especificas este indicador 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 especifica la marca --confidential-node-type
en el mismo comando, GKE usará el valor que especifique en la marca --confidential-node-type
.
Consola
En la Google Cloud consola, ve a la página Crear un clúster de Kubernetes.
En el menú de navegación, en la sección Clúster, haga clic en Seguridad.
Selecciona la casilla Habilitar Confidential GKE Nodes.
En el cuadro de diálogo Cambios necesarios, haga clic en Hacer cambios.
En el menú Tipo, selecciona la tecnología de computación confidencial que quieras usar.
Si la tecnología que seleccionas requiere una serie de máquinas de Compute Engine específica, aparecerá un cuadro de diálogo. Haz clic en Hacer 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:
- Seleccione la casilla Especificar ubicaciones de nodos. Se mostrará una lista de las zonas de la región del clúster.
- Selecciona las casillas de las zonas que admitan la tecnología de computación confidencial que hayas seleccionado para los nodos. Para obtener más información, consulta Ver las zonas admitidas.
Haz clic en Crear.
Para obtener más información sobre cómo crear clústeres, consulta Crear un clúster regional.
En el caso de los grupos de nodos creados con el ajuste Modo confidencial para Hyperdisk Balanced, solo los nodos del grupo de nodos están restringidos a la configuración. En el caso de los grupos de nodos que se creen en el clúster, debes configurar el modo Confidencial al crearlos.
Configurar el aprovisionamiento automático de nodos
Puedes configurar el aprovisionamiento automático de nodos para usar nodos de Confidential GKE 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 nodos de Confidential GKE Node con el aprovisionamiento automático de nodos, especifica la marca --enable-confidential-nodes
de gcloud CLI al crear un clúster. Se aplican las siguientes consideraciones adicionales:
- Cuando crees el clúster, elige una tecnología de computación confidencial que admita el aprovisionamiento automático de nodos. Esta opción es irreversible a nivel de clúster.
- Cuando habilitas el aprovisionamiento automático de nodos en un clúster, este debe usar una tecnología de nodos de GKE confidenciales compatible con el aprovisionamiento automático de nodos.
- Cuando despliegues cargas de trabajo, comprueba que seleccionen la tecnología de computación confidencial del clúster y una serie de máquinas compatible con esa tecnología.
Configurar nodos confidenciales de GKE a nivel de grupo de nodos
Puedes habilitar Confidential GKE Nodes en grupos de nodos específicos si está inhabilitado a nivel de clúster.
El modo Confidencial de Hyperdisk Balanced se debe especificar durante la solicitud de creación del grupo de nodos.
Crear un grupo de nodos
Para crear un grupo de nodos con nodos confidenciales de GKE habilitados, 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
Haz los cambios siguientes:
NODE_POOL_NAME
: el nombre del nuevo grupo de nodos.LOCATION
: la ubicación del nuevo grupo de nodos. La ubicación debe admitir la tecnología de Confidential Computing que especifiques. Para obtener más información, consulta la sección Disponibilidad.CLUSTER_NAME
: el nombre de tu clúster.MACHINE_TYPE
: un tipo de máquina que admita la tecnología de Confidential Computing que especifiques. Para obtener más información, consulta la sección Disponibilidad.ZONE1,ZONE2,...
: lista separada por comas de las zonas de la región del clúster que admiten la nueva tecnología de computación confidencial. Para obtener más información, consulta Ver las zonas admitidas.CONFIDENTIAL_COMPUTE_TECHNOLOGY
: la tecnología de computación confidencial que se va a 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 de clústeres. Si solo especificas este indicador 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 especifica la marca --confidential-node-type
en el mismo comando, GKE usará el valor que especifique en la marca --confidential-node-type
.
Consola
En la Google Cloud consola, ve a la página Clústeres de Kubernetes:
Haz clic en el nombre de tu clúster estándar.
Haz clic en
Añadir grupo de nodos.En el menú de navegación, haz clic en Seguridad.
En el panel Seguridad de los nodos, haz lo siguiente:
- Selecciona la casilla Habilitar Confidential GKE Nodes.
- En el cuadro de diálogo Cambios necesarios, haga clic en Hacer cambios.
En el menú Tipo, selecciona la tecnología de computación confidencial que quieras usar.
Si la tecnología que seleccionas requiere una serie de máquinas de Compute Engine específica, aparecerá un cuadro de diálogo. Haz clic en Hacer 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:
- Seleccione la casilla Especificar ubicaciones de nodos. Se mostrará una lista de las zonas de la región del clúster.
- Selecciona las casillas de las zonas que admitan la tecnología de computación confidencial que hayas seleccionado para los nodos. Para obtener más información, consulta Ver las zonas admitidas.
Opcional: Configura otros ajustes para tu grupo de nodos.
Haz clic en Crear.
Actualizar un grupo de nodos
Para aplicar este cambio, es necesario volver a crear los nodos, lo que puede provocar interrupciones en las cargas de trabajo en ejecución. Para obtener información sobre este cambio concreto, busca la fila correspondiente en la tabla Cambios manuales que recrean los nodos mediante 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 Planificar interrupciones de actualizaciones de nodos.
Puedes actualizar los grupos de nodos que ya tengas para usar nodos de Confidential GKE o para cambiar la tecnología de Confidential Computing que usan los nodos. El grupo de nodos debe cumplir todos los requisitos siguientes:
- 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 computación confidencial elegida.
Como la disponibilidad del tipo de máquina y de la ubicación puede variar entre las tecnologías de computación confidencial, es posible que tengas que actualizar estos atributos de tu grupo de nodos antes de habilitar una tecnología de computación confidencial específica.
Para actualizar un grupo de nodos que ya tengas para que use nodos de Confidential GKE, selecciona una de las siguientes opciones:
gcloud
Puedes usar la CLI de gcloud para habilitar los nodos confidenciales de GKE en un pool de nodos o para cambiar la tecnología de computación confidencial de los nodos.
- Si el grupo de nodos ya usa nodos confidenciales de GKE, inhabilita los nodos confidenciales de GKE. 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 por valores admitidos para la nueva tecnología de computación confidencial:
gcloud container node-pools update NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --location=CLUSTER_LOCATION \ --machine-type=MACHINE_TYPE \ --node-locations=ZONE1,ZONE2,...
Haz los cambios siguientes:
NODE_POOL_NAME
: el nombre del grupo de nodos.CLUSTER_NAME
: el nombre del clúster.CLUSTER_LOCATION
: la ubicación del clúster.MACHINE_TYPE
: un tipo de máquina que admita la nueva tecnología Confidential Computing. Para obtener más información, consulta la sección Disponibilidad.ZONE1,ZONE2,...
: lista separada por comas de las zonas de la región del clúster que admiten la nueva tecnología de computación confidencial. Para obtener más información, consulta Ver las zonas admitidas.
Actualiza el grupo de nodos con la tecnología Confidential Computing para usar:
gcloud container node-pools update NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --location=CLUSTER_LOCATION \ --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY
Sustituye
CONFIDENTIAL_COMPUTE_TECHNOLOGY
por la tecnología de computación confidencial que quieras usar. Se admiten los siguientes valores:sev
: AMD SEVsev_snp
: AMD SEV-SNPtdx
: Intel TDX
Consola
Solo puedes actualizar un grupo de nodos para que use nodos de GKE confidenciales si el tipo de máquina del grupo de nodos es compatible con la tecnología de Confidential Computing que hayas elegido. Si los nodos no usan un tipo de máquina compatible, sigue las instrucciones de la CLI de gcloud que se indican en esta sección.
En la Google Cloud consola, ve a la página Clústeres de Kubernetes:
Haz clic en el nombre de tu clúster estándar.
Haz clic en la pestaña Nodos.
Haz clic en el nombre del grupo de nodos que quieras modificar.
En la página Detalles del grupo de nodos, haga clic en
Editar. Se abrirá el panel Editar grupo de nodos.En la sección Zonas, comprueba que las zonas seleccionadas admitan la tecnología de computación confidencial. Para obtener más información, consulta Ver las zonas admitidas.
Si una zona seleccionada no admite la tecnología, haz lo siguiente:
- Desmarca la casilla de la zona no admitida.
- Opcional: Marca las casillas 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, marca la casilla Habilitar nodos confidenciales de GKE.
En el menú Tipo, selecciona la tecnología de computación confidencial para los nodos.
Haz clic en Guardar.
Colocar cargas de trabajo solo en grupos de nodos confidenciales
Si habilitas los nodos confidenciales de GKE a nivel de clúster, todas tus cargas de trabajo se ejecutarán en nodos confidenciales. No tienes que hacer cambios en tus manifiestos. Sin embargo, si habilitas los nodos confidenciales de GKE solo para grupos de nodos específicos del modo Estándar a nivel de grupo de nodos, debes indicar de forma declarativa que tus cargas de trabajo solo se deben ejecutar en grupos de nodos con nodos confidenciales de GKE.
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"
Sustituye
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 nodo, 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 solo usen un subconjunto de las tecnologías de computación confidencial disponibles, usa una regla de afinidad de nodos similar a la del 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 computación confidencial en las que quieras ejecutar la carga de trabajo.
Verificar que Confidential GKE Nodes esté habilitado
Para comprobar si tus clústeres o nodos usan nodos de GKE confidenciales, inspecciona los clústeres, los pools de nodos, los nodos o las instancias de Compute Engine.
Verificar clústeres
Selecciona una de las opciones siguientes:
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 será similar al siguiente:
confidentialNodes:
confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR
Consola
En la Google Cloud consola, ve a la página Clústeres de Kubernetes.
Haga clic en el nombre del clúster que quiera inspeccionar.
En la sección Seguridad, comprueba que el campo Nodos de GKE confidenciales tenga el valor Habilitado.
Verificación de grupos de nodos
Selecciona una de las opciones siguientes:
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 será similar al siguiente:
confidentialNodes:
confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR
Si el modo Confidencial de Hyperdisk Balanced también está habilitado, el resultado será similar al siguiente:
confidentialNodes:
confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR
enableConfidentialStorage: true
Consola
En la Google Cloud consola, ve a la página Clústeres de Kubernetes.
Haga clic en el nombre del clúster que quiera inspeccionar.
Haz clic en el nombre de un grupo de nodos.
En la sección Seguridad, comprueba que el campo Nodos confidenciales de GKE tenga el valor Habilitado.
Verificar un nodo específico
Busca el nombre del nodo:
kubectl get nodes
Describe el nodo:
kubectl describe NODE_NAME
Sustituye
NODE_NAME
por el nombre de un nodo que quieras inspeccionar.El resultado debería ser similar al siguiente:
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 esta salida, la etiqueta de nodo
cloud.google.com/gke-confidential-nodes-instance-type
indica que el nodo es confidencial.
Definir restricciones de políticas de organización
Puedes definir una restricción de política de organización para asegurarte de que todos los recursos de VM que se creen en tu organización sean instancias de VM confidenciales.
En GKE, puedes personalizar la restricción Restrict Non-Confidential
Computing para que todos los clústeres nuevos se creen con una de las tecnologías de Confidential Computing disponibles habilitada. Añade el nombre del servicio de la API container.googleapis.com
a la lista de denegación cuando apliques restricciones de políticas de 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
Sustituye PROJECT_ID por el ID del proyecto.
Crear un PersistentVolume para el modo Confidencial de Hyperdisk Balanced
Para obtener información sobre los valores permitidos de la capacidad de procesamiento o las IOPS, consulta Planificar el nivel de rendimiento de un volumen de Hyperdisk.
En los siguientes ejemplos se muestra cómo crear un modo Confidencial para una clase StorageClass de Hyperdisk Balanced para cada tipo de Hyperdisk:
Hyperdisk Balanced
Guarda el siguiente manifiesto en 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"
Haz los cambios siguientes:
KMS_PROJECT_ID
: el proyecto propietario de la clave de Cloud KMSREGION
: la región en la que se encuentra el discoKEY_RING
: el nombre del conjunto de claves que incluye la claveHSM_KEY_NAME
: nombre de la clave de HSM usada para cifrar el disco
Crea el objeto StorageClass:
kubectl create -f hdb-example-class.yaml
Crea una reclamación de volumen persistente de Hyperdisk para GKE que use tu volumen de Hyperdisk Balanced en modo Confidencial.
Para encontrar el nombre de las StorageClasses disponibles en tu clúster, ejecuta el siguiente comando:
kubectl get sc
Limitaciones
Confidential GKE Nodes tiene las siguientes limitaciones:
- Todas las limitaciones de las instancias de VM confidenciales de Compute Engine también se aplican a los nodos confidenciales de GKE.
- Confidential GKE Nodes no es compatible con los nodos de único propietario.
- Los nodos confidenciales de GKE solo admiten el uso de almacenamiento efímero en SSDs locales, pero no admiten el uso de SSDs locales en general.
- Confidential GKE Nodes solo admite imágenes de nodo de Container-Optimized OS. No se admiten nodos de Ubuntu ni de Windows.
- Los clústeres Autopilot solo admiten AMD SEV a nivel de clúster. Para usar otra tecnología de Confidential Computing, configura Confidential GKE Nodes a nivel de carga de trabajo.
- El aprovisionamiento automático de nodos solo admite AMD SEV y AMD SEV-SNP a nivel de grupo de nodos. Para usar otra tecnología de Confidential Computing, configura nodos de Confidential GKE a nivel de carga de trabajo.
El modo Confidencial de Hyperdisk Balanced tiene las siguientes limitaciones:
- Todas las limitaciones de usar claves de cifrado gestionadas por el cliente (CMEK) para cifrar discos se aplican al modo Confidencial de Hyperdisk Balanced.
- El modo confidencial de Hyperdisk Balanced solo se admite en nodos confidenciales de GKE que usen AMD SEV como tecnología de Confidential Computing.
Limitaciones de la migración en tiempo real
Las máquinas virtuales confidenciales de Compute Engine que usan el tipo de máquina N2D y la tecnología de computación confidencial AMD SEV admiten la migración en vivo, lo que minimiza las posibles interrupciones de la carga de trabajo debido a un evento de mantenimiento del host. La migración en directo 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 añadió la migración en directo, actualiza manualmente los grupos de nodos a la misma versión compatible o a otra. Al actualizar los nodos, se vuelve a crear el nodo y se habilita la migración en directo en los nodos nuevos.
Para obtener información sobre los tipos de máquinas de Compute Engine que admiten la migración en vivo, consulta Configuraciones admitidas.
Si se produce un evento de mantenimiento del host
en un nodo que no admite la migración en directo, el nodo pasa al estado NotReady
. Los pods en ejecución sufrirán interrupciones hasta que el nodo vuelva a estar listo. Si el mantenimiento dura más de cinco minutos, es posible que GKE intente recrear los pods en otros nodos.
Inhabilitar Confidential GKE Nodes
Para aplicar este cambio, es necesario volver a crear los nodos, lo que puede provocar interrupciones en las cargas de trabajo en ejecución. Para obtener información sobre este cambio concreto, busca la fila correspondiente en la tabla Cambios manuales que recrean los nodos mediante 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 Planificar interrupciones de actualizaciones de nodos.
Solo puedes inhabilitar Confidential GKE Nodes en grupos de nodos del modo Estándar. Si el grupo de nodos está en un clúster que usa nodos confidenciales de GKE a nivel de clúster, no puedes inhabilitar la función a nivel de grupo de nodos. Para inhabilitar Confidential GKE Nodes, seleccione 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
Consola
En la Google Cloud consola, ve a la página Clústeres de Kubernetes:
Haz clic en el nombre de tu clúster estándar.
Haz clic en la pestaña Nodos.
Haz clic en el nombre del grupo de nodos que quieras modificar.
En la página Detalles del grupo de nodos, haga clic en
Editar. Se abrirá el panel Editar grupo de nodos.En la sección Seguridad, desmarca la casilla Habilitar nodos confidenciales de GKE.
Haz clic en Guardar.
Siguientes pasos
- Más información sobre las máquinas virtuales confidenciales
- Más información sobre el Google Cloud cifrado en reposo
- Más información sobre el Google Cloud cifrado en tránsito
- Más información sobre las claves de encriptado gestionadas por el cliente (CMEK)
- Descubre cómo demostrar de forma remota que las cargas de trabajo se ejecutan en una VM confidencial.
- Consulta cómo ejecutar GPUs en Confidential GKE Nodes.