Perguntas frequentes sobre nós de computação confidenciais no Serviço Kubernetes do Azure (AKS)

Este artigo aborda perguntas frequentes sobre nós de computação confidenciais baseados em Intel SGX no Serviço Kubernetes do Azure (AKS). Se tiver mais alguma questão, envie um e-mail acconaks@microsoft.compara .

Produto

Os nós de computação confidenciais no AKS estão disponíveis para uso em produção?

Sim, para nós de enclave Intel SGX.

Posso habilitar a Rede Acelerada com Clusters AKS de computação confidencial do Azure?

Sim, os nós de VM DCSv3 suportam rede acelerada. DCSv2 As máquinas virtuais não.

Qual versão do driver Intel SGX está na imagem AKS para nós confidenciais?

Atualmente, as VMs DCSv2/DCSv3 de computação confidencial do Azure são instaladas com o Intel SGX DCAP 1.33.2

Posso injetar scripts pós-instalação/personalizar drivers nos nós provisionados pelo AKS?

N.º Os nós de computação confidenciais baseados no AKS-Engine suportam nós de computação confidenciais que permitem instalações personalizadas e têm controle total sobre seu plano de controle do Kubernetes.

Posso executar nós ACC com outros SKUs AKS padrão (construir um cluster de pool de nós heterogêneos)?

Sim, você pode executar diferentes pools de nós dentro do mesmo cluster AKS, incluindo nós ACC. Para direcionar seus aplicativos de enclave em um pool de nós específico, considere adicionar seletores de nós ou aplicar limites de EPC. Consulte mais detalhes sobre o início rápido em nós confidenciais aqui.

Posso executar nós do Windows e contêineres do Windows com ACC?

Neste momento, não. Entre em contato com a equipe do produto em se você tiver nós do Windows ou necessidades de acconaks@microsoft.com contêiner.

Ainda posso agendar e executar contêineres que não sejam de enclave em nós de computação confidenciais?

Sim. As VMs também têm uma memória regular que pode executar cargas de trabalho de contêiner padrão. Considere o modelo de segurança e ameaça de seus aplicativos antes de decidir sobre os modelos de implantação.

Qual é a VM SKU que devo escolher para nós de computação confidenciais?

SKUs DCSv2/DCsv3. Mais informações sobre DCSv2 e DCSv3 estão disponíveis nas regiões suportadas

Posso provisionar o AKS com Pools de Nó DCSv2 por meio do portal do Azure?

Sim. A CLI do Azure também pode ser usada como uma alternativa, conforme documentado aqui.

Qual versão do Ubuntu e geração de VM é suportada?

18.04 em Gen 2.

Quais são as limitações atuais conhecidas do produto?

  • Suporta apenas nós de VM Ubuntu 18.04 Gen 2
  • Sem suporte a nós do Windows ou a contêineres do Windows
  • O dimensionamento automático de pod horizontal baseado em memória EPC não é suportado. O dimensionamento baseado em CPU e memória regular é suportado.
  • Espaços de desenvolvimento no AKS para aplicativos confidenciais não são suportados no momento

Posso provisionar o AKS com Pools de Nó DCSv2/DCSv3 por meio do portal do Azure?

Sim. A CLI do Azure também pode ser usada como uma alternativa, conforme documentado aqui.

Desenvolvimento e Deploy

Posso trazer meus aplicativos em contêineres existentes e executá-los no AKS com a Computação Confidencial do Azure?

Sim, você trará o software de wrapper SGX para ser executado em um enclave Intel SGX, consulte a página de contêineres confidenciais para obter mais detalhes sobre os ativadores de plataforma.

Devo usar uma imagem base do Docker para começar a usar aplicativos de enclave?

Vários facilitadores (ISVs e projetos OSS) fornecem maneiras de habilitar contêineres confidenciais. Analise a página de contêineres confidenciais para obter mais detalhes e referências individuais a implementações.

Conceitos de contêiner confidencial

O que é atestado e como podemos fazer atestado de aplicativos em execução em enclaves?

Atestado é o processo de demonstrar e validar que um software foi instanciado corretamente na plataforma de hardware específica. Assegura igualmente que as suas provas são verificáveis para dar garantias de que está a funcionar numa plataforma segura e que não foi adulterada. Leia mais sobre como o atestado é feito para aplicativos de enclave.

E se o tamanho do meu recipiente for maior do que a memória EPC disponível?

A memória EPC aplica-se à parte da sua aplicação que está programada para ser executada no enclave. O tamanho total do seu recipiente não é a maneira correta de compará-lo com a memória EPC máxima disponível. Na verdade, as máquinas DCSv2 com SGX, permitem memória VM máxima de 32 GB onde sua parte não confiável do aplicativo utilizaria. No entanto, se o contêiner consumir mais do que a memória EPC disponível, o desempenho da parte do programa em execução no enclave poderá ser afetado.

Para gerenciar melhor a memória EPC nos nós de trabalho, considere o gerenciamento de limites baseado em memória EPC por meio do Kubernetes. Siga o exemplo abaixo como referência.

Nota

O exemplo a seguir extrai uma imagem de contêiner público do Docker Hub. Recomendamos que você configure um segredo de pull para autenticar usando uma conta do Docker Hub em vez de fazer uma solicitação pull anônima. Para melhorar a confiabilidade ao trabalhar com conteúdo público, importe e gerencie a imagem em um registro de contêiner privado do Azure. Saiba mais sobre como trabalhar com imagens públicas.

apiVersion: batch/v1
kind: Job
metadata:
  name: sgx-test
  labels:
    app: sgx-test
spec:
  template:
    metadata:
      labels:
        app: sgx-test
    spec:
      containers:
      - name: sgxtest
        image: oeciteam/sgx-test: 1.0
        resources:
          limits:
            sgx.intel.com/sgx_epc_mem_in_MiB: 10 # This limit will automatically place the job into confidential computing node. Alternatively, you can target deployment to node pools
      restartPolicy: Never
  backoffLimit: 0

O que acontece se o meu enclave consumir mais do que a memória EPC máxima disponível?

A memória EPC total disponível é compartilhada entre os aplicativos de enclave nas mesmas VMs ou nós de trabalho. Se o seu aplicativo usa memória EPC mais do que disponível, o desempenho do aplicativo pode ser afetado. Por esse motivo, recomendamos que você defina a tolerância por aplicativo em seu arquivo yaml de implantação para gerenciar melhor a memória EPC disponível por nós de trabalho, conforme mostrado nos exemplos acima. Como alternativa, você sempre pode optar por subir nos tamanhos de VM do pool de nós de trabalho ou adicionar mais nós.

Por que não posso fazer forks () e exec para executar vários processos no meu aplicativo enclave?

Atualmente, as VMs SKU DCsv2 de computação confidencial do Azure oferecem suporte a um único espaço de endereçamento para o programa em execução em um enclave. Um único processo é uma limitação atual projetada em torno de alta segurança. No entanto, os ativadores de contêiner confidenciais podem ter implementações alternativas para superar essa limitação.

Tenho que montar os volumes de driver no meu yaml de implantação?

N.º O produto fornece ACC Add On que inclui o (confcom) irá ajudá-lo com isso. Leia mais sobre os detalhes da implantação aqui.

Podemos alterar a versão atual do mergulhador Intel SGX DCAP no AKS?

N.º Para executar quaisquer instalações personalizadas, recomendamos que você escolha implantações de nós de trabalho de computação confidenciais do AKS-Engine.

Apenas imagens assinadas e confiáveis serão carregadas no enclave para computação confidencial?

Não nativamente durante a inicialização do enclave, mas sim através do processo de atestado, a assinatura pode ser validada. Ref aqui.

É possível assinar contêineres para trazer proteção de integridade de código para contêineres confidenciais?

Os contêineres confidenciais permitem que você assine o código do enclave, mas não o contêiner do docker em si. Com a assinatura de código de enclave (que normalmente é o código principal da aplicação em Java, Python etc.), você pode verificar por meio de atestado os detalhes MRSIGNER do código do enclave antes de poder confiar no código e no ambiente de execução por meio do fluxo de atestado.

Passos Seguintes

Consulte a página de contêineres confidenciais para obter mais detalhes sobre contêineres confidenciais.