Início confiável para AKS (Serviço de Kubernetes do Azure)
O Início confiável 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 eaz upgrade
para atualizar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure. - A inicialização segura exige carregadores de inicialização, kernels do sistema operacional e drivers assinados.
Limitações
- O AKS dá suporte ao início confiável na versão 1.25.2 e superior.
- O início confiável só dá suporte a VMs de Geração 2 do Azure.
- Não há suporte para nós de cluster que executam o sistema operacional Windows Server.
- O início confiável não dá suporte a pools de nós com FIPS habilitado ou com base no Arm64.
- O Início confiável não dá suporte ao nó virtual.
- 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.
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 \ --generate-ssh-keys
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
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 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
. 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.
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.
Azure Kubernetes Service