Inicialização confiável (visualização) para o Serviço Kubernetes do Azure (AKS)

A inicialização confiável (visualização) melhora a segurança das máquinas virtuais (VMs) de 2ª geração, protegendo contra técnicas de ataque avançadas e persistentes. Ele permite que os administradores implantem nós AKS, que contêm as máquinas virtuais subjacentes, com bootloaders verificados e assinados, kernels do sistema operacional e drivers. Ao usar a inicialização segura e medida, os administradores obtêm informações e confiança sobre a integridade de toda a cadeia de inicialização.

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

Descrição geral

O lançamento confiável é composto por várias tecnologias de infraestrutura coordenadas que podem ser habilitadas de forma independente. Cada tecnologia fornece outra camada de defesa contra ameaças sofisticadas.

  • vTPM - Trusted launch introduz uma versão virtualizada de um hardware Trusted Platform Module (TPM), compatível com a especificação TPM 2.0. Ele serve como um cofre seguro dedicado para chaves e medições. A inicialização confiável fornece à sua VM sua própria instância TPM dedicada, executada em um ambiente seguro fora do alcance de qualquer VM. O vTPM permite o atestado medindo toda a cadeia de inicialização da sua VM (UEFI, OS, sistema e drivers). A inicialização confiável usa o vTPM para executar o atestado remoto pela nuvem. Ele é usado para verificações de integridade da plataforma e para tomar decisões baseadas em confiança. Como uma verificação de integridade, a inicialização confiável pode certificar criptograficamente que sua VM inicializou corretamente. Se o processo falhar, possivelmente porque sua VM está executando um componente não autorizado, o Microsoft Defender for Cloud emitirá alertas de integridade. Os alertas incluem detalhes sobre quais componentes não passaram nas verificações de integridade.

  • Inicialização Segura - Na raiz do lançamento confiável está a Inicialização Segura para sua VM. Este 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 inicializar. Ele estabelece uma "raiz de confiança" para a pilha de software em sua VM. Com a Inicialização Segura habilitada, todos os componentes de inicialização do sistema operacional (carregador de inicialização, kernel, drivers do kernel) devem ser assinados por editores confiáveis. Tanto o Windows quanto as distribuições Linux selecionadas suportam a Inicialização Segura. Se a Inicialização Segura não conseguir autenticar uma imagem assinada por um editor confiável, a VM não terá permissão para inicializar. Para obter mais informações, consulte Arranque Seguro.

Antes de começar

  • A CLI do Azure versão 2.44.1 ou posterior. Execute az --version para localizar a versão e execute az upgrade para atualizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).

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

  • Registre o TrustedLaunchPreview recurso em sua assinatura do Azure.

  • O AKS suporta inicialização confiável (visualização) na versão 1.25.2 e superior.

  • O Trusted Launch suporta apenas VMs da Geração 2 do Azure.

  • A Inicialização Segura requer carregadores de inicialização assinados, kernels do sistema operacional e drivers.

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

Importante

Os recursos de visualização do AKS estão disponíveis em uma base de autosserviço e opt-in. 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 visualizações do AKS são parcialmente cobertas pelo suporte ao cliente com base no melhor esforço. Como tal, estas funcionalidades não se destinam a utilização em produção. Para obter mais informações, consulte os seguintes artigos de suporte:

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 do recurso TrustedLaunchPreview

Registre o TrustedLaunchPreview sinalizador de recurso usando o comando az feature register , conforme mostrado no exemplo a seguir:

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

Leva alguns minutos para que o status mostre Registrado. Verifique o status do registro usando o comando az feature show :

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

Quando o status refletir 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.
  • A inicialização confiável (visualização) não suporta pools de nós com FIPS habilitado ou baseado no ARM64.
  • Não há suporte para conjuntos de disponibilidade, apenas conjuntos de escala de máquina virtual.
  • Para habilitar a Inicialização Segura em pools de nós de GPU, você precisa ignorar a instalação do driver de GPU. Para obter mais informações, consulteIgnorar a instalação do driver da GPU.
  • Discos efêmeros do sistema operacional podem ser criados com inicialização confiável e todas as regiões são suportadas. No entanto, nem todos os tamanhos de máquinas virtuais são suportados. Para obter mais informações, consulte Tamanhos de sistema operacional efêmeros de inicialização confiáveis.

Implantar novo cluster

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

  1. Crie um cluster 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 AKS, como myAKSCluster.
    • --resource-group: Insira o nome de um grupo de recursos existente para hospedar o recurso de cluster AKS.
    • --enable-secure-boot: Permite que a Inicialização Segura autentique uma imagem assinada por um editor confiável.
    • --enable-vtpm: habilita o vTPM e executa o atestado medindo toda a cadeia de inicialização da sua VM.

    Nota

    A Inicialização Segura requer carregadores de inicialização assinados, kernels do sistema operacional e drivers. Se, depois de habilitar a Inicialização Segura, seus nós não iniciarem, você poderá verificar quais componentes de inicialização são responsáveis por falhas na Inicialização Segura em uma Máquina Virtual Linux do Azure. Consulte verificar falhas de Inicialização Segura.

    O exemplo a seguir cria um cluster chamado myAKSCluster com um nó no 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 seguinte comando para obter credenciais de acesso para o cluster Kubernetes. Use o comando az aks get-credentials e substitua os valores do nome do cluster e do nome do grupo de recursos.

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

Adicionar um pool de nós com a inicialização confiável habilitada

Implante um pool de nós com a inicialização confiável habilitada usando o comando az aks nodepool add . Antes de executar o comando, revise os seguintes parâmetros:

  • --cluster-name: Insira o nome do cluster AKS.
  • --resource-group: Insira o nome de um grupo de recursos existente para hospedar o recurso de cluster 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. Para pools de nós Linux, o comprimento deve estar entre 1 e 11 caracteres.
  • --node-count: O número de nós no pool de agentes do Kubernetes. O padrão é 3.
  • --enable-secure-boot: Permite que a Inicialização Segura autentique imagens assinadas por um editor confiável.
  • --enable-vtpm: habilita o vTPM e executa o atestado medindo toda a cadeia de inicialização da sua VM.

Nota

A Inicialização Segura requer carregadores de inicialização assinados, kernels do sistema operacional e drivers. Se, depois de habilitar a Inicialização Segura, seus nós não iniciarem, você poderá verificar quais componentes de inicialização são responsáveis por falhas na Inicialização Segura em uma Máquina Virtual Linux do Azure. Consulte verificar falhas de Inicialização Segura.

O exemplo a seguir implanta um pool de nós com 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 exemplo a seguir implanta um pool de nós com vTPM e Inicialização Segura 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

Atualize o cluster e habilite a inicialização confiável

Atualize um pool de nós com a inicialização confiável habilitada usando o comando az aks nodepool update . Antes de executar o comando, revise os seguintes parâmetros:

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

Nota

O pool de nós existente deve estar usando uma imagem de inicialização confiável para habilitar em um pool de nós existente. Portanto, para os nodepools criados antes de registrar o recurso, você não pode atualizá-los com a TrustedLaunchPreview 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 de inicialização confiável. Sem especificar --enable-vtpm ou --enable-secure-boot parâmetros, eles são desativados por padrão e você pode ativar mais tarde usando o az aks nodepool update comando.

Nota

A Inicialização Segura requer carregadores de inicialização assinados, kernels do sistema operacional e drivers. Se, depois de habilitar a Inicialização Segura, seus nós não iniciarem, você poderá verificar quais componentes de inicialização são responsáveis por falhas na Inicialização Segura em uma Máquina Virtual Linux do Azure. Consulte verificar falhas de Inicialização Segura.

O exemplo a seguir atualiza o pool de nós mynodepool no myAKSCluster no 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 

Atribua pods a nós com inicialização confiável habilitada

Você pode restringir um pod e restringi-lo para ser executado em um nó ou nós específicos, ou preferência para nós com inicialização confiável habilitada. Você pode controlar isso usando o seguinte seletor de pool de nós 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 executando a Inicialização Segura, aplique o seguinte:

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

Desativar a Inicialização Segura

Para desativar a Inicialização Segura em um cluster AKS, execute o seguinte comando:

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

Nota

As atualizações iniciam automaticamente uma reimagem de nó e essa operação pode levar vários minutos por nó.

Desativar vTPM

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

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

Próximos passos

Neste artigo, você aprendeu como habilitar o lançamento confiável. Saiba mais sobre o lançamento confiável.