Compatibilidad del enclave de aplicaciones con nodos de computación confidencial basados en Intel SGX en Azure Kubernetes Service

La computación confidencial de Azure permite proteger los datos confidenciales mientras estén en uso. Los enclaves basados en Intel SGX permiten ejecutar la aplicación empaquetada como contenedor dentro de AKS. Los contenedores que se ejecutan dentro de un entorno de ejecución de confianza (TEE) aportan aislamiento de otros contenedores, el kernel del nodo en un entorno que se puede corroborar protegido por hardware y con integridad.

Información general

Azure Kubernetes Service (AKS) admite la adición de nodos de máquina virtual de computación confidencial de Intel SGX como grupos de agentes en un clúster. Estos nodos permiten ejecutar cargas de trabajo confidenciales en (TEE) basado en hardware. Los TEE permiten que el código de nivel de usuario de los contenedores asigne regiones privadas de memoria para ejecutar el código directamente con la CPU. Estas regiones privadas de memoria que se ejecutan directamente con la CPU se denominan enclaves. Los enclaves ayudan a proteger la confidencialidad de los datos y la integridad de los datos y el código de otros procesos que se ejecutan en los mismos nodos, así como en el operador de Azure. El modelo de ejecución de Intel SGX también quita las capas intermedias del sistema operativo invitado, el sistema operativo del host y el hipervisor. De este modo, se reduce el área expuesta a ataques. El modelo de ejecución aislada por contenedor basada en hardware en un nodo permite que las aplicaciones se ejecuten directamente con la CPU, manteniendo el bloque de memoria especial cifrado. Los nodos de computación confidencial con contenedores confidenciales son una excelente incorporación al planeamiento de seguridad de confianza cero y a la estrategia de contenedor para una defensa en profundidad.

Gráfico del nodo de proceso confidencial de AKS, que muestra contenedores confidenciales con código y datos protegidos dentro.

Característica de nodos de computación confidencial de Intel SGX

  • Aislamiento de contenedor en el nivel de proceso basado en hardware mediante un entorno de ejecución de confianza (TEE) de Intel SGX
  • Clústeres de grupos de nodos heterogéneos (mezcla de grupos de nodos confidenciales y no confidenciales)
  • Programación de pods basada en memoria caché de página cifrada (EPC) mediante el complemento de AKS "confcom"
  • Controlador Intel SGX DCAP preinstalado y dependencia de kernel instalada
  • Escalabilidad automática de clúster y escalabilidad horizontal automática de pods en función del consumo de CPU
  • Compatibilidad con contenedores Linux mediante los nodos de trabajo de máquina virtual de Ubuntu 18.04 Gen 2

Complemento de computación confidencial para AKS

La función del complemento habilita funcionalidad adicional en AKS al ejecutar grupos de nodos de computación confidencial compatibles con Intel SGX en el clúster. El complemento "confcom" en AKS habilita las características siguientes.

Complemento de dispositivo de Azure para Intel SGX

El complemento de dispositivo implementa la interfaz del complemento de dispositivo de Kubernetes para la memoria caché de página cifrada (EPC) y expone los controladores de dispositivo de los nodos. De hecho, este complemento convierte la memoria EPC en otro tipo de recurso en Kubernetes. Los usuarios pueden especificar límites en este recurso tal como lo harían en cualquier otro. Además de la función de programación, el complemento de dispositivo ayuda a asignar los permisos del controlador de dispositivo de Intel SGX a implementaciones de contenedor confidenciales. Con este desarrollador de complemento se puede evitar el montaje de volúmenes del controlador Intel SGX en los archivos de implementación. Este complemento en clústeres de AKS se ejecuta como un daemonset por nodo de máquina virtual compatible con Intel SGX. Para ver un ejemplo de la implementación basada en memoria de EPC (kubernetes.azure.com/sgx_epc_mem_in_MiB) consulte aquí

Asistente de citas de Intel SGX con componentes de software de plataforma

Como parte del complemento, se implementa otro daemonset por nodo de máquina virtual que es compatible con Intel SGX en el clúster de AKS. Este daemonset ayuda a las aplicaciones de contenedor confidenciales cuando se invoca una solicitud remota de atestación fuera de proceso.

Las aplicaciones de enclave que realizan la atestación remota necesitan generar una oferta. La cita proporciona una prueba criptográfica de la identidad y del estado de la aplicación junto con el entorno en que se hospeda el enclave. La generación de una cita utiliza determinados componentes de software de confianza de Intel, que forman parte de los componentes de software de plataforma (PSW/DCAP) de SGX. Este PSW se empaqueta como un DaemonSet que se ejecuta por nodo. Puede utilizar el PSW al solicitar la cita de atestación de las aplicaciones de enclave. El uso del servicio proporcionado por AKS ayuda a mantener mejor la compatibilidad entre PSW y otros componentes de SW del host con controladores Intel SGX que forman parte de los nodos de máquina virtual de AKS. Obtenga más información sobre cómo las aplicaciones pueden usar este daemonset sin tener que empaquetar las primitivas de atestación como parte de las implementaciones de contenedor Más información

Modelos de programación

Contenedores confidenciales a través de asociados y sistemas operativos

Los contenedores confidenciales ayudan a ejecutar aplicaciones de contenedor sin modificar existentes de los entornos de ejecución de lenguajes de programación más comunes (por ejemplo, Python, Node, Java, etc.) de forma confidencial. Este modelo de empaquetado no necesita modificaciones ni recompilaciones de código fuente y es el método más rápido para ejecutarse en enclaves Intel SGX que se puede lograr empaquetando los contenedores de Docker estándar con proyectos de código abierto o soluciones de asociados de Azure. En este modelo de empaquetado y ejecución, todos los elementos de la aplicación contenedora se cargan en el límite de confianza (enclave). Este modelo funciona bien con aplicaciones contenedoras comerciales del mercado o con aplicaciones personalizadas que se ejecutan actualmente en nodos de uso general. Obtenga más información sobre el proceso de preparación e implementación aquí

Contenedores compatibles con enclave

Los nodos de computación confidencial de AKS también admiten contenedores programados para ejecutarse en un enclave con el fin de utilizar un conjunto de instrucciones especial disponible en la CPU. Este modelo de programación permite un control más estricto del flujo de ejecución y requiere el uso de SDK y marcos de trabajo especiales. Este modelo de programación proporciona el máximo control del flujo de la aplicación, con la Base de computación de confianza (TCB) mínima. El desarrollo de contenedores compatible con enclaves afecta a elementos de confianza y que no son de confianza para la aplicación contenedora. De este modo, permite administrar la memoria normal y la memoria caché de página cifrada (EPC) donde se ejecuta el enclave. Más información sobre contenedores compatibles con el enclave.

Preguntas más frecuentes

Encuentre respuestas a algunas de las preguntas habituales sobre la compatibilidad del grupo de nodos de Azure Kubernetes Service (AKS) con los nodos de computación confidencial basados en Intel SGX aquí

Pasos siguientes

Implementación de un clúster de AKS con nodos de computación confidencial

Inicio rápido con ejemplos de contenedores confidenciales

Máquinas virtuales confidenciales con Intel SGX: lista de SKU de DCsv2

Máquinas virtuales confidenciales con Intel SGX: lista de SKU de DCsv3

Sesión de seminario web sobre la defensa en profundidad con contenedores confidenciales