Compartilhar via


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

As CVM (Máquinas Virtuais Confidenciais) oferecem forte segurança e confidencialidade para locatários. As CVMs oferecem um Ambiente de Execução Confiável de Hardware (TEE) baseado em VM, que aproveita os recursos de segurança SEV-SNP para negar ao hipervisor e a outros códigos de gerenciamento de host o acesso à memória e ao estado da VM, proporcionando proteções em profundidade contra o acesso do operador. Esses recursos permitem que pools de nós com CVM direcionem a migração de cargas de trabalho de contêiner altamente confidenciais para o AKS sem nenhuma refatoração de código enquanto se beneficia dos recursos do AKS. Por exemplo, você pode precisar de CVM caso tenha o seguinte:

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

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

Tamanhos de VM confidenciais suportados pelo AKS

O Azure oferece uma opção de opções de TEE (Ambiente de Execução Confiável) tanto da AMD quanto da Intel. Esses TEEs permitem criar ambientes de VM confidenciais com excelentes relações preço/desempenho, tudo sem a necessidade de alterações de código.

  • As VMs Confidenciais baseadas em AMD usam a tecnologia amd SEV-SNP, que é introduzida com processadores EPYC AMD de terceira geração™.
  • As VMs Confidenciais baseadas em Intel usam o 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 contra a pilha de infraestrutura de nuvem. Para obter mais informações, consulte tamanhos de VM CVM.

Recursos de segurança

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

  • 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.
  • Criptografia de disco do sistema operacional confidencial baseada em nuvem antes da primeira inicialização.
  • Chaves de criptografia de VM que a plataforma ou o cliente (opcionalmente) detém e gerencia.
  • Versão de chave segura com associação criptográfica entre o atestado bem-sucedido da plataforma e as chaves de criptografia da VM.
  • Instância dedicada do TPM (Virtual Trusted Platform Module) para atestado e proteção de chaves e segredos na máquina virtual.
  • Funcionalidade de inicialização segura semelhante à inicialização confiável para VMs do Azure

Como funciona?

Se você estiver executando uma carga de trabalho que exija 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 de um pool de nós criados com a CVM usam uma imagem de nó personalizada configurada especialmente para a CVM.

Versões do sistema operacional com suporte

Você pode criar pools de nós CVM em sistemas operacionais Linux (Ubuntu e Azure Linux). No entanto, nem todas as versões do sistema operacional dão suporte a pools de nós CVM.

Esta tabela inclui as versões do sistema operacional com suporte:

Tipo de sistema operacional SKU do SO Suporte ao CVM Padrão CVM
Linux Ubuntu Suportado O Ubuntu 20.04 é o padrão para k8s versão 1.24-1.33. O Ubuntu 24.04 é o padrão para k8s versão 1.34-1.38.
Linux Ubuntu2204 Sem suporte O AKS não dá suporte ao CVM para Ubuntu 22.04.
Linux Ubuntu2404 Suportado O CVM é compatível com Ubuntu2404 nas versões K8s 1.32-1.38.
Linux AzureLinux Com suporte no Azure Linux 3.0 O Azure Linux 3 é padrão ao habilitar o CVM para K8s versão 1.28-1.36.
Linux flatcar Sem suporte O Flatcar Container Linux para AKS não dá suporte ao CVM.
Linux AzureLinuxOSGuard Sem suporte O Azure Linux com o OS Guard para AKS não dá suporte à CVM.
Windows Todos os SKU do sistema operacional Windows Sem suporte

Ao usar Ubuntu ou AzureLinux como o osSKU, se a versão padrão do sistema operacional não der suporte ao CVM, o AKS usará como padrão a versão mais recente com suporte do CVM do sistema operacional. Por exemplo, o Ubuntu 22.04 é padrão para pools de nós do Linux. Como a 22.04 atualmente não dá suporte à CVM, o AKS usa como padrão o Ubuntu 20.04 para pools de nós habilitados para CVM do Linux.

Limitações

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

  • Você não pode usar FIPS, ARM64, Trusted Launch ou Pod Sandboxing.
  • Você não pode atualizar um pool de nós existente para migrar para um tamanho CVM. Para migrar, você precisará redimensionar o pool de nós.
  • Você não pode usar CVM com pools de nós do Windows.
  • O CVM com o Linux do Azure está atualmente em versão prévia.

Pré-requisitos

Antes de começar, certifique-se de que você tenha o seguinte:

  • Um cluster AKS novo ou existente.
  • Os tamanhos de 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 de CVM.
  • Se você estiver usando o sistema operacional Linux do Azure, precisará instalar a extensão aks-preview, atualizar a extensão aks-preview e registrar o sinalizador de recurso de visualização. Se você estiver usando o Ubuntu, ignore estas etapas.

Se você estiver usando o Linux do Azure

CVMs para Ubuntu estão disponíveis em GA, mas CVMs com Azure Linux ainda estão em versão preliminar. Se você quiser usar pools de nós CVM com o Azure Linux como o sistema operacional escolhido, habilite a extensão e registre o sinalizador.

Instalar aks-preview extensão

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

    Importante

    As funcionalidades em versão preliminar do AKS estão disponíveis de forma optativa e por autoatendimento. As versões prévias são fornecidas “no estado em que se encontram” e “conforme disponíveis” e são excluídas dos contratos de nível de serviço e da garantia limitada. As versões prévias do AKS são parcialmente cobertas pelo suporte ao cliente em uma base de melhor esforço. Dessa forma, esses recursos não são destinados ao uso em produção. Para obter mais informações, consulte os seguintes artigos:

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

    az extension update --name aks-preview
    

Registrar o sinalizador de recurso AzureLinuxCVMPreview

  1. Registre o sinalizador do recurso AzureLinuxCVMPreview usando o comando [az feature register][az-feature-register].

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

    az feature show --namespace Microsoft.ContainerService --name AzureLinuxCVMPreview
    
  3. Quando o status refletir Registrado, atualize o registro do provedor do recurso 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 cluster do AKS

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

    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 o osType, o AKS usará por padrão o --os-type Linux e o --os-sku Ubuntu.

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

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

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

Observação

Um pool de nós Ubuntu 24.04 com um CVM tem suporte na versão 1.33 do cluster AKS. Além disso, antes que o Ubuntu 24.04 se torne GA, você precisa registrar o Ubuntu2404Preview recurso. Para obter mais informações, consulte here para registrar o recurso.

Verificar se o pool de nós usa o CVM

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

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

    O seguinte exemplo de comando e saída mostra que o pool de nós usa o 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 CVM usando o az aks nodepool list comando.

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

    O seguinte exemplo de comando e saída mostra que o pool de nós usa 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 o CVM de um cluster do AKS

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

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

Próximas etapas

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