Suporte ao enclave de aplicativos com nós de computação confidencial baseados em Intel SGX no Serviço de Kubernetes do Azure

A computação confidencial do Azure permite que você proteja seus dados confidenciais enquanto eles estão sendo usados. Os enclaves baseados em Intel SGX permitem a execução do aplicativo empacotado como contêiner no AKS. Os contêineres executados em um TEE (Ambiente de Execução Confiável) fornecem o isolamento em relação a outros contêineres, o kernel do nó em um ambiente atestável, protegido por integridade e protegido por hardware.

Visão geral

O AKS (Serviço de Kubernetes do Azure) dá suporte à adição de nós de VM de computação confidencial do Intel SGX como pools de agentes em um cluster. Esses nós permitem executar cargas de trabalho confidenciais em um TEE baseado em hardware. Os TEEs permitem que um código em nível de usuário de contêineres aloque regiões privadas de memória para executar o código diretamente na CPU. Essas regiões de memória privada que são executadas diretamente na CPU são chamadas de enclaves. Os enclaves ajudam a proteger a integridade e a confidencialidade dos dados, bem como a integridade do código de outros processos em execução nos mesmos nós, bem como o operador do Azure. O modelo de execução do Intel SGX também remove camadas intermediárias do SO Convidado, do SO Host e do Hipervisor, reduzindo a área da superfície de ataque. O modelo de execução isolada por contêiner baseado em hardware em um nó permite que aplicativos sejam executados diretamente na CPU, mantendo um bloco especial de memória criptografada por contêiner. Os nós de computação confidencial com contêineres confidenciais são um excelente complemento para um planejamento de segurança de confiança zero e uma estratégia de contêiner de defesa completa.

Gráfico do Nó de Computação Confidencial do AKS, mostrando contêineres confidenciais com código e dados protegidos no interior.

Recurso de nós de computação confidencial Intel SGX

  • Isolamento de contêiner em nível de processo baseado em hardware por meio do TEE (ambiente de execução confiável) do Intel SGX
  • Clusters de pools de nós heterogêneos (mistura de pools de nós confidenciais e não confidenciais)
  • Agendamento do pod baseado em memória do Cache de Página Criptografada (EPC) por meio do complemento do AKS “confcom”
  • Driver Intel SGX DCAP pré-instalado e dependência do kernel instalada
  • Dimensionamento automático de pod horizontal e dimensionamento automático de cluster baseado no consumo da CPU
  • Suporte para Contêineres Linux por meio dos nós de trabalho de VM do Ubuntu 18.04 Gen 2

Complemento de computação confidencial para o AKS

O recurso complementar permite obter uma funcionalidade adicional no AKS durante a execução de pools de nós com capacidade de computação confidencial Intel SGX no cluster. O complemento “confcom” no AKS habilita os recursos abaixo.

Plug-in de dispositivo do Azure para o Intel SGX

O plug-in do dispositivo implementa uma interface de plug-in do dispositivo do Kubernetes para a memória EPC (Cache de Página Criptografada) e expõe os drivers de dispositivo dos nós. Efetivamente, esse plug-in transforma a memória EPC em outro tipo de recurso no Kubernetes. Os usuários podem especificar limites para esse recurso, assim como ocorre com outros recursos. Além da função de agendamento, o plug-in do dispositivo ajudará você a atribuir permissões de driver de dispositivo Intel SGX para implantações de contêiner confidenciais. Com esse plugin, os desenvolvedores poderão evitar a montagem de volumes do driver Intel SGX nos arquivos de implantação. Este complemento em clusters AKS é executado como um daemonset por nó de VM que é do compatível Intel SGX. Veja um exemplo de implementação da amostra de implantação baseada em memória EPC (kubernetes.azure.com/sgx_epc_mem_in_MiB) aqui

Auxiliar de cotação do Intel SGX com componentes de software da plataforma

Como parte do plug-in, outro daemonset é implantado por nó de VM que é compatível com o Intel SGX no cluster AKS. Esse daemonset ajuda seus aplicativos de contêiner confidenciais quando uma solicitação remota de atestado fora do processo é invocada.

Os aplicativos de enclave que executam o atestado remoto precisam gerar uma cotação. A cotação fornece uma prova criptográfica da identidade e do estado do aplicativo, bem como o ambiente no qual o enclave está sendo hospedado. A geração da cotação depende de determinados componentes de software confiáveis da Intel, que fazem parte dos Componentes de software da plataforma SGX (PSW/DCAP). Esse PSW é empacotado como um DaemonSet que é executado por nó. Você pode ser usar o PSW ao solicitar uma cotação de atestado dos aplicativos de enclave. O uso do serviço AKS fornecido ajuda a manter melhor a compatibilidade entre o PSW e outros componentes de SW no host com os drivers de SGX Intel que fazem parte dos nós de VM AKS. Leia mais sobre como seus aplicativos podem usar esse daemonset sem precisar empacotar os primitivos de atestado como parte de suas implantações de contêiner mais aqui

Modelos de programação

Contêineres confidenciais por meio de parceiros e do OSS

Os contêineres confidenciais ajudarão você a executar aplicativos contêiner não modificados e existentes dos runtimes de linguagens de programação mais comuns (Python, Node, Java etc.) de modo confidencial. Esse modelo de empacotamento não precisa de modificações de código-fonte ou recompilação, além de ser o método mais rápido a ser executado em enclaves Intel SGX obtidos ao empacotar os contêineres de docker padrão com Projetos de Código Aberto ou Soluções de Parceiros do Azure. Neste modelo de empacotamento e execução, todas as partes do aplicativo contêiner serão carregadas em um limite confiável (enclave). 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. Saiba mais sobre o processo de preparação e implantação aqui

Contêineres com reconhecimento de enclave

Os nós de computação confidencial no AKS também são compatíveis com contêineres programados para serem executados em um enclave a fim de usar um conjunto de instruções especiais disponível na CPU. Esse modelo de programação permite obter um controle mais rígido do fluxo de execução e requer o uso de SDKs e estruturas especiais. Esse modelo de programação fornece maior controle do fluxo de aplicativo com a menor TCB (Base de Computação Confiável). O desenvolvimento de contêineres com reconhecimento de enclave envolve partes confiáveis e não confiáveis para o aplicativo contêiner, permitindo gerenciar a memória regular e a memória EPC (Cache de Página Criptografada) em que o enclave será executado. Leia mais sobre os contêineres com reconhecimento de enclave.

Perguntas frequentes (FAQ)

Encontre as respostas a algumas das perguntas comuns sobre o suporte ao pool de nós do AKS (Serviço de Kubernetes do Azure) para nós de computação confidencial baseados em Intel SGX aqui

Próximas etapas

Implantar o Cluster do AKS com nós de computação confidencial

Exemplos de contêiner confidencial para início rápido

VMs confidenciais Intel SGX – Lista de SKU DCsv2

VMs confidenciais Intel SGX – Lista de SKU DCsv3

Sessão de webinar de defesa completa usando contêineres confidenciais