Compartilhar via


Contêineres confidenciais no AKS (Serviço de Kubernetes do Azure) com enclaves do Intel SGX

Os contêineres confidenciais ajudam a executar os aplicativos contêineres não modificados existentes da maioria dos runtimes de linguagens de programação mais comuns (Python, Node, Java etc.) no TEE (Ambiente de Execução Confiável) baseado no Intel SGX. Esse modelo de empacotamento normalmente não precisa de modificações de código-fonte nem de recompilação e é o método mais rápido para a execução em enclaves Intel SGX. O processo de implantação típico para executar os contêineres de docker padrão exige um Wrapper SGX de Código Aberto ou uma solução de parceiro do Azure. Neste modelo de empacotamento e execução, cada aplicativo contêiner é carregado no limite confiável (enclave) e com um isolamento baseado em hardware imposto pela CPU do Intel SGX. Cada contêiner em execução em um enclave recebe sua própria chave de criptografia de memória fornecida pela CPU Intel SGX. Esse modelo funciona de modo adequado para aplicativos contêiner prontos para uso e disponíveis no mercado ou aplicativos personalizados que estão atualmente em execução em nós de uso geral. Para executar um contêiner existente do Docker, os aplicativos em nós de computação confidencial exigem um software wrapper Instel SGX (Software Guard Extensions) para auxiliar a execução do contêiner dentro dos limites do conjunto de instruções especiais da CPU. O SGX cria uma execução direta para a CPU, para remover do limite de confiança o SO (sistema operacional) convidado, host ou hipervisor. Essa etapa reduz as áreas de ataque e as vulnerabilidades gerais da superfície e, ao mesmo tempo, realiza 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.

Diagrama de conversão de contêiner confidencial, com novas etapas para habilitar o Intel SGX e o AKS.

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 OSS (Software de Código Aberto).

Habilitadores de parceiros

Os desenvolvedores podem escolher provedores de software com base nos seus recursos, na integração com os serviços do Azure e no suporte de ferramentas.

Importante

Os parceiros de software do Azure geralmente implicam valores de licenciamento sobre a infraestrutura do Azure. Verifique todos os termos do software do parceiro independentemente.

Fortanix

O Fortanix tem experiências de portal e CLI (Interface de Linha de Comando) para converter seus aplicativos conteinerizados em contêineres confidenciais com capacidade para 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 já existentes, novos nativos de enclave e pré-empacotados. Comece com a interface do usuário do Enclave Manager ou com APIs REST do Fortanix. Crie contêineres confidenciais usando o guia de início rápido para AKSdo Fortanix.

Diagrama do processo de implantação do Fortanix, mostrando etapas para movimentação de aplicativos para contêineres confidenciais e implantação.

SCONE (Scontain)

As políticas de segurança do SCONE (Scontain) geram certificados, chaves e segredos. Somente os serviços com atestado para um aplicativo detectam essas credenciais. Os serviços de aplicativos atestam automaticamente uns aos outros por meio do TLS. Você não precisa modificar os aplicativos ou o TLS. Para obter mais explicações, consulte a demonstração do aplicativo Flask do SCONE.

O SCONE pode converter a maioria dos binários existentes em aplicativos que podem ser executados em enclaves. O SCONE também protege linguagens interpretadas como o Python, criptografando arquivos de dados e arquivos de código Python. Você pode usar políticas de segurança do SCONE para proteger arquivos criptografados contra ações não autorizadas de acesso, modificação e reversão. Para obter mais informações, consulte a documentação do SCONE, em how to use SCONE with an existing Python application.

Diagrama do fluxo de trabalho do SCONE, mostrando como o SCONE processa imagens binárias.

Você pode implantar o SCONE em nós de computação confidencial do Azure com o AKS, após essa implantação de aplicativo do AKS de exemplo do SCONE.

Anjuna

O Anjuna fornece o software de plataforma SGX que permite executar contêineres não modificados no AKS. Para obter mais informações, consulte a documentação sobre funcionalidade e aplicativos de exemplo do Anjuna.

Veja a introdução a um exemplo de Cache Redis e Aplicativo Personalizado do Python aqui

Diagrama de processamento do Anjuna, mostrando como os contêineres são executados na computação confidencial do Azure.

Habilitadores de software de código aberto

Observação

A computação confidencial do Azure e a Microsoft não são diretamente afiliadas a esses projetos e soluções.

Gramine

O Graphene é um SO convidado leve, projetado para executar um único aplicativo Linux com requisitos mínimos de host. O Gramine pode executar aplicativos em ambiente isolado. Há suporte de ferramentas para converter o contêiner do Docker existente 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

Occlum é um LibOS (sistema operacional de biblioteca) de vários processos, com segurança de memória para o Intel SGX. O SO permite que os aplicativos herdados sejam executados no SGX com pouca ou nenhuma modificação no código-fonte. O Occlum protege de modo transparente a confidencialidade das cargas de trabalho do usuário, permitindo, ao mesmo tempo, uma migração do tipo lift-and-shift para aplicativos existentes do Docker.

Para obter mais informações, confira as instruções de implantação e aplicativos de exemplo no AKS do Occlum.

Marblerun

Marblerun é uma estrutura de orquestração para contêineres confidenciais. Você pode executar e escalar serviços confidenciais no Kubernetes habilitado para SGX. O Marblerun cuida de tarefas de textos clichês, como verificar os serviços no seu cluster, gerenciar segredos para eles e estabelecer conexões mTLS enclave a enclave entre eles. O Marblerun também garante que o cluster de contêineres confidenciais siga um manifesto definido em JSON simples. Você pode verificar o manifesto com clientes externos por meio do atestado remoto.

Essa estrutura estende as propriedades de confidencialidade, integridade e verificabilidade de um enclave para um cluster do Kubernetes.

O Marblerun oferece suporte a contêineres confidenciais criados com Graphene, Occlum e EGo, com exemplos de cada SDK. A estrutura é executada no Kubernetes juntamente com as ferramentas nativas de nuvem que você já possui. Há uma CLI e gráficos do Helm. O Marblerun também oferece suporte a nós de computação confidencial no AKS. Siga o guia do Marblerun para implantá-lo no AKS.

Arquiteturas de referência de contêineres confidenciais

Entre em contato

Alguma dúvida sobre a sua implementação? Deseja se tornar um habilitador de contêineres confidenciais? Enviar um email para acconaks@microsoft.com.

Próximas etapas