En esta página se explica cómo usar la función Nodos de GKE blindados. Los nodos de GKE blindados proporcionan una identidad e integridad de nodos sólidas y verificables para aumentar la seguridad de los nodos de Google Kubernetes Engine (GKE).
En los clústeres de GKE Autopilot, la función Nodos de GKE blindados está habilitada de forma predeterminada y no se puede anular. En los clústeres de GKE Standard, la función Nodos de GKE blindados está habilitada de forma predeterminada, pero se puede anular.
Acerca de los nodos de GKE blindados
Los nodos de GKE blindados se basan en las VMs blindadas de Compute Engine. Si no tienes nodos de GKE blindados, los atacantes pueden aprovechar las vulnerabilidades de los pods para filtrar al exterior las credenciales de arranque, suplantar la identidad de los nodos del clúster y, en última instancia, acceder a los secretos del clúster. Cuando los nodos de GKE blindados están habilitados, el plano de control de GKE verifica criptográficamente lo siguiente:
- Cada nodo de tu clúster es una máquina virtual que se ejecuta en el centro de datos de Google.
- Cada nodo forma parte del grupo de instancias gestionado (MIG) aprovisionado para el clúster.
- Se está aprovisionando un certificado para el nodo en el que se ejecuta kubelet.
De esta forma, se limita la capacidad de un atacante para suplantar la identidad de un nodo de tu clúster, aunque pueda filtrar al exterior las credenciales de arranque del nodo.
Los nodos del plano de control de los clústeres de GKE siempre usan Nodos de GKE blindados, aunque inhabilite la función en el clúster. Habilitar o inhabilitar los nodos de GKE protegidos solo afecta a si los nodos de trabajo que ejecutan tus cargas de trabajo usan la función.
Precios
No hay ningún coste adicional por ejecutar nodos de GKE protegidos. Sin embargo, los nodos de GKE blindados generan unos 0,5 KB más de registros al iniciarse que los nodos estándar. Consulta la página de precios de Cloud Logging para obtener más información.
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
.
Habilitar los nodos de GKE blindados en un clúster nuevo
Puedes crear un clúster con nodos de GKE protegidos habilitados mediante la CLI de gcloud o la Trusted Cloud consola.
gcloud
Cuando cree un clúster, especifique la opción --enable-shielded-nodes
:
gcloud container clusters create CLUSTER_NAME \
--enable-shielded-nodes
Consola
En la Trusted Cloud consola, ve a la página Crear un clúster de Kubernetes.
En el panel de navegación, ve a Clúster y haz clic en Seguridad.
Marca la casilla Habilitar nodos de GKE blindados.
Configura el clúster a tu gusto.
Haz clic en Crear.
Consulta Crear un clúster para obtener más información sobre cómo crear clústeres.
Habilitar los nodos de GKE blindados en un clúster
Puedes habilitar los nodos de GKE blindados en un clúster que ya tengas mediante la CLI de Google Cloud o la Trusted Cloud consola.
Cómo habilita GKE los nodos de GKE blindados
Después de habilitar los nodos de GKE blindados, los nodos de trabajo se vuelven a crear como máquinas virtuales blindadas. Los nodos del clúster se vuelven a crear de forma gradual para minimizar el tiempo de inactividad.
Después de habilitar los nodos de GKE blindados, GKE actualiza el clúster siguiendo estos pasos:
- GKE vuelve a crear el plano de control inmediatamente, ignorando la disponibilidad del mantenimiento.
- GKE vuelve a crear los nodos de trabajador como máquinas virtuales blindadas, respetando la disponibilidad del mantenimiento. GKE usa actualizaciones de picos para actualizar cada uno de los grupos de nodos. Esto depende de la disponibilidad de recursos. Si inhabilitas las actualizaciones automáticas de nodos, no se impedirá este cambio.
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 y respetando las políticas de mantenimiento. Para obtener más información sobre las actualizaciones de nodos, consulta Planificar interrupciones de actualizaciones de nodos.
Habilitar los nodos de GKE blindados
gcloud
Cuando actualices el clúster, especifica la opción --enable-shielded-nodes
:
gcloud container clusters update CLUSTER_NAME \
--enable-shielded-nodes
Consola
Ve a la página Google Kubernetes Engine en la consola de Trusted Cloud .
Haz clic en el nombre del clúster que quieras modificar.
En el campo Nodos de GKE blindados de Seguridad, haz clic en edit Editar nodos de GKE blindados.
Marca la casilla Habilitar nodos de GKE blindados.
Haz clic en Guardar cambios.
Verificar que los nodos de GKE blindados estén habilitados
Puedes verificar que tu clúster usa nodos de GKE blindados con la CLI de Google Cloud o con la Trusted Cloud consola.
gcloud
Describe el clúster:
gcloud container clusters describe CLUSTER_NAME
Si los nodos de GKE blindados están habilitados, el resultado del comando incluirá estas líneas:
shieldedNodes:
enabled: true
Consola
Para verificar que un clúster usa nodos de GKE blindados, sigue estos pasos:
Ve a la página Google Kubernetes Engine en la consola de Trusted Cloud .
Haga clic en el nombre del clúster que quiera inspeccionar.
En el campo Nodos de GKE blindados de Seguridad, comprueba que la opción Nodos de GKE blindados esté habilitada.
También puedes monitorizar la integridad de las VMs blindadas subyacentes de tus nodos. Consulta el procedimiento en el artículo sobre monitorización de integridad en instancias de VM blindada.
Inhabilitar los nodos de GKE blindados
Puedes inhabilitar los nodos de GKE protegidos con la CLI de Google Cloud o con la Trusted Cloud consola.
Cómo inhabilita GKE los nodos de GKE blindados
Después de inhabilitar los nodos de GKE blindados, GKE actualiza el clúster siguiendo estos pasos:
- GKE vuelve a crear el plano de control inmediatamente, ignorando la disponibilidad del mantenimiento.
- GKE vuelve a crear los nodos de trabajo como VMs sin protección, respetando la disponibilidad del mantenimiento. GKE usa actualizaciones de picos para actualizar cada uno de los grupos de nodos. Esto depende de la disponibilidad de recursos. Si inhabilitas las actualizaciones automáticas de nodos, no se impedirá este cambio.
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 y respetando las políticas de mantenimiento. Para obtener más información sobre las actualizaciones de nodos, consulta Planificar interrupciones de actualizaciones de nodos.
Inhabilitar los nodos de GKE blindados
gcloud
Cuando actualices el clúster, especifica la opción --no-enable-shielded-nodes
:
gcloud container clusters update CLUSTER_NAME \
--no-enable-shielded-nodes
Consola
Ve a la página Google Kubernetes Engine en la consola de Trusted Cloud .
Haz clic en el nombre del clúster que quieras modificar.
En el campo Nodos de GKE blindados de Seguridad, haz clic en edit Editar nodos de GKE blindados.
Desmarca la casilla Habilitar nodos de GKE blindados.
Haz clic en Guardar cambios.
Integridad de los nodos
También puedes configurar comprobaciones de integridad de nodos en los grupos de nodos para ofrecer una protección mejorada frente a rootkits y bootkits en tus nodos. Shielded GKE Nodes, Arranque seguro y Monitorización de integridad son funciones independientes que se pueden habilitar o inhabilitar por separado.
Arranque seguro
El arranque seguro es un ajuste del pool de nodos que autentica los componentes de arranque de tus VMs de nodo, como el kernel y el gestor de arranque, durante el proceso de arranque. El arranque seguro está inhabilitado de forma predeterminada en los grupos de nodos.
Antes de habilitar el arranque seguro en tus grupos de nodos, ten en cuenta lo siguiente:
- Si habilitas el arranque seguro en los nodos de Ubuntu, se impide que se carguen módulos del kernel de terceros sin firmar en esos nodos.
- Habilitar el arranque seguro en los nodos de Container-Optimized OS no afecta a la carga de módulos del kernel, ya que las imágenes de los nodos de Container-Optimized OS controlan la capacidad de cargar módulos del kernel de terceros por separado del arranque seguro.
Para habilitar el arranque seguro, usa la CLI de Google Cloud o la Trusted Cloud consola.
gcloud
Para habilitar el arranque seguro al crear un clúster, sigue estos pasos:
gcloud container clusters create CLUSTER_NAME \
--shielded-secure-boot
Para habilitar el arranque seguro al crear un grupo de nodos, sigue estos pasos:
gcloud container node-pools create POOL_NAME \
--shielded-secure-boot
El arranque seguro está inhabilitado de forma predeterminada. Puedes inhabilitarlo explícitamente al crear un clúster o un grupo de nodos con la opción --no-shielded-secure-boot
.
Consola
Para habilitar el arranque seguro al crear un grupo de nodos, sigue estos pasos:
Ve a la página Google Kubernetes Engine en la consola de Trusted Cloud .
Haz clic en el nombre del clúster que quieras modificar.
Haz clic en add_box Añadir grupo de nodos.
En el menú de navegación, haga clic en Seguridad.
En Opciones blindadas, marca la casilla Habilitar arranque seguro.
Haz clic en Crear.
Monitorización de integridad
La monitorización de integridad es un ajuste de grupo de nodos que está habilitado de forma predeterminada en GKE. Puedes inhabilitar la monitorización de la integridad con la consola o la Trusted Cloud CLI de Google Cloud.
gcloud
Para inhabilitar la monitorización de integridad de los componentes del sistema al crear un grupo de nodos, sigue estos pasos:
gcloud container node-pools create POOL_NAME \
--no-shielded-integrity-monitoring
La monitorización de integridad está habilitada de forma predeterminada. Puedes habilitarlo explícitamente al crear un grupo de nodos con la opción --shielded-integrity-monitoring
.
Consola
Para inhabilitar la monitorización de integridad al crear un grupo de nodos, sigue estos pasos:
Ve a la página Google Kubernetes Engine en la consola de Trusted Cloud .
Haz clic en el nombre del clúster que quieras modificar.
Haz clic en add_box Añadir grupo de nodos.
En el panel de navegación, haz clic en Seguridad.
En Opciones blindadas, desmarca la casilla Habilitar monitorización de integridad.