Inicialização confiável para o Serviço Kubernetes do Azure (AKS)
A inicialização confiável 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 executeaz upgrade
para atualizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI). - A Inicialização Segura requer carregadores de inicialização assinados, kernels do sistema operacional e drivers.
Limitações
- O AKS suporta inicialização confiável na versão 1.25.2 e superior.
- O Trusted Launch suporta apenas VMs da Geração 2 do Azure.
- Não há suporte para nós de cluster que executam o sistema operacional Windows Server.
- A inicialização confiável não suporta pools de nós com FIPS habilitado ou baseado no Arm64.
- O Trusted Launch não suporta nó virtual.
- 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.
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 \ --generate-ssh-keys
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
Por padrão, a criação de um pool de nós com uma configuração compatível com TL 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. 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.
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.
Azure Kubernetes Service