Informática confidencial en plataformas de atención sanitaria

Azure Kubernetes Service (AKS)

En este artículo se presenta una solución que la computación confidencial de Azure (ACC) ofrece para cifrar datos en uso.

Architecture

Diagrama de demostración de plataforma de atención sanitaria confidencial. La plataforma incluye un hospital, un proveedor de la plataforma médica y un proveedor de diagnóstico.

Descargue un archivo Visio de esta arquitectura.

En el diagrama se describe la arquitectura. En todo el sistema:

  • La comunicación de red está cifrada con TLS en tránsito.
  • Azure Monitor realiza un seguimiento del rendimiento de los componentes y Azure Container Registry (ACR) administra los contenedores de la solución.

Flujo de trabajo

Esta solución implica los pasos siguientes:

  1. Un empleado de un hospital local abre un portal web. La aplicación web completa es un sitio web estático de Azure Blob Storage.
  2. El empleado escribe los datos en el portal web del hospital, que se conecta a una API web basada en Python Flask creada por un conocido proveedor de plataformas médicas. Un nodo confidencial en el software de computación confidencial SCONE protege los datos de los pacientes. SCONE funciona en un clúster de AKS que tiene habilitada la tecnología Software Guard Extensions (SGX) que ayuda a ejecutar el contenedor en un enclave. La API web proporcionará evidencia de que los datos confidenciales y el código de la aplicación están cifrados y aislados en un entorno de ejecución de confianza. Esto significa que ninguna persona, ningún proceso ni ningún registro tienen acceso a los datos de texto no cifrado ni al código de la aplicación.
  3. El cliente de la aplicación web del hospital solicita que un servicio de atestación (Azure Attestation) valide esta evidencia y recibe un token de atestación firmado para que lo comprueben otras aplicaciones.
  4. Si la API web requiere componentes adicionales (como una memoria caché de Redis), puede pasar el token de atestación para comprobar que los datos y el código de la aplicación han permanecido hasta el momento en un enclave seguro (consulte el paso 6 para la comprobación).
  5. La API web puede incluso consumir servicios remotos, como un modelo de ML hospedado por un proveedor de diagnóstico de terceros. Al hacerlo, sigue pasando los tokens de atestación como evidencia de que los enclaves necesarios sean seguros. La API web también podría intentar recibir y comprobar tokens de atestación de la infraestructura del proveedor de diagnóstico.
  6. La infraestructura remota acepta el token de atestación de la API web de la plataforma médica y lo comprueba con un certificado público que se encuentra en el servicio Azure Attestation. Si se comprueba correctamente el token, hay casi certeza de que el enclave es seguro y no se han abierto los datos ni el código de la aplicación fuera del enclave.
  7. El proveedor de diagnósticos, con la seguridad de que los datos no se han expuesto, los envía a su propio enclave en un servidor del entorno de ejecución Open Neural Network Exchange (ONNX). Un modelo de inteligencia artificial interpreta las imágenes médicas y devuelve los resultados de diagnóstico a la aplicación de API web confidencial de la plataforma médica. A partir de aquí, el software puede interactuar con los registros de los pacientes y ponerse en contacto con otro personal del hospital.

Componentes

  • Azure Blob Storage puede proporcionar contenido estático (como HTML, CSS, JavaScript y archivos de imagen) directamente desde un contenedor de almacenamiento.

  • Azure Attestation es una solución unificada que comprueba de forma remota la confiabilidad de una plataforma. Azure Attestation también comprueba de forma remota la integridad de los archivos binarios que se ejecutan en la plataforma. Use Azure Attestation para establecer la confianza con la aplicación confidencial.

  • Azure Kubernetes Service simplifica el proceso de implementación de un clúster de Kubernetes.

  • Los nodos de computación confidencial se hospedan en una serie de máquinas virtuales específicas que pueden ejecutar cargas de trabajo confidenciales en AKS dentro de un entorno de ejecución de confianza (TEE) basado en hardware al permitir al código de nivel de usuario asignar regiones privadas de memoria, llamadas enclaves. Los nodos de computación confidencial pueden admitir contenedores confidenciales o contenedores compatibles con enclave.

  • La plataforma SCONE es una solución de proveedor de software independiente (ISV) para asociados de Azure de Scontain.

  • Redis es un almacén de estructuras de datos en memoria de código abierto.

  • El entorno de contenedor seguro (SCONE) admite la ejecución de aplicaciones confidenciales en contenedores que se ejecutan en un clúster de Kubernetes.

  • El enclave del servidor en tiempo de ejecución ONNX de inferencia confidencial (ONNX RT - Enclave) es un host que impide a la parte que hospeda el aprendizaje automático el acceso a la solicitud de inferencia y a su respuesta correspondiente.

Alternativas

  • Puede usar Fortanix en lugar de SCONE para implementar contenedores confidenciales que se usarán con la aplicación contenedorizada. Fortanix ofrece la flexibilidad necesaria para ejecutar y administrar el conjunto más amplio de aplicaciones, como las aplicaciones existentes, las nuevas aplicaciones nativas de enclave y las aplicaciones ya empaquetadas.

  • Graphene es un sistema operativo invitado ligero de código abierto. Graphene puede ejecutar una sola aplicación de Linux en un entorno aislado con ventajas comparables a la ejecución de un sistema operativo completo. Tiene una buena compatibilidad con herramientas para convertir aplicaciones de contenedor de Docker existentes en Graphene Shielded Containers (GSC).

Detalles del escenario

Cuando las organizaciones colaboran, comparten información. Sin embargo, la mayoría de las partes no desean conceder a las otras partes acceso a todos sus datos. Existen mecanismos para proteger los datos en reposo y en tránsito. No obstante, el cifrado de datos en uso plantea diferentes desafíos.

Mediante el uso de computación confidencial y contenedores, la solución proporciona una manera de que una aplicación hospedada por el proveedor colabore de forma segura con un hospital y un proveedor de diagnóstico de terceros. Azure Kubernetes Service (AKS) hospeda nodos de computación confidencial. Azure Attestation establece confianza con el proveedor de diagnóstico. Mediante el uso de estos componentes de Azure, la arquitectura aísla los datos confidenciales de los pacientes del hospital mientras se procesan los datos compartidos específicos en la nube. A continuación, el proveedor de diagnóstico no podrá acceder a los datos del hospital. Con esta arquitectura, la aplicación hospedada por el proveedor también puede aprovechar el análisis avanzado. El proveedor de diagnóstico hace que estos análisis estén disponibles como servicios de computación confidencial de aplicaciones de aprendizaje automático (ML).

Posibles casos de uso

En muchos sectores se protegen los datos con computación confidencial para los siguientes fines:

  • Protección de los datos financieros
  • Protección de la información del paciente
  • Ejecución de procesos de aprendizaje automático en información confidencial
  • Realización de algoritmos en conjuntos de datos cifrados desde varios orígenes
  • Protección de datos de contenedor y la integridad del código

Consideraciones

Estas consideraciones implementan los pilares del marco de buena arquitectura de Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.

Las máquinas virtuales (VM) de computación confidencial de Azure están disponibles en los tamaños de la familia D de 2.ª generación para fines genéricos. Estos tamaños se conocen colectivamente como serie D v2 o DCsv2. En este escenario se usan máquinas virtuales de la serieDCs_v2 compatibles con Intel SGX con imágenes de sistema operativo de 2.ª generación. Sin embargo, solo se pueden implementar ciertos tamaños en determinadas regiones. Para más información, consulte Inicio rápido: Implementación de una máquina virtual de computación confidencial de Azure en Marketplace y Productos disponibles por región.

Optimización de costos

La optimización de costos trata de buscar formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para más información, vea Información general del pilar de optimización de costos.

Use la calculadora de precios de Azure que preconfigura todos los servicios de Azure para explorar el costo de la ejecución de este escenario.

Hay disponible un perfil de costos de ejemplo para la plataforma SaaS de Contoso Medical, tal como se muestra en el diagrama. Incluye los siguientes componentes:

  • Grupo de nodos del sistema y grupo de nodos de SGX: sin discos, todos efímeros
  • Equilibrador de carga de AKS
  • Azure Virtual Network: nominal
  • Azure Container Registry
  • Cuenta de almacenamiento para una aplicación de una sola página (SPA)

El perfil no incluye los siguientes componentes:

  • Servicio Azure Attestation: gratis

  • Registros de Azure Monitor: basados en uso

  • Licencia ISV de SCONE

  • Servicios de cumplimiento necesarios para soluciones que trabajan con datos confidenciales, incluidos:

    • Microsoft Defender para la nube y Microsoft Defender para Kubernetes
    • Azure DDoS Protection: Protección de red
    • Azure Firewall
    • Azure Application Gateway y Azure Web Application Firewall
    • Azure Key Vault

Implementación de este escenario

La implementación de este escenario implica los siguientes pasos de alto nivel:

  • Implemente el servidor de inferencia confidencial en un clúster de AKS compatible con SGX existente. Para obtener información acerca de este paso, consulte el proyecto del servidor de inferencia ONNX confidencial en GitHub.

  • Configure las directivas de Azure Attestation.

  • Implemente un grupo de nodos de clúster de AKS compatibles con SGX.

  • Obtenga acceso a aplicaciones confidenciales seleccionadas llamadas SconeApps. Las SconeApps están disponibles en un repositorio de GitHub privado que actualmente solo está disponible para los clientes comerciales, mediante Scone Standard Edition. Vaya al sitio web de SCONE y póngase en contacto con la empresa directamente para obtener este nivel de servicio.

  • Instale y ejecute servicios de SCONE en el clúster de AKS.

  • Instale y pruebe la aplicación basada en Flask en el clúster de AKS.

  • Implemente y acceda al cliente web.

Estos pasos se centran en los contenedores de enclave. Una infraestructura segura va más allá de esta implementación e incluye requisitos de cumplimiento, como las medidas de protección adicionales que requiere la ley HIPAA.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Autor principal:

  • Amar Gowda | Administrador de productos principal

Pasos siguientes