Editar

Computação confidencial numa plataforma de cuidados de saúde

Azure Kubernetes Service (AKS)

Este artigo apresenta uma solução que a computação confidencial (ACC) do Azure oferece para encriptar dados em utilização.

Arquitetura

Diagrama de uma demonstração confidencial da plataforma de cuidados de saúde. A plataforma inclui um hospital, fornecedor de plataforma médica e fornecedor de diagnóstico.

Transfira um ficheiro do Visio desta arquitetura.

O diagrama descreve a arquitetura. Em todo o sistema:

Fluxo de trabalho

A solução envolve os seguintes passos:

  1. Um funcionário de um hospital local abre um portal Web. Toda a aplicação Web é um site Armazenamento de Blobs do Azure estático.
  2. O funcionário introduz dados no portal Web do hospital, que se liga a uma API Web baseada em Python Flask criada por um popular fornecedor de plataformas médicas. Um nó confidencial no software de computação confidencial SCONE protege os dados do paciente. O SCONE funciona num cluster do AKS que tem as Extensões do Software Guard (SGX) ativadas que ajudam a executar o contentor num enclave. A API Web fornecerá provas de que os dados confidenciais e o código da aplicação estão encriptados e isolados num Ambiente de Execução Fidedigna. Isto significa que nenhum ser humano, nenhum processo e nenhum registo tem acesso aos dados de texto claro ou ao código da aplicação.
  3. O cliente da aplicação Web do hospital pede que um serviço de atestado (Azure Attestation) valide estas provas e receba um token de atestado assinado para que outras aplicações verifiquem.
  4. Se a API Web necessitar de componentes adicionais (como uma cache de Redis), pode transmitir o token de atestado para verificar se os dados e o código da aplicação permaneceram até agora num enclave seguro (consulte o passo 6 para verificação).
  5. A API Web pode até consumir serviços remotos, como um modelo de ML alojado por um fornecedor de diagnóstico de terceiros. Ao fazê-lo, continua a transmitir quaisquer tokens de atestado para obter provas de que os enclaves necessários são seguros. A API Web também pode tentar receber e verificar tokens de atestado para a infraestrutura do fornecedor de diagnóstico.
  6. A infraestrutura remota aceita o token de atestado da api Web da plataforma médica e verifica-o com um certificado público encontrado no serviço Azure Attestation. Se o token for verificado, há quase a certeza de que o enclave é seguro e que nem os dados nem o código da aplicação foram abertos fora do enclave.
  7. O fornecedor de diagnósticos, confiante de que os dados não foram expostos, envia-os para o seu próprio enclave num servidor de runtime open Neural Network Exchange (ONNX). Um modelo de IA interpreta as imagens médicas e devolve os resultados do diagnóstico à aplicação de API Web confidencial da plataforma médica. A partir daqui, o software pode interagir com os registos dos pacientes e/ou contactar outros funcionários do hospital.

Componentes

  • Armazenamento de Blobs do Azure serve conteúdo estático, como HTML, CSS, JavaScript e ficheiros de imagem diretamente a partir de um contentor de armazenamento.

  • Azure Attestation é uma solução unificada que verifica remotamente a fiabilidade de uma plataforma. Azure Attestation também verifica remotamente a integridade dos binários que são executados na plataforma. Utilize Azure Attestation para estabelecer confiança com a aplicação confidencial.

  • Azure Kubernetes Service simplifica o processo de implementação de um cluster do Kubernetes.

  • Os nós de computação confidenciais estão alojados numa série de máquinas virtuais específica que pode executar cargas de trabalho confidenciais no AKS num ambiente de execução fidedigna (TEE) baseado em hardware, ao permitir que o código ao nível do utilizador aloque regiões privadas de memória, conhecidas como enclaves. Os nós de computação confidenciais podem suportar contentores confidenciais ou contentores com suporte para enclaves.

  • A plataforma SCONE é uma solução de fornecedor de software independente (ISV) do Azure Partner da Scontain.

  • O Redis é um arquivo de estrutura de dados de código aberto na memória.

  • O Secure Container Environment (SCONE) suporta a execução de aplicações confidenciais em contentores que são executados dentro de um cluster do Kubernetes.

  • A Inferência Confidencial do Enclave do Servidor onNX Runtime (ONNX RT - Enclave) é um anfitrião que restringe o acesso da entidade anfitriã de ML ao pedido de inferência e à resposta correspondente.

Alternativas

  • Pode utilizar o Fortanix em vez do SCONE para implementar contentores confidenciais para utilizar com a sua aplicação em contentores. O Fortanix fornece a flexibilidade necessária para executar e gerir o conjunto mais amplo de aplicações: aplicações existentes, novas aplicações nativas de enclave e aplicações pré-empacotadas.

  • Graphene é um SO convidado leve e open source. O Graphene pode executar uma única aplicação Linux num ambiente isolado com benefícios comparáveis à execução de um SO completo. Tem um bom suporte de ferramentas para converter aplicações de contentor do Docker existentes em Contentores Protegidos do Graphene (GSC).

Detalhes do cenário

Quando as organizações colaboram, partilham informações. No entanto, a maioria das partes não quer dar a outras partes acesso a todas as partes dos dados. Existem mecanismos para salvaguardar dados inativos e em trânsito. No entanto, a encriptação de dados em utilização coloca desafios diferentes.

Ao utilizar computação e contentores confidenciais, a solução fornece uma forma de uma aplicação alojada pelo fornecedor colaborar em segurança com um hospital e um fornecedor de diagnóstico de terceiros. Azure Kubernetes Service (AKS) aloja nós de computação confidenciais. Azure Attestation estabelece confiança com o fornecedor de diagnóstico. Ao utilizar estes componentes do Azure, a arquitetura isola os dados confidenciais dos pacientes hospitalares enquanto os dados partilhados específicos estão a ser processados na cloud. Os dados do hospital são então inacessíveis ao fornecedor de diagnóstico. Através desta arquitetura, a aplicação alojada pelo fornecedor também pode tirar partido da análise avançada. O fornecedor de diagnóstico disponibiliza estas análises como serviços de computação confidenciais de aplicações de machine learning (ML).

Potenciais casos de utilização

Muitas indústrias protegem os seus dados através da computação confidencial para estas finalidades:

  • Proteger dados financeiros
  • Proteger as informações do paciente
  • Executar processos de ML em informações confidenciais
  • Executar algoritmos em conjuntos de dados encriptados de várias origens
  • Proteger os dados de contentor e a integridade do código

Considerações

Estas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que podem ser utilizados para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, veja Microsoft Azure Well-Architected Framework.

As máquinas virtuais de computação confidencial (VMs) do Azure estão disponíveis em tamanhos de família de 2ª geração para fins gerais. Estes tamanhos são conhecidos coletivamente como séries D-Series v2 ou DCsv2. Este cenário utiliza máquinas virtuais de série de DCs_v2 compatíveis com Intel SGX com imagens do sistema operativo Gen2 (SO). Mas só pode implementar determinados tamanhos em determinadas regiões. Para obter mais informações, veja Início Rápido: Implementar uma VM de Computação Confidencial do Azure no Marketplace e Produtos disponíveis por região.

Otimização de custos

A otimização de custos consiste em analisar formas de reduzir as despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, veja Descrição geral do pilar de otimização de custos.

Para explorar o custo de execução deste cenário, utilize a calculadora de preços do Azure, que pré-configura todos os serviços do Azure.

Está disponível um perfil de custo de exemplo para a Plataforma SaaS Médica da Contoso, conforme ilustrado no diagrama. Inclui os seguintes componentes:

  • Conjunto de nós de sistema e conjunto de nós SGX: sem discos, todos efémeros
  • AKS Balanceador de Carga
  • Azure Rede Virtual: nominal
  • Registo de Contentores do Azure
  • Conta de armazenamento da aplicação de página única (SPA)

O perfil não inclui os seguintes componentes:

  • Serviço Azure Attestation: gratuito

  • Registos do Azure Monitor: baseados na utilização

  • Licenciamento DO SCONE ISV

  • Serviços de conformidade necessários para soluções que funcionem com dados confidenciais, incluindo:

    • Microsoft Defender para a Cloud e Microsoft Defender para Kubernetes
    • Azure DDoS Protection: Proteção de Rede
    • Azure Firewall
    • Gateway de Aplicação do Azure e Firewall de Aplicações Web do Azure
    • Azure Key Vault

Implementar este cenário

A implementação deste cenário envolve os seguintes passos de alto nível:

  • Implemente o servidor de inferência confidencial num Cluster do AKS compatível com SGX existente. Veja o projeto de servidor de inferência ONNX confidencial no GitHub para obter informações sobre este passo.

  • Configurar políticas de Azure Attestation.

  • Implementar um conjunto de nós de cluster do AKS compatível com SGX.

  • Obtenha acesso a aplicações confidenciais organizadas chamadas SconeApps. O SconeApps está disponível num repositório privado do GitHub que está atualmente disponível apenas para clientes comerciais, através do SCONE Standard Edition. Aceda ao site da SCONE e contacte a empresa diretamente para obter este nível de serviço.

  • Instale e execute serviços SCONE no cluster do AKS.

  • Instale e teste a aplicação baseada em Flask no cluster do AKS.

  • Implementar e aceder ao cliente Web.

Estes passos focam-se nos contentores do enclave. Uma infraestrutura protegida expandir-se-ia para além desta implementação e incluiria requisitos de conformidade, tais como proteções adicionais necessárias pela HIPAA.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuintes.

Autor principal:

Passos seguintes