En esta página, se muestra cómo usar la función de nodos de GKE protegidos. Los nodos de GKE protegidos proporcionan una identidad y una integridad de nodo sólidas y verificables para aumentar la seguridad de los nodos de Google Kubernetes Engine (GKE).
Para los clústeres de Autopilot de GKE, la característica de nodos de GKE protegidos está habilitada de forma predeterminada y no se puede anular. En el caso de los clústeres estándar de GKE, la función de nodos de GKE protegidos está habilitada de forma predeterminada, pero se puede anular.
Acerca de los nodos de GKE protegidos
Los nodos de GKE protegidos se compilan en las VM protegidas de Compute Engine. Sin los nodos de GKE protegidos, un atacante puede aprovechar una vulnerabilidad en un pod para robar credenciales de arranque y cambiar la identidad de los nodos del clúster, lo que brinda a los atacantes acceso a secretos de clúster. Cuando los nodos de GKE protegidos están habilitados, el plano de control de GKE verifica de manera criptográfica que se cumpla lo siguiente:
- Cada nodo del clúster es una máquina virtual que se ejecuta en el centro de datos de Google.
- Cada nodo es parte del grupo de instancias administrado (MIG) que se aprovisiona para el clúster.
- Kubelet recibe un certificado para el nodo en el que se está ejecutando.
Esto limita la capacidad de un atacante de robar la identidad de un nodo del clúster, incluso si puede robar credenciales de arranque del nodo.
Los nodos del plano de control del clúster de GKE siempre usan nodos de GKE protegidos, incluso si inhabilitas la función en tu clúster. Habilitar o inhabilitar los nodos de GKE protegidos solo afecta si los nodos de trabajo que ejecutan tus cargas de trabajo usan la función.
Precios
No hay costo adicional por ejecutar los nodos de GKE protegidos. Sin embargo, los nodos de GKE protegidos generan alrededor de 0.5 KB más de registros durante el inicio que los nodos estándar. Consulta la página de precios de Cloud Logging para obtener más detalles.
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta
gcloud components update
para obtener la versión más reciente.
Habilita nodos de GKE protegidos en un clúster nuevo
Puedes crear un clúster nuevo con nodos de GKE protegidos habilitados mediante la CLI de gcloud o la consola de Google Cloud.
gcloud
Cuando creas un clúster nuevo, especifica la opción --enable-shielded-nodes
:
gcloud container clusters create CLUSTER_NAME \
--enable-shielded-nodes
Console
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en add_box Crear.
En el panel de navegación, en Clúster, haz clic en Seguridad.
Selecciona la casilla de verificación Habilitar nodos de GKE protegidos.
Configura tu clúster como desees.
Haga clic en Crear.
Consulta Crea un clúster para obtener más detalles sobre la creación de clústeres
Habilita nodos de GKE protegidos en un clúster existente
Puedes habilitar los nodos de GKE protegidos en un clúster existente mediante la CLI de Google Cloud o la consola de Google Cloud.
Cómo GKE habilita los nodos de GKE protegidos
Después de que habilitas los nodos de GKE protegidos, los nodos trabajadores se vuelven a crear como VM protegidas. Los nodos del clúster se recrean de forma continua para minimizar el tiempo de inactividad.
Después de habilitar los Nodos de GKE protegidos, GKE actualiza tu clúster con los siguientes pasos:
- GKE vuelve a crear el plano de control de inmediato, sin tener en cuenta la disponibilidad de mantenimiento.
- GKE vuelve a crear los nodos de trabajo como VMs protegidas, respetando la disponibilidad de mantenimiento. GKE usa actualizaciones de aumento para actualizar cada uno de los grupos de nodos. Esto depende de la disponibilidad de los recursos. Inhabilitar las actualizaciones automáticas de nodos no evita este cambio.
Para obtener detalles sobre este cambio específico, busca la fila correspondiente en la tabla Cambios manuales que recrean los nodos con una estrategia de actualización de nodos y respetan las políticas de mantenimiento. Para obtener más información sobre las actualizaciones de nodos, consulta Planifica las interrupciones de actualización de nodos.
Habilitar nodos de GKE protegidos
gcloud
Cuando actualices el clúster, especifica la opción --enable-shielded-nodes
:
gcloud container clusters update CLUSTER_NAME \
--enable-shielded-nodes
Console
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en el nombre del clúster que deseas modificar.
En Seguridad, en el campo Nodos de GKE protegidos, haz clic en edit Editar nodos de GKE protegidos.
Selecciona la casilla de verificación Habilitar nodos de GKE protegidos.
Haz clic en Save Changes.
Verifica que los nodos de GKE protegidos estén habilitados
Debes verificar que tu clúster use nodos de GKE protegidos mediante la CLI de Google Cloud o la consola de Google Cloud.
gcloud
Describe el clúster:
gcloud container clusters describe CLUSTER_NAME
Si los nodos de GKE protegidos están habilitados, el resultado del comando incluirá las siguientes líneas:
shieldedNodes:
enabled: true
Console
Para verificar que un clúster use nodos de GKE protegidos, sigue estos pasos:
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud:
Haz clic en el nombre del clúster que deseas inspeccionar.
En Seguridad, en el campo Nodos de GKE protegidos, verifica que los nodos de GKE protegidos estén habilitados.
También puedes supervisar la integridad de las VM protegidas subyacentes de tus nodos. Consulta la página sobre cómo supervisar la integridad de instancias de VM protegidas para realizar el procedimiento.
Inhabilita los nodos de GKE protegidos
Puedes inhabilitar los nodos de GKE protegidos mediante la CLI de Google Cloud o la consola de Google Cloud.
Cómo inhabilita GKE los nodos de GKE protegidos
Después de inhabilitar los nodos de GKE protegidos, GKE actualiza tu clúster con los siguientes pasos:
- GKE vuelve a crear el plano de control de inmediato, sin tener en cuenta la disponibilidad de mantenimiento.
- GKE vuelve a crear los nodos de trabajo como VMs no protegidas, respetando la disponibilidad de mantenimiento. GKE usa actualizaciones de aumento para actualizar cada uno de los grupos de nodos. Esto depende de la disponibilidad de los recursos. Inhabilitar las actualizaciones automáticas de nodos no evita este cambio.
Para obtener detalles sobre este cambio específico, busca la fila correspondiente en la tabla Cambios manuales que recrean los nodos con una estrategia de actualización de nodos y respetan las políticas de mantenimiento. Para obtener más información sobre las actualizaciones de nodos, consulta Planifica las interrupciones de actualización de nodos.
Inhabilita los nodos de GKE protegidos
gcloud
Cuando actualices el clúster, especifica la opción --no-enable-shielded-nodes
:
gcloud container clusters update CLUSTER_NAME \
--no-enable-shielded-nodes
Console
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en el nombre del clúster que deseas modificar.
En Seguridad, en el campo Nodos de GKE protegidos, haz clic en edit Editar nodos de GKE protegidos.
Desmarca la casilla de verificación Habilitar nodos de GKE protegidos.
Haz clic en Guardar cambios.
Integridad del nodo
De manera opcional, puedes configurar verificaciones de integridad de nodos en grupos de nodos a fin de proporcionar protección mejorada ante rootkit y bootkit para tus nodos. Los nodos de GKE protegidos, el inicio seguro y la supervisión de integridad son características independientes que se pueden habilitar o inhabilitar por separado.
Inicio seguro
El inicio seguro es una configuración del grupo de nodos que autentica los componentes de inicio de las VMs de tu nodo, como el kernel y el bootloader, durante el proceso de inicio. El inicio seguro está inhabilitado de forma predeterminada en los grupos de nodos.
Antes de habilitar el inicio seguro en tus grupos de nodos, ten en cuenta lo siguiente:
- Si habilitas el inicio seguro en los nodos de Ubuntu, se bloquea la carga de módulos de kernel de terceros sin firmar en esos nodos.
- Habilitar el inicio seguro en los nodos de Container-Optimized OS no tiene efecto en la carga de módulos de kernel porque las imágenes de nodos de Container-Optimized OS controlan la capacidad de cargar módulos de kernel de terceros por separado del inicio seguro.
Para habilitar el inicio seguro, usa Google Cloud CLI o la consola de Google Cloud.
gcloud
Para habilitar el inicio seguro cuando crees un clúster, haz lo siguiente:
gcloud container clusters create CLUSTER_NAME \
--shielded-secure-boot
Para habilitar el inicio seguro cuando crees un grupo de nodos, haz lo siguiente:
gcloud container node-pools create POOL_NAME \
--shielded-secure-boot
El inicio seguro está inhabilitado de forma predeterminada. Puedes inhabilitarlo de manera explícita cuando crees un clúster o un grupo de nodos con la opción --no-shielded-secure-boot
.
Console
Para habilitar el inicio seguro cuando crees un grupo de nodos, haz lo siguiente:
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud:
Haz clic en el nombre del clúster que deseas modificar.
Haz clic en add_box Agregar grupo de nodos.
En el menú de navegación, haz clic en Seguridad.
En Opciones protegidas, selecciona la casilla de verificación Habilitar inicio seguro.
Haga clic en Crear.
Supervisión de integridad
La supervisión de integridad es una configuración del grupo de nodos que está habilitada de forma predeterminada en GKE. Puedes inhabilitar la supervisión de integridad mediante Google Cloud CLI o la consola de Google Cloud.
gcloud
Para inhabilitar la supervisión de integridad de los componentes del sistema cuando crees un clúster, haz lo siguiente:
gcloud container clusters create CLUSTER_NAME \
--no-shielded-integrity-monitoring
Para inhabilitar la supervisión de integridad de los componentes del sistema cuando crees un grupo de nodos, haz lo siguiente:
gcloud container node-pools create POOL_NAME \
--no-shielded-integrity-monitoring
La supervisión de la integridad está habilitada de forma predeterminada. Puedes habilitarla de forma explícita cuando crees un clúster o grupo de nodos con la opción --shielded-integrity-monitoring
.
Console
Para inhabilitar la supervisión de integridad cuando crees un grupo de nodos, haz lo siguiente:
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud:
Haz clic en el nombre del clúster que deseas modificar.
Haz clic en add_box Agregar grupo de nodos.
En el panel de navegación, haz clic en Seguridad.
En Opciones protegidas, desmarca la casilla de verificación Habilitar supervisión de integridad.