Contêineres confidenciais no Serviço Kubernetes do Azure (AKS) com enclaves Intel SGX
Os contêineres confidenciais ajudam você a executar aplicativos de contêiner não modificados existentes dos tempos de execução das linguagens de programação mais comuns (Python, Node, Java, etc.) no Trusted Execution Environment (TEE) baseado em Intel SGX. Este modelo de empacotamento normalmente não precisa de nenhuma modificação ou recompilação do código-fonte e é o método mais rápido para ser executado em enclaves Intel SGX. O processo de implantação típico para executar seus contêineres docker padrão requer um Wrapper SGX de Código Aberto ou uma Solução de Parceiro do Azure. Neste modelo de empacotamento e execução, cada aplicativo de contêiner é carregado no limite confiável (enclave) e com um isolamento baseado em hardware imposto pela CPU Intel SGX. Cada contêiner executado em um enclave recebe sua própria chave de criptografia de memória fornecida pela CPU Intel SGX. Este modelo funciona bem para aplicativos de contêiner prontos para uso disponíveis no mercado ou aplicativos personalizados atualmente em execução em nós de uso geral. Para executar um contêiner Docker existente, os aplicativos em nós de computação confidenciais exigem um software wrapper Intel Software Guard Extensions (SGX) para ajudar na execução do contêiner dentro dos limites do conjunto especial de instruções da CPU. O SGX cria uma execução direta para a CPU para remover o sistema operacional convidado, o sistema operacional host ou o hipervisor do limite de confiança. Esta etapa reduz as áreas gerais de ataque à superfície e as vulnerabilidades, ao mesmo tempo em que alcança o isolamento no nível do processo em um único nó.
O processo geral para executar contêineres não modificados envolve alterações na forma como o contêiner é empacotado hoje, conforme detalhado abaixo.
O software wrapper SGX necessário para ajudar a executar contêineres padrão é oferecido por parceiros de software do Azure ou soluções de software de código aberto (OSS).
Facilitadores de parceiros
Os programadores podem escolher fornecedores de software com base nas suas funcionalidades, integração com os serviços do Azure e suporte de ferramentas.
Importante
Os parceiros de software do Azure geralmente envolvem taxas de licenciamento sobre sua infraestrutura do Azure. Verifique todos os termos do software parceiro de forma independente.
Fortanix
A Fortanix tem experiências de portal e interface de linha de comando (CLI) para converter seus aplicativos em contêineres em contêineres confidenciais compatíveis com SGX. Você não precisa modificar ou recompilar o aplicativo. O Fortanix oferece a flexibilidade para executar e gerenciar um amplo conjunto de aplicativos. Você pode usar aplicativos existentes, novos aplicativos nativos do enclave e aplicativos pré-empacotados. Comece com a interface do usuário do Enclave Manager ou APIs REST do Fortanix. Crie contêineres confidenciais usando o guia de início rápido do Fortanix para AKS.
SCONE (Stain)
As políticas de segurança SCONE (Scontain) geram certificados, chaves e segredos. Somente serviços com atestado para um aplicativo veem essas credenciais. Os serviços de aplicativos fazem automaticamente o atestado uns para os outros por meio do TLS. Você não precisa modificar os aplicativos ou TLS. Para obter mais explicações, consulte a demonstração do aplicativo Flask da SCONE.
O SCONE pode converter a maioria dos binários existentes em aplicativos executados dentro de enclaves. SCONE também protege linguagens interpretadas como Python criptografando arquivos de dados e arquivos de código Python. Você pode usar as políticas de segurança SCONE para proteger arquivos criptografados contra acesso não autorizado, modificações e reversões. Para obter mais informações, consulte a documentação do SCONE sobre como usar o SCONE com um aplicativo Python existente.
Você pode implantar o SCONE em nós de computação confidenciais do Azure com o AKS seguindo esta implantação de aplicativo AKS de exemplo do SCONE.
Anjuna
A Anjuna fornece software de plataforma SGX para executar contêineres não modificados no AKS. Para obter mais informações, consulte a documentação do Anjuna sobre funcionalidade e aplicativos de exemplo.
Comece com um exemplo de Cache Redis e Aplicativo Personalizado Python aqui
Facilitadores de OSS
Nota
A computação confidencial do Azure e a Microsoft não estão diretamente afiliadas a esses projetos e soluções.
Uva
Gramine é um sistema operacional convidado leve, projetado para executar um único aplicativo Linux com requisitos mínimos de host. Gramine pode executar aplicativos em um ambiente isolado. Há suporte a ferramentas para converter contêineres Docker existentes em contêineres prontos para SGX.
Para obter mais informações, consulte o aplicativo de exemplo e a implantação do Gramine no AKS
Occlum
O Occlum é um sistema operacional de biblioteca multiprocesso (LibOS) seguro para memória para Intel SGX. O sistema operacional permite que aplicativos legados sejam executados em SGX com pouca ou nenhuma modificação no código-fonte. O Occlum protege de forma transparente a confidencialidade das cargas de trabalho do usuário, permitindo um fácil "lift and shift" para aplicativos Docker existentes.
Para obter mais informações, consulte as instruções de implantação do Occlomum e os aplicativos de exemplo no AKS.
Mármore
Marblerun é uma estrutura de orquestração para contêineres confidenciais. Você pode executar e dimensionar serviços confidenciais no Kubernetes habilitado para SGX. O Marblerun cuida de tarefas clichês, como verificar os serviços em seu cluster, gerenciar segredos para eles e estabelecer conexões mTLS de enclave para enclave entre eles. O Marblerun também garante que seu cluster de contêineres confidenciais adira a um manifesto definido em JSON simples. Você pode verificar o manifesto com clientes externos por meio de atestado remoto.
Essa estrutura estende as propriedades de confidencialidade, integridade e verificabilidade de um único enclave a um cluster Kubernetes.
O Marblerun suporta contêineres confidenciais criados com Grafeno, Oclum e EGo, com exemplos para cada SDK. A estrutura é executada no Kubernetes juntamente com suas ferramentas nativas da nuvem existentes. Há uma CLI e gráficos de leme. Marblerun também suporta nós de computação confidenciais no AKS. Siga o guia do Marblerun para implantar o Marblerun no AKS.
Arquiteturas de referência de contêineres confidenciais
- Mensagens de dados confidenciais para arquitetura de referência de cuidados de saúde e amostra com contêineres confidenciais Intel SGX.
- Processamento confidencial de big data com Apache Spark no AKS com contêineres confidenciais Intel SGX.
Contactos
Tem dúvidas sobre a sua implementação? Você quer se tornar um facilitador para contêineres confidenciais? Envie um e-mail para acconaks@microsoft.com.