Início confiável (versão prévia) do AKS (Serviço de Kubernetes do Azure)

O início confiável (versão prévia) aprimora a segurança das VMs (máquinas virtuais) de geração 2, protegendo-as contra técnicas de ataque avançadas e persistentes. Com ele, os administradores podem implantar nós do AKS, que contêm as máquinas virtuais subjacentes, com carregadores de inicialização verificados e assinados, kernels do sistema operacional e drivers. Usando a inicialização segura e medida, os administradores obtêm insights e confiança da integridade de toda a cadeia de inicialização.

Este artigo irá ajudar você a entender esse novo recurso e como implementá-lo.

Visão geral

Este serviço é composto por várias tecnologias de infraestrutura coordenadas que podem ser habilitadas de forma independente. Cada tecnologia fornece mais uma camada de defesa contra ameaças sofisticadas.

  • vTPM – O início confiável apresenta uma versão virtualizada de um TPM (Trusted Platform Module) de hardware, em conformidade com a especificação TPM 2.0. Ele serve como um cofre seguro dedicado para chaves e medidas. O início confiável fornece sua VM com sua própria instância do TPM dedicada, em execução em um ambiente seguro fora do alcance de qualquer VM. O vTPM habilita o atestado medindo toda a cadeia de inicialização da sua VM (UEFI, SO, sistema e drivers). O início confiável usa o vTPM para executar o atestado remoto pela nuvem. Ele é usado para verificações de integridade da plataforma e para a tomada de decisões baseadas em relação de confiança. Como uma verificação de integridade, o início confiável pode certificar criptograficamente que sua VM foi inicializada corretamente. Em caso de falha do processo, possivelmente porque sua VM está executando um componente não autorizado, o Microsoft Defender para Nuvem emite alertas de integridade. Os alertas incluem detalhes sobre quais componentes não passaram nas verificações de integridade.

  • Inicialização segura – No centro do início confiável está a inicialização segura para a sua VM. Esse modo, que é implementado no firmware da plataforma, protege contra a instalação de rootkits baseados em malware e kits de inicialização. A Inicialização Segura funciona para garantir que apenas sistemas operacionais e drivers assinados possam ser inicializados. Ela estabelece uma "raiz de confiança" para a pilha de software da VM. Com a Inicialização Segura habilitada, todos os componentes de inicialização do sistema operacional (carregador de inicialização, kernel, drivers de kernel) devem ser assinados por fornecedores confiáveis. O Windows e algumas distribuições do Linux oferecem suporte à Inicialização Segura. Se a inicialização segura não conseguir autenticar uma imagem assinada por um fornecedor confiável, a VM não poderá ser inicializada. Para saber mais, confira Inicialização Segura.

Antes de começar

  • CLI do Azure versão 2.44.1 ou posterior. Execute az --version para localizar a versão e az upgrade para atualizar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.

  • A extensão aks-preview da CLI do Azure versão 1.0.0b6 ou posterior.

  • Registre o recurso TrustedLaunchPreview na sua assinatura do Azure.

  • O AKS dá suporte ao início confiável (versão prévia) na versão 1.25.2 e superior.

  • O início confiável só dá suporte a VMs de Geração 2 do Azure.

  • A inicialização segura exige carregadores de inicialização, kernels do sistema operacional e drivers assinados.

Instalar a extensão aks-preview da CLI do Azure

Importante

As versões prévias do recurso AKS estão disponíveis em uma base de autoatendimento e aceitação. As visualizações são fornecidas "como estão" e "conforme disponíveis" e estão excluídas dos acordos 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:

Para instalar a extensão aks-preview, execute o seguinte comando:

az extension add --name aks-preview

Execute o seguinte comando para atualizar para a versão mais recente da extensão lançada:

az extension update --name aks-preview

Registrar o sinalizador de recurso TrustedLaunchPreview

Registre o sinalizador de recursos TrustedLaunchPreview usando o comando az feature register, conforme mostrado no seguinte exemplo:

az feature register --namespace "Microsoft.ContainerService" --name "TrustedLaunchPreview"

Demora alguns minutos para o status exibir Registrado. Verifique o status do registro usando o comando az feature show:

az feature show --namespace "Microsoft.ContainerService" --name "TrustedLaunchPreview"

Quando o status reflete Registrado, atualize o registro do provedor de recursos Microsoft.ContainerService usando o comando az provider register:

az provider register --namespace "Microsoft.ContainerService"

Limitações

  • Não há suporte para nós de cluster que executam o sistema operacional Windows Server.
  • O início confiável (versão prévia) não dá suporte a pools de nós com o FIPS habilitado ou baseados no ARM64.
  • Não há suporte para conjuntos de disponibilidade, apenas Conjuntos de Dimensionamento de Máquinas Virtuais.
  • Para habilitar a inicialização segura em pools de nós de GPU, ignore a instalação do driver de GPU. Para obter mais informações, confira Ignorar a instalação do driver de GPU.
  • Discos de SO efêmero podem ser criados com o início confiável, com suporte para todas as regiões. Porém, não há suporte para todos os tamanhos de máquinas virtuais. Para obter mais informações, confira Início confiável para tamanhos de SO efêmero.

Implantar um novo cluster

Realize as etapas a seguir para implantar um cluster do AKS usando a CLI do Azure.

  1. Crie um cluster do AKS usando o comando az aks create. Antes de executar o comando, revise os seguintes parâmetros:

    • --name: insira um nome exclusivo para o cluster do AKS, como myAKSCluster.
    • --resource-group: insira o nome de um grupo de recursos existente para hospedar o recurso de cluster do AKS.
    • --enable-secure-boot: permite que a inicialização segura autentique uma imagem assinada por um fornecedor confiável.
    • --enable-vtpm: habilita o vTPM e executa o atestado, medindo toda a cadeia de inicialização da VM.

    Observação

    A inicialização segura exige carregadores de inicialização, kernels do sistema operacional e drivers assinados. Se depois que você habilitar a inicialização segura, seus nós não forem iniciados, você poderá verificar quais componentes de inicialização são responsáveis por falhas da inicialização segura em uma Máquina Virtual do Azure Linux. Confira Verificar falhas da inicialização segura.

    O seguinte exemplo cria um cluster chamado myAKSCluster com um nó em myResourceGroup e habilita a inicialização segura e o vTPM:

    az aks create --name myAKSCluster --resource-group myResourceGroup --node-count 1 --enable-secure-boot --enable-vtpm --enable-managed-identity --generate-ssh-keys
    
  2. Execute o comando a seguir para obter credenciais de acesso para o cluster do Kubernetes. Use o comando az aks get-credentials e substitua os valores pelo nome do cluster e o nome do grupo de recursos.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

Adicionar um pool de nós com o início confiável habilitado

Implante um pool de nós com o início confiável habilitado usando o comando az aks nodepool add. Antes de executar o comando, revise os seguintes parâmetros:

  • --cluster-name: insira o nome do cluster do AKS.
  • --resource-group: insira o nome de um grupo de recursos existente para hospedar o recurso de cluster do AKS.
  • --name: insira um nome exclusivo para o pool de nós. O nome de um pool de nós pode conter apenas caracteres alfanuméricos minúsculos e deve começar com uma letra minúscula. Nos pools de nós do Linux, o comprimento deve estar entre 1 e 11 caracteres.
  • --node-count: o número de nós do pool de agentes do Kubernetes. O padrão é 3.
  • --enable-secure-boot: permite que a inicialização segura autentique a imagem assinada por um fornecedor confiável.
  • --enable-vtpm: habilita o vTPM e executa o atestado, medindo toda a cadeia de inicialização da VM.

Observação

A inicialização segura exige carregadores de inicialização, kernels do sistema operacional e drivers assinados. Se depois que você habilitar a inicialização segura, seus nós não forem iniciados, você poderá verificar quais componentes de inicialização são responsáveis por falhas da inicialização segura em uma Máquina Virtual do Azure Linux. Confira Verificar falhas da inicialização segura.

O seguinte exemplo implanta um pool de nós com o vTPM habilitado em um cluster chamado myAKSCluster com três nós:

az aks nodepool add --resource-group myResourceGroup -–cluster-name myAKSCluster --name mynodepool --node-count 3 --enable-vtpm  

O seguinte exemplo implanta um pool de nós com a inicialização segura e o vTPM habilitados em um cluster chamado myAKSCluster com três nós:

az aks nodepool add --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --node-count 3 --enable-vtpm --enable-secure-boot

Atualizar o cluster e habilitar o início confiável

Atualize um pool de nós com o início confiável habilitado usando o comando az aks nodepool update. Antes de executar o comando, revise os seguintes parâmetros:

  • --resource-group: insira o nome de um grupo de recursos existente que hospeda o cluster do AKS existente.
  • --cluster-name: insira um nome exclusivo para o cluster do AKS, como myAKSCluster.
  • --name: insira o nome do pool de nós, como mynodepool.
  • --enable-secure-boot: permite que a inicialização segura autentique que a imagem foi assinada por um fornecedor confiável.
  • --enable-vtpm: habilita o vTPM e executa o atestado, medindo toda a cadeia de inicialização da VM.

Observação

O pool de nós existente precisa usar uma imagem de início confiável para habilitá-la em um pool de nós existente. Portanto, não é possível atualizar nodepools criados antes de registrar o recurso TrustedLaunchPreview com a inicialização confiável habilitada.

Por padrão, a criação de um pool de nós com uma configuração compatível com TL e o sinalizador de recurso registrado resulta em uma imagem do início confiável. Sem especificar os parâmetros --enable-vtpm ou --enable-secure-boot, eles são desabilitados por padrão, e você poderá habilitá-los posteriormente com o comando az aks nodepool update.

Observação

A inicialização segura exige carregadores de inicialização, kernels do sistema operacional e drivers assinados. Se depois que você habilitar a inicialização segura, seus nós não forem iniciados, você poderá verificar quais componentes de inicialização são responsáveis por falhas da inicialização segura em uma Máquina Virtual do Azure Linux. Confira Verificar falhas da inicialização segura.

O seguinte exemplo atualiza o pool de nós mynodepool no myAKSCluster do myResourceGroup e habilita a inicialização segura e o vTPM:

az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --enable-secure-boot --enable-vtpm 

Atribuir pods a nós com o início confiável habilitado

Você pode restringir um pod e restringi-lo a ser executado em um nó ou mais nós específicos ou dar preferência aos nós com o início confiável habilitado. Controle isso usando o seletor de pool de nós a seguir no manifesto do pod.

Para um pool de nós que executa o vTPM, aplique o seguinte:

spec:
  nodeSelector:
        kubernetes.azure.com/trusted-launch: true

Para um pool de nós que executa a inicialização segura, aplique o seguinte:

spec:
  nodeSelector:
        kubernetes.azure.com/secure-boot: true

Desabilite a Inicialização Segura

Para desabilitar a inicialização segura em um cluster do AKS, execute o seguinte comando:

az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --disable-secure-boot 

Observação

As atualizações iniciam automaticamente uma nova imagem de nó e, para cada nó, essa operação pode demorar vários minutos.

Desabilitar o vTPM

Para desabilitar o vTPM em um cluster do AKS, execute o seguinte comando:

az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --disable-vtpm

Próximas etapas

Neste artigo, você aprendeu a habilitar o início confiável. Saiba mais sobre o início confiável.