Partilhar via


Usar Máquinas Virtuais Confidenciais (CVM) no cluster do Serviço Kubernetes do Azure (AKS)

As Máquinas Virtuais Confidenciais (CVM) oferecem forte segurança e confidencialidade para os locatários. Os CVMs oferecem um Ambiente de Execução Confiável de Hardware (TEE) baseado em VM que aproveita recursos de segurança SEV-SNP para negar acesso ao hipervisor e a outros códigos de gestão do host à memória e ao estado da VM, fornecendo proteções de defesa em profundidade contra o acesso do operador. Essas funcionalidades permitem que os pools de nós com CVM visem a migração de cargas de trabalho de contentores altamente sensíveis para o AKS, sem qualquer refatoração de código, enquanto tiram proveito das funcionalidades do AKS. Por exemplo, você pode requerer a CVM se tiver o seguinte:

  • Cargas de trabalho que lidam com dados críticos de segurança e/ou dados confidenciais de clientes
  • Serviços que são necessários para atender a vários requisitos de conformidade, especialmente para contratos governamentais. Sem uma solução escalável para proteger os dados, isso poderia levar à perda de credenciamentos e contratos.

Neste artigo, você aprenderá a criar pools de nós AKS usando tamanhos de VM confidenciais.

Tamanhos de VM confidenciais suportados pelo AKS

O Azure oferece opções de TEE (Trusted Execution Environment) da AMD e da Intel. Esses TEEs permitem que você crie ambientes VM confidenciais com excelentes relações preço-desempenho, tudo sem exigir nenhuma alteração de código.

  • VMs confidenciais baseadas na AMD usam a tecnologia AMD SEV-SNP, que é introduzida com processadores AMD EPYC™ de terceira geração.
  • As VMs confidenciais baseadas em Intel usam Intel TDX, com processadores Intel® Xeon® de quarta geração.

Ambas as tecnologias têm implementações diferentes. No entanto, ambos fornecem proteções semelhantes da pilha de infraestrutura de nuvem. Para obter mais informações, consulte Tamanhos de VM da CVM.

Elementos de Segurança

Os CVMs oferecem os seguintes aprimoramentos de segurança em comparação com outros tamanhos de máquina virtual (VM):

  • Isolamento robusto baseado em hardware entre máquinas virtuais, hipervisor e código de gerenciamento de host.
  • Políticas de atestado personalizáveis para garantir a conformidade do host antes da implantação.
  • Encriptação de disco confidencial do SO baseada na nuvem antes do primeiro arranque.
  • Chaves de criptografia de VM que a plataforma ou o cliente (opcionalmente) possui e gerencia.
  • Liberação segura de chaves com vinculação criptográfica entre o atestado bem-sucedido da plataforma e as chaves de criptografia da VM.
  • Instância virtual dedicada do TPM (Trusted Platform Module) para atestado e proteção de chaves e segredos na máquina virtual.
  • Capacidade de inicialização segura semelhante à inicialização confiável para VMs do Azure

Como funciona?

Se você estiver executando uma carga de trabalho que requer confidencialidade e integridade aprimoradas, poderá se beneficiar da criptografia de memória e da segurança aprimorada sem alterações de código em seu aplicativo. Todos os pods no nó CVM fazem parte do mesmo limite de confiança. Os nós em um pool de nós criado com a CVM usam uma imagem de nó personalizada especialmente configurada para a CVM.

Versões de SO suportadas

Você pode criar pools de nós CVM em tipos de sistema operacional Linux (Ubuntu e Azure Linux). No entanto, nem todas as versões do sistema operacional suportam pools de nós CVM.

Esta tabela inclui as versões de SO suportadas:

Tipo de SO OS Código de Armazenamento (SKU) Suporte CVM Inadimplência de CVM
Linux Ubuntu Suportado Ubuntu 20.04 é padrão para K8s versão 1.24-1.33. O Ubuntu 24.04 é o padrão para as versões 1.34-1.38 do K8s.
Linux Ubuntu2204 Não suportado O AKS não suporta CVM para Ubuntu 22.04.
Linux Ubuntu2404 Suportado A CVM é suportada no Ubuntu2404 no K8s 1.32-1.38.
Linux AzureLinux Suportado no Azure Linux 3.0 O Azure Linux 3 é o padrão ao habilitar o CVM para K8s versão 1.28-1.36.
Linux flatcar Não suportado O Flatcar Container Linux for AKS não suporta CVM.
Linux AzureLinuxOSGuard Não suportado O Azure Linux com OS Guard for AKS não suporta CVM.
Windows Todos os SKU do sistema operacional Windows Não suportado

Ao usar Ubuntu ou AzureLinux como o osSKU, se a versão padrão do sistema operacional não suportar CVM, o AKS assume como padrão a versão mais recente do sistema operacional suportada pelo CVM. Por exemplo, o Ubuntu 22.04 é padrão para pools de nós do Linux. Como o 22.04 não suporta atualmente o CVM, o AKS assume como padrão o Ubuntu 20.04 para pools de nós habilitados para Linux CVM.

Limitações

As seguintes limitações se aplicam ao adicionar um pool de nós com CVM ao AKS:

  • Não é possível usar FIPS, ARM64, Trusted Launch ou Pod Sandboxing.
  • Não é possível atualizar um pool de nós existente para migrar para um tamanho CVM. Para migrar, você precisará redimensionar seu pool de nós.
  • Não é possível usar o CVM com pools de nós do Windows.
  • O CVM com o Azure Linux está atualmente em pré-visualização.

Pré-requisitos

Antes de começar, certifique-se de que tem o seguinte:

  • Um cluster AKS existente.
  • Os tamanhos do CVM devem estar disponíveis para sua assinatura na região onde o cluster é criado. Você deve ter cota suficiente para criar um pool de nós com tamanho CVM.
  • Se estiver a usar o sistema operativo Linux do Azure, precisa de instalar a extensão aks-preview, atualizar a extensão aks-preview e registar a sinalização da funcionalidade de pré-visualização. Se você estiver usando o Ubuntu, você pode pular estas etapas.

Se estiver a usar Azure Linux

CVMs para Ubuntu são GA, mas CVMs com Azure Linux ainda estão em pré-visualização. Se quiser usar pools de nós CVM com o Azure Linux como sistema operativo de eleição, certifique-se de ativar a extensão e registar o sinalizador.

Instalar aks-preview extensão

  1. Instale a aks-preview extensão da CLI do Azure usando o az extension add comando.

    Importante

    Os recursos de pré-visualização do AKS estão disponíveis numa base de autosserviço e adesão voluntária. As visualizações prévias são fornecidas "como estão" e "conforme disponíveis" e são excluídas dos contratos de nível de serviço e da garantia limitada. As versões de teste do AKS são parcialmente cobertas pelo suporte ao cliente numa base de melhor esforço. Assim sendo, estas funcionalidades não se destinam ao uso em produção. Para obter mais informações, consulte os seguintes artigos de suporte:

    az extension add --name aks-preview
    
  2. Atualize para a versão mais recente da extensão usando o az extension update comando.

    az extension update --name aks-preview
    

Registrar sinalizador de funcionalidade AzureLinuxCVMPreview

  1. Use o comando [AzureLinuxCVMPreview][az-feature-register] para registar o az feature register flag de funcionalidade.

    az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxCVMPreview"
    
  2. Verifique o status do registro usando o comando [az feature show][az-feature-show]. Leva alguns minutos para que o status mostre Registrado.

    az feature show --namespace Microsoft.ContainerService --name AzureLinuxCVMPreview
    
  3. Quando o status indicar Registrado, atualizar o registo do fornecedor de recursos Microsoft.ContainerService usando o comando [az provider register][az-provider-register].

    az provider register --namespace Microsoft.ContainerService
    

Adicionar um pool de nós com um CVM ao seu cluster AKS

  • Adicione um pool de nós com um CVM ao seu cluster AKS usando o az aks nodepool add comando e defina o node-vm-size para um tamanho de VM suportado.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool \
        --node-count 3 \
        --node-vm-size Standard_DC4as_v5 
    

Se você não especificar o osSKU ou osType, o AKS assume --os-type Linux como padrão e --os-sku Ubuntu.

Atualize um pool de nós existente com um CVM para Ubuntu 24.04

  • Atualize um pool de nós existente com um CVM para Ubuntu 24.04 a partir do Ubuntu 20.04 usando o az aks nodepool update comando. Defina como os-skuUbuntu2404.

      az aks nodepool update \
          --resource-group myResourceGroup \
          --cluster-name myAKSCluster \
          --name cvmnodepool \
          --os-sku Ubuntu2404
    

Observação

Um pool de nós que é Ubuntu 24.04 com CVM é suportado a partir da versão 1.33 do cluster AKS. Além disso, antes de o Ubuntu 24.04 se tornar GA, é necessário registar a Ubuntu2404Preview funcionalidade. Para mais informações, consulte here para registar a funcionalidade.

Verificar se o pool de nós usa o CVM

  1. Verifique se um pool de nós usa o CVM usando o az aks nodepool show comando e verifique se o vmSize é Standard_DCa4_v5.

    az aks nodepool show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool \
        --query 'vmSize'
    

    O comando de exemplo e a saída a seguir mostram que o pool de nós usa CVM.

    az aks nodepool show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool \
        --query 'vmSize'
    
    "Standard_DC4as_v5"
    
  2. Verifique se um pool de nós usa uma imagem do CVM usando o az aks nodepool list comando.

    az aks nodepool list \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool \
        --query 'nodeImageVersion'
    

    O exemplo de comando e a respetiva saída apresentados mostraram que o pool de nós utiliza uma imagem CVM do Ubuntu 20.04.

    az aks nodepool show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool \
        --query 'nodeImageVersion'
    
    "AKSUbuntu-2004cvmcontainerd-202507.02.0"
    

Remover um pool de nós com CVM de um cluster AKS

  • Remova um pool de nós com CVM de um cluster AKS usando o az aks nodepool delete comando.

    az aks nodepool delete \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool
    

Próximos passos

Neste artigo, você aprendeu como adicionar um pool de nós com o CVM a um cluster AKS.