Contenedores confidenciales (versión preliminar) en Azure Kubernetes Service
Con el crecimiento en el desarrollo de aplicaciones nativas de nube, también hay una mayor necesidad de proteger las cargas de trabajo que se ejecutan en entornos en la nube. La contenedorización de la carga de trabajo forma un componente clave para este modelo de programación y, después, la protección del contenedor es fundamental para la ejecución confidencial en la nube.
Los contenedores confidenciales en Azure Kubernetes Service (AKS) habilitan el aislamiento en el nivel de contenedor en las cargas de trabajo de Kubernetes. Es una adición al conjunto de productos de computación confidencial de Azure y usa el cifrado de memoria AMD SEV-SNP para proteger los contenedores en tiempo de ejecución.
Los contenedores confidenciales resultan atractivos en escenarios de implementación que implican datos confidenciales (por ejemplo, datos personales o cualquier dato con seguridad sólida necesaria para el cumplimiento normativo).
¿Qué hace que un contenedor sea confidencial?
En consonancia con las instrucciones establecidas por Confidential Computing Consortium, del que Microsoft es un miembro fundador, los contenedores confidenciales deben cumplir lo siguiente:
- Transparencia: el entorno de contenedor confidencial donde se comparte la aplicación confidencial, puede ver y comprobar si es seguro. Todos los componentes de Base informática de confianza (TCB) deben ser de código abierto.
- Capacidad de auditoría: tendrá la capacidad de comprobar y ver qué versión del paquete de entorno de CoCo incluye el sistema operativo invitado Linux y si todos los componentes están actualizados. Microsoft inicia sesión en el sistema operativo invitado y el entorno de tiempo de ejecución del contenedor para realizar comprobaciones mediante atestación. También publica un algoritmo hash seguro (SHA) de compilaciones de sistema operativo invitado para crear una historia de capacidad de auditoría y control de cadenas.
- Atestación completa: todo lo que forme parte del TEE se medirá completamente mediante la CPU con la capacidad de comprobación remota. El informe de hardware del procesador AMD SEV-SNP reflejará las capas de contenedor y el hash de configuración del entorno de ejecución del contenedor mediante las notificaciones de atestación. La aplicación puede capturar el informe de hardware localmente, incluido el informe que refleja la imagen del sistema operativo invitado y el entorno de ejecución del contenedor.
- Integridad del código: el cumplimiento en tiempo de ejecución siempre está disponible mediante directivas definidas por el cliente para contenedores y configuración de contenedores, como directivas inmutables y firma de contenedores.
- Aislamiento del operador: diseños de seguridad que asumen privilegios mínimos y blindaje de aislamiento más alto de todas las partes que no son de confianza, incluidos los administradores de clientes o inquilinos. Incluye la protección del acceso del plano de control de Kubernetes existente (kubelet) a pods confidenciales.
Pero a pesar de estas características de confidencialidad, el producto debe conservar su facilidad de uso: admite todos los contenedores de Linux sin modificar con una alta compatibilidad con las características de Kubernetes. Además, admite grupos de nodos heterogéneos (GPU, nodos de uso general) en un único clúster para optimizar el costo.
¿Qué forma los contenedores confidenciales en AKS?
En consonancia con el compromiso de Microsoft con la comunidad de código abierto, la pila subyacente de contenedores confidenciales usa el agente Kata CoCo como agente que se ejecuta en el nodo que hospeda el pod que ejecuta la carga de trabajo confidencial. Con muchas tecnologías TEE que necesitan un límite entre el host y el invitado, Kata Containers es la base para el trabajo inicial de Kata CoCo. Microsoft también ha contribuido a la comunidad de Kata Coco como tecnología los para contenedores que se ejecutan dentro de una máquina virtual de utilidad confidencial.
El contenedor confidencial Kata reside en el host de contenedor de AKS de Linux de Azure. Azure Linux y Cloud Hypervisor VMM (Virtual Machine Monitor) es el software de espacio de usuario u orientado al usuario final que se usa para crear y administrar la duración de las máquinas virtuales.
Aislamiento de nivel de contenedor en AKS
De manera predeterminada, todas las cargas de trabajo de AKS comparten el mismo kernel y el mismo administrador de clúster. Con la versión preliminar de Pod Sandboxing en AKS, el aislamiento ha subido un nivel con la capacidad de proporcionar aislamiento de kernel para las cargas de trabajo en el mismo nodo de AKS. Aquí puede obtener más información sobre la característica. Los contenedores confidenciales son el siguiente paso de este aislamiento y usan las funcionalidades de cifrado de memoria de los tamaños de máquina virtual AMD SEV-SNP subyacentes. Estas máquinas virtuales son las de los tamaños DCa_cc y ECa_cc con la capacidad de exponer la raíz de confianza del hardware los pods implementados en él.
Introducción
Para empezar y obtener más información sobre los escenarios admitidos, consulte aquí la documentación de AKS.