Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O padrão FIPS (FIPS) 140-2 é um padrão do governo dos EUA que define os requisitos mínimos de segurança para módulos de criptografia em sistemas e produtos de tecnologia da informação. AKS (Serviço de Kubernetes do Azure) permite criar pools de nós do Linux e Windows com o FIPS 140-2 habilitado. As implantações executadas em pools de nós habilitados para FIPS podem usar esses módulos de criptografia para fornecer maior segurança e ajudar a atender aos controles de segurança como parte da conformidade do FedRAMP. Para obter mais informações sobre o padrão FIPS 140-2, confira Padrão FIPS 140.
Importante
A partir do March 17, 2027, AKS (Serviço de Kubernetes do Azure) não dá mais suporte ou fornece atualizações de segurança para o Ubuntu 20.04. Todas as imagens de nós existentes serão excluídas e você não poderá dimensionar quaisquer pools de nós que estejam executando o Ubuntu 20.04. Migre para uma versão do Ubuntu com suporte atualizando seus grupos de nós para a versão 1.35+ do Kubernetes. Para obter mais informações sobre essa desativação, consulte o issue do GitHub e o comunicado de desativação do Azure Updates. Para se manter informado sobre anúncios e atualizações, siga as notas de versão do AKS.
Importante
A partir de 30 de novembro de 2025, AKS (Serviço de Kubernetes do Azure) não dá mais suporte ou fornece atualizações de segurança para Azure Linux 2.0. A imagem do nó Azure Linux 2.0 está congelada na versão 202512.06.0. A partir de 31 de março de 2026, as imagens dos nós serão removidas e você não poderá dimensionar os pools de nós. Migre para uma versão do Linux Azure com suporte atualizando seus pools de nós para uma versão do Kubernetes com suporte ou migrando para osSku AzureLinux3. Para obter mais informações, consulte o problema de desativação do GitHub e o anúncio de desativação do Azure Updates. Para se manter informado sobre anúncios e atualizações, siga as notas de lançamento do AKS.
Pré-requisitos
Uma assinatura de Azure ativa. Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Defina o contexto de assinatura usando o
az account setcomando. Por exemplo:az account set --subscription "00000000-0000-0000-0000-000000000000"kubectl instalado. Você pode instalá-lo localmente usando o
az aks install-clicomando.
- Terraform instalado localmente. Para obter instruções de instalação, consulte Instalar o Terraform.
Compatibilidade entre versões
- CLI do Azure versão 2.32.0 ou posterior instalada e configurada. Para saber qual é a versão, execute
az --version. Para obter mais informações sobre como instalar ou atualizar o CLI do Azure, consulte Instalar CLI do Azure.
- Os exemplos de modelo do ARM neste artigo usam a versão da API
2023-03-01paraMicrosoft.ContainerService/managedClusterseMicrosoft.ContainerService/managedClusters/agentPools.
- Exemplos de Bicep neste artigo usam versão da API
2023-03-01paraMicrosoft.ContainerService/managedClusterseMicrosoft.ContainerService/managedClusters/agentPools.
- Os exemplos do Terraform neste artigo usam o provedor do AzureRM 3.x.
- Para configurações do Terraform FIPS, use
enable_fips_imageemazurerm_kubernetes_cluster.default_node_poolefips_enabledemazurerm_kubernetes_cluster_node_pool.
Limitações
Os grupos de nós habilitados para FIPS têm as seguintes limitações:
- Os pools de nós habilitados para FIPS exigem o Kubernetes versão 1.19 e superior.
- Para atualizar os pacotes ou módulos subjacentes usados para FIPS, você deve usar a atualização de imagem da Node.
- As imagens de contêiner nos nós FIPS não são avaliadas quanto à conformidade do FIPS.
- Ocorre uma falha na montagem de um compartilhamento CIFS porque o FIPS desabilita alguns módulos de autenticação. Para resolver esse problema, confira Erros ao montar um compartilhamento de arquivo em um pool de nós habilitado para FIPS.
- Os pools de nós habilitados para FIPS com VMs Arm64 só têm suporte com Azure Linux 3.0+.
- O complemento de monitoramento do AKS dá suporte a pools de nós habilitados para FIPS com Ubuntu, Azure Linux e Windows, começando com a versão 3.1.17 do Agente (Linux) e Win-3.1.17 (Windows).
Importante
A imagem do Linux habilitada para FIPS é uma imagem diferente da imagem padrão do Linux usada para pools de nós baseados em Linux.
As imagens de nó habilitadas para FIPS podem ter números de versões diferentes, como a versão do kernel, além das imagens que não são habilitadas para FIPS. O ciclo de atualização para pools de nós e imagens de nós habilitados para FIPS pode diferir dos pools de nós e imagens que não são habilitados para FIPS.
Versões de SO com suporte
Você pode criar pools de nós habilitados para FIPS em todos os tipos de sistema operacional com suporte (Linux e Windows). No entanto, nem todas as versões do sistema operacional dão suporte a pools de nós habilitados para FIPS. Depois que uma nova versão do sistema operacional é lançada, normalmente há um período de espera antes de ser compatível com FIPS.
A tabela a seguir inclui as versões do sistema operacional com suporte para pools de nós habilitados para FIPS:
| Tipo de SO | SKU do SO | Conformidade com o FIPS | Default |
|---|---|---|---|
| Linux | Ubuntu | Com suporte | Desabilitadas por padrão |
| Linux | Azure Linux | Com suporte | Desabilitadas por padrão |
| Windows | Windows Server 2022 | Com suporte | Habilitada por padrão |
| Windows | Windows Server 2025 | Com suporte | Habilitado por padrão e não pode ser desabilitado |
Ao solicitar o Ubuntu habilitado para FIPS, se a versão padrão do Ubuntu não der suporte ao FIPS, o AKS usará como padrão a versão mais recente com suporte para FIPS do Ubuntu. Por exemplo, o Ubuntu 22.04 é padrão para pools de nós do Linux. Como a 22.04 atualmente não dá suporte ao FIPS, o AKS usa como padrão o Ubuntu 20.04 para pools de nós habilitados para FIPS do Linux.
Observação
Anteriormente, você poderia usar a GetOSOptions API para determinar se um determinado SISTEMA Operacional tinha suporte para FIPS. A GetOSOptions API agora está preterida e não está mais incluída nas novas versões da API do AKS a partir de 2024-05-01.
Criar o arquivo de configuração do Terraform
Os arquivos de configuração do Terraform definem a infraestrutura que o Terraform cria e gerencia.
Crie um arquivo chamado
main.tfe adicione o seguinte código para definir a versão do Terraform e especificar o provedor de Azure:terraform { required_version = ">= 1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~> 3.0" } } } provider "azurerm" { features {} }Adicione o código a seguir para
main.tfpara criar um grupo de recursos Azure. Fique à vontade para alterar o nome e o local do grupo de recursos conforme necessário.resource "azurerm_resource_group" "example" { name = "example-fips-rg" location = "East US" }
Criar um cluster do AKS com um pool de nós padrão habilitado para FIPS
Você pode habilitar o FIPS no pool de nós padrão ao criar um novo cluster do AKS.
Ao criar mais pools de nós em um cluster que já tem um pool de nós padrão habilitado para FIPS, você também deve habilitar o FIPS nos novos pools de nós usando o --enable-fips-image parâmetro.
Crie um cluster do AKS com FIPS habilitado no pool de nós padrão usando o comando
az aks createcom o parâmetro--enable-fips-image.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 3 \ --enable-fips-imageVerifique se seu pool de nós está habilitado para FIPS, utilizando o comando
az aks showe consultando o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableA saída de exemplo a seguir mostra que o pool de nós padrão está habilitado para FIPS:
Name enableFips --------- ------------ nodepool1 True
Habilitar o FIPS durante a criação do cluster AKS atualmente não tem suporte no portal do Azure. Para criar um cluster com um pool de nós padrão habilitado para FIPS, use as instruções CLI do Azure, modelo ARM, Bicep ou Terraform neste artigo.
Ao criar mais pools de nós em um cluster que já tem um pool de nós padrão habilitado para FIPS, você também deve habilitar o FIPS nos novos pools de nós definindo enableFips como true.
Crie um cluster do AKS com FIPS habilitado no pool de nós padrão usando um modelo ARM definindo a
enableFipspropriedadetrueno perfil do pool de agentes. Por exemplo:{ "type": "Microsoft.ContainerService/managedClusters", "location": "[parameters('location')]", "name": "[parameters('clusterName')]", "properties": { "kubernetesVersion": "1.27", "enableRBAC": true, "dnsPrefix": "[parameters('dnsPrefix')]", "agentPoolProfiles": [ { "name": "nodepool1", "count": 3, "vmSize": "Standard_D2s_v3", "osType": "Linux", "osSKU": "Ubuntu", "type": "VirtualMachineScaleSets", "mode": "System", "enableFips": true } ] }, "identity": { "type": "SystemAssigned" } }Implante o modelo do ARM usando o portal Azure, CLI do Azure ou Azure PowerShell. Para obter mais informações sobre como implantar modelos do ARM, consulte Implantar recursos com modelos do ARM.
Verifique se o pool de nodes está habilitado para FIPS usando o comando
az aks showe consulte o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableA saída de exemplo a seguir mostra que o pool de nós padrão está habilitado para FIPS:
Name enableFips --------- ------------ nodepool1 True
Ao criar mais pools de nós em um cluster que já tem um pool de nós padrão habilitado para FIPS, você também deve habilitar o FIPS nos novos pools de nós definindo enableFIPS como true.
Crie um cluster do AKS com FIPS habilitado no pool de nós padrão usando Bicep definindo
enableFIPSparatrueno perfil do pool de agentes. Por exemplo:param location string param clusterName string param dnsPrefix string resource aks 'Microsoft.ContainerService/managedClusters@2023-03-01' = { name: clusterName location: location identity: { type: 'SystemAssigned' } properties: { kubernetesVersion: '1.27' enableRBAC: true dnsPrefix: dnsPrefix agentPoolProfiles: [ { name: 'nodepool1' count: 3 vmSize: 'Standard_D2s_v3' osType: 'Linux' osSKU: 'Ubuntu' type: 'VirtualMachineScaleSets' mode: 'System' enableFIPS: true } ] } }Implante o arquivo Bicep usando o CLI do Azure, o Azure PowerShell ou o portal Azure. Para obter mais informações sobre como implantar arquivos Bicep, consulte Criar arquivos Bicep usando Visual Studio Code.
Verifique se o pool de nodes está habilitado para FIPS usando o comando
az aks showe consulte o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableA saída de exemplo a seguir mostra que o pool de nós padrão está habilitado para FIPS:
Name enableFips --------- ------------ nodepool1 True
Ao criar mais pools de nós em um cluster que já possui um pool de nós padrão habilitado para FIPS, você também deve habilitar o FIPS nos novos pools de nós definindo fips_enabled para true em azurerm_kubernetes_cluster_node_pool.
Adicione o seguinte código a
main.tfpara criar um cluster do AKS com FIPS habilitado no pool de nós padrão:resource "azurerm_kubernetes_cluster" "example" { name = "example-aks-cluster" location = azurerm_resource_group.example.location resource_group_name = azurerm_resource_group.example.name dns_prefix = "example-aks" default_node_pool { name = "nodepool1" node_count = 3 vm_size = "Standard_D2s_v3" os_sku = "Ubuntu" enable_fips_image = true } identity { type = "SystemAssigned" } }Inicialize o Terraform no diretório que contém o
main.tfarquivo usando oterraform initcomando.terraform initCrie um plano de execução do Terraform usando o comando
terraform plan.terraform planAplique a configuração usando o
terraform applycomando para implantar o cluster com um pool de nós padrão habilitado para FIPS.terraform applyConecte-se ao cluster do AKS usando o comando [
az aks get-credentials][az-aks-get-credentials].az aks get-credentials \ --resource-group myResourceGroup \ --name myAKSClusterVerifique se o pool de nodes está habilitado para FIPS usando o comando
az aks showe consulte o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableA saída de exemplo a seguir mostra que o pool de nós padrão está habilitado para FIPS:
Name enableFips --------- ------------ nodepool1 True
Para obter mais informações sobre o recurso
Adicionar um pool de nós do Linux habilitado para FIPS a um cluster do AKS existente
Adicione um pool de nós do Linux habilitado para FIPS a um cluster existente usando o
az aks nodepool addcomando com o--enable-fips-imageparâmetro.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name fipsnp \ --enable-fips-imageVerifique a configuração do pool de nós usando o comando
az aks showe consulte o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableA saída de exemplo a seguir mostra que o pool de nós fipsnp está habilitado para FIPS:
Name enableFips --------- ------------ fipsnp True nodepool1 FalseListe os nós usando o comando
kubectl get nodes.kubectl get nodesA saída de exemplo a seguir mostra uma lista dos nós no cluster. Os nós que começam com
aks-fipsnpe fazem parte do pool de nós habilitado para FIPS.NAME STATUS ROLES AGE VERSION aks-fipsnp-12345678-vmss000000 Ready agent 6m4s v1.19.9 aks-fipsnp-12345678-vmss000001 Ready agent 5m21s v1.19.9 aks-fipsnp-12345678-vmss000002 Ready agent 6m8s v1.19.9 aks-nodepool1-12345678-vmss000000 Ready agent 34m v1.19.9Execute uma implantação com uma sessão interativa em um dos nós no pool de nós habilitado para FIPS usando o comando
kubectl debug.kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0Na saída da sessão interativa, verifique se as bibliotecas criptográficas FIPS estão habilitadas. Seu resultado deve ser semelhante ao seguinte exemplo de saída:
root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1Os pools de nós habilitados para FIPS também têm um rótulo kubernetes.azure.com/fips_enabled=true, que as implantações podem usar para direcionar esses pools de nós.
Habilitar o FIPS ao adicionar um pool de nós do Linux atualmente não é suportado no Azure portal. Para adicionar um pool de nós do Linux com FIPS habilitado, utilize o CLI do Azure, um modelo ARM, ou as instruções em Bicep ou Terraform disponíveis neste artigo.
Crie um pool de nós Linux com suporte a FIPS utilizando um modelo ARM ao implantar um recurso de pool de agentes, com a propriedade
enableFipsconfigurada comotrue. Por exemplo:{ "type": "Microsoft.ContainerService/managedClusters/agentPools", "apiVersion": "2023-03-01", "name": "[concat(parameters('clusterName'), '/fipsnp')]", "properties": { "count": 3, "vmSize": "Standard_D2s_v3", "osType": "Linux", "osSKU": "Ubuntu", "mode": "User", "enableFips": true } }Implante o modelo do ARM usando o portal Azure, CLI do Azure ou Azure PowerShell. Para obter mais informações sobre como implantar modelos do ARM, consulte Implantar recursos com modelos do ARM.
Verifique a configuração do pool de nós usando o comando
az aks showe consulte o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableA saída de exemplo a seguir mostra que o pool de nós fipsnp está habilitado para FIPS:
Name enableFips --------- ------------ fipsnp True nodepool1 FalseListe os nós usando o comando
kubectl get nodes.kubectl get nodesA saída de exemplo a seguir mostra uma lista dos nós no cluster. Os nós que começam com
aks-fipsnpe fazem parte do pool de nós habilitado para FIPS.NAME STATUS ROLES AGE VERSION aks-fipsnp-12345678-vmss000000 Ready agent 6m4s v1.19.9 aks-fipsnp-12345678-vmss000001 Ready agent 5m21s v1.19.9 aks-fipsnp-12345678-vmss000002 Ready agent 6m8s v1.19.9 aks-nodepool1-12345678-vmss000000 Ready agent 34m v1.19.9Execute uma implantação com uma sessão interativa em um dos nós no pool de nós habilitado para FIPS usando o comando
kubectl debug.kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0Na saída da sessão interativa, verifique se as bibliotecas criptográficas FIPS estão habilitadas. Seu resultado deve ser semelhante ao seguinte exemplo de saída:
root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1Os pools de nós habilitados para FIPS também têm um rótulo kubernetes.azure.com/fips_enabled=true, que as implantações podem usar para direcionar esses pools de nós.
Crie um pool de nós do Linux habilitado para FIPS usando Bicep implantando um recurso de pool de agentes com
enableFIPSdefinido comotrue. Por exemplo:param clusterName string param nodePoolName string = 'fipsnp' resource nodePool 'Microsoft.ContainerService/managedClusters/agentPools@2023-03-01' = { name: '${clusterName}/${nodePoolName}' properties: { count: 3 vmSize: 'Standard_D2s_v3' osType: 'Linux' osSKU: 'Ubuntu' mode: 'User' enableFIPS: true } }Implante o arquivo Bicep usando o CLI do Azure, o Azure PowerShell ou o portal Azure. Para obter mais informações sobre como implantar arquivos Bicep, consulte Criar arquivos Bicep usando Visual Studio Code.
Verifique a configuração do pool de nós usando o comando
az aks showe realize uma consulta para o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableA saída de exemplo a seguir mostra que o pool de nós fipsnp está habilitado para FIPS:
Name enableFips --------- ------------ fipsnp True nodepool1 FalseListe os nós usando o comando
kubectl get nodes.kubectl get nodesA saída de exemplo a seguir mostra uma lista dos nós no cluster. Os nós que começam com
aks-fipsnpe fazem parte do pool de nós habilitado para FIPS.NAME STATUS ROLES AGE VERSION aks-fipsnp-12345678-vmss000000 Ready agent 6m4s v1.19.9 aks-fipsnp-12345678-vmss000001 Ready agent 5m21s v1.19.9 aks-fipsnp-12345678-vmss000002 Ready agent 6m8s v1.19.9 aks-nodepool1-12345678-vmss000000 Ready agent 34m v1.19.9Execute uma implantação com uma sessão interativa em um dos nós no pool de nós habilitado para FIPS usando o comando
kubectl debug.kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0Na saída da sessão interativa, verifique se as bibliotecas criptográficas FIPS estão habilitadas. Seu resultado deve ser semelhante ao seguinte exemplo de saída:
root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1Os pools de nós habilitados para FIPS também têm um rótulo kubernetes.azure.com/fips_enabled=true, que as implantações podem usar para direcionar esses pools de nós.
Adicione o seguinte código em
main.tfpara adicionar um pool de nós do Linux habilitado para FIPS no cluster do AKS:resource "azurerm_kubernetes_cluster_node_pool" "fips_linux" { name = "fipsnp" kubernetes_cluster_id = azurerm_kubernetes_cluster.example.id vm_size = "Standard_D2s_v3" os_type = "Linux" os_sku = "Ubuntu" node_count = 3 fips_enabled = true node_taints = [] }Aplique a configuração atualizada do Terraform usando os comandos
terraform planeterraform apply.terraform plan terraform applyConecte-se ao cluster do AKS usando o comando [
az aks get-credentials][az-aks-get-credentials].az aks get-credentials \ --resource-group myResourceGroup \ --name myAKSClusterVerifique a configuração do pool de nós usando o comando
az aks showe consultando o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableA saída de exemplo a seguir mostra que o pool de nós fipsnp está habilitado para FIPS:
Name enableFips --------- ------------ fipsnp True nodepool1 FalseListe os nós usando o comando
kubectl get nodes.kubectl get nodesA saída de exemplo a seguir mostra uma lista dos nós no cluster. Os nós que começam com
aks-fipsnpe fazem parte do pool de nós habilitado para FIPS.NAME STATUS ROLES AGE VERSION aks-fipsnp-12345678-vmss000000 Ready agent 6m4s v1.19.9 aks-fipsnp-12345678-vmss000001 Ready agent 5m21s v1.19.9 aks-fipsnp-12345678-vmss000002 Ready agent 6m8s v1.19.9 aks-nodepool1-12345678-vmss000000 Ready agent 34m v1.19.9Execute uma implantação com uma sessão interativa em um dos nós no pool de nós habilitado para FIPS usando o comando
kubectl debug.kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0Na saída da sessão interativa, verifique se as bibliotecas criptográficas FIPS estão habilitadas. Seu resultado deve ser semelhante ao seguinte exemplo de saída:
root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1Os pools de nós habilitados para FIPS também têm um rótulo kubernetes.azure.com/fips_enabled=true, que as implantações podem usar para direcionar esses pools de nós.
Para obter mais informações sobre o recurso
Adicionar um pool de nós Windows habilitado para FIPS
Nesta seção, adicionaremos um pool de nós do Windows a um cluster AKS existente.
Windows Server 2022 e pools de nós posteriores habilitam o FIPS por padrão, mesmo que enableFips não mostre True.
Windows Server 2025 e pools de nós posteriores não dão suporte à desabilitação do FIPS.
Crie um pool de nós Windows usando o comando
az aks nodepool add. Ao contrário dos pools de nós baseados em Linux, os pools de nós do Windows compartilham o mesmo conjunto de imagens.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name fipsnp \ --enable-fips-image \ --os-type WindowsVerifique a configuração do pool de nós usando o comando
az aks showe consulte o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableVerifique se os pools de nós do Windows têm acesso às bibliotecas criptográficas FIPS ao criar uma conexão RDP com um nó Windows em um pool de nós e verificar o registro. No aplicativo Executar, insira
regedit.Procure
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicyno registro.Se o
Enabledestiver definido como 1, o FIPS estará habilitado.
Os pools de nós habilitados para FIPS também têm um rótulo kubernetes.azure.com/fips_enabled=true, que as implantações podem usar para direcionar esses pools de nós.
Não há uma experiência no portal do Azure para habilitar ou desabilitar as configurações do FIPS para pools de nós do Windows. Qualquer pool de nós Windows criado usando o portal do Azure tem FIPS habilitado. Windows Server 2022 e pools de nós de versões posteriores habilitam o FIPS por padrão, e pools de nós Windows Server 2025 e posteriores não oferecem suporte à desabilitação do FIPS.
Crie um pool de nós Windows usando um modelo ARM, implantando um recurso de pool de agentes com
osTypedefinido comoWindows. Por exemplo:{ "type": "Microsoft.ContainerService/managedClusters/agentPools", "apiVersion": "2023-03-01", "name": "[concat(parameters('clusterName'), '/fipsnp')]", "properties": { "count": 3, "vmSize": "Standard_D2s_v3", "osType": "Windows", "osSKU": "Windows2022", "mode": "User" } }Implante o modelo do ARM usando o portal Azure, CLI do Azure ou Azure PowerShell. Para obter mais informações sobre como implantar modelos do ARM, consulte Implantar recursos com modelos do ARM.
Verifique a configuração do pool de nós usando o comando
az aks showe verifique o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableVerifique se os pools de nós do Windows têm acesso às bibliotecas criptográficas FIPS criando uma conexão RDP com um nó Windows em um pool de nós e verificando o registro do sistema. No aplicativo Executar, insira
regedit.Procure
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicyno registro.Se o
Enabledestiver definido como 1, o FIPS estará habilitado.
Os pools de nós habilitados para FIPS também têm um rótulo kubernetes.azure.com/fips_enabled=true, que as implantações podem usar para direcionar esses pools de nós.
Crie um pool de nós Windows usando Bicep implantando um recurso de pool de agentes com
osTypedefinido comoWindows. Por exemplo:param clusterName string param nodePoolName string = 'fipsnp' resource nodePool 'Microsoft.ContainerService/managedClusters/agentPools@2023-03-01' = { name: '${clusterName}/${nodePoolName}' properties: { count: 3 vmSize: 'Standard_D2s_v3' osType: 'Windows' osSKU: 'Windows2022' mode: 'User' enableFIPS: true } }Implante o arquivo Bicep usando o CLI do Azure, o Azure PowerShell ou o portal Azure. Para obter mais informações sobre como implantar arquivos Bicep, consulte Criar arquivos Bicep usando Visual Studio Code.
Verifique a configuração do pool de nós usando o comando
az aks showe consultar o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableVerifique se os pools de nós do Windows têm acesso às bibliotecas criptográficas FIPS estabelecendo uma conexão RDP com um nó Windows em um pool de nós e verificando o registro. No aplicativo Executar, insira
regedit.Procure
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicyno registro.Se o
Enabledestiver definido como 1, o FIPS estará habilitado.
Os pools de nós habilitados para FIPS também têm um rótulo kubernetes.azure.com/fips_enabled=true, que as implantações podem usar para direcionar esses pools de nós.
Adicione o seguinte código a
main.tfpara criar um pool de nós Windows no cluster do AKS:resource "azurerm_kubernetes_cluster_node_pool" "fips_windows" { name = "fipsnp" kubernetes_cluster_id = azurerm_kubernetes_cluster.example.id vm_size = "Standard_D2s_v3" os_type = "Windows" os_sku = "Windows2022" node_count = 3 fips_enabled = true node_taints = [] }Aplique a configuração atualizada do Terraform usando os comandos
terraform planeterraform apply.terraform plan terraform applyConecte-se ao cluster do AKS usando o comando [
az aks get-credentials][az-aks-get-credentials].az aks get-credentials \ --resource-group myResourceGroup \ --name myAKSClusterVerifique a configuração do grupo de nós usando o comando
az aks showe consulte o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableVerifique se os pools de nós do Windows têm acesso a bibliotecas criptográficas FIPS criando uma conexão RDP com um nó Windows em um pool de nós e verificando o registro. No aplicativo Executar, insira
regedit.Procure
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicyno registro.Se o
Enabledestiver definido como 1, o FIPS estará habilitado.
Os pools de nós habilitados para FIPS também têm um rótulo kubernetes.azure.com/fips_enabled=true, que as implantações podem usar para direcionar esses pools de nós.
Atualizar um pool de nós existente para habilitar ou desabilitar o FIPS
Os pools de nós Linux existentes podem ser atualizados para habilitar ou desabilitar o FIPS. Se você planeja migrar seus pools de nós de ambientes que não usam FIPS para aqueles que usam FIPS, primeiro verifique se seu aplicativo funciona corretamente em um ambiente de teste apropriado antes de migrá-lo para um ambiente de produção. Validar seu aplicativo em um ambiente de teste deve evitar problemas causados pelo kernel FIPS bloqueando algum algoritmo de cifra ou criptografia fraco, como o algoritmo MD4, que não é compatível com FIPS.
Observação
Ao atualizar um pool de nós existente do Linux para habilitar ou desabilitar o FIPS, o pool de nós é atualizado entre as imagens FIPS e nonFIPS. Essa atualização do pool de nós acionará uma nova imagem para concluir a atualização. Isso pode fazer com que a atualização do pool de nós demore alguns minutos para ser concluída.
Pré-requisitos para atualizar um pool de nós existente
CLI do Azure versão 2.64.0 ou posterior. Para saber qual é a versão, execute az --version. Se precisar instalar ou atualizar, consulte Instalar CLI do Azure.
Habilitar o FIPS em um pool de nós existente
Você pode atualizar os pools de nós do Linux existentes para habilitar o FIPS. Ao atualizar um pool de nós existente, a imagem do nó mudará da imagem atual para a imagem FIPS recomendada do mesmo SKU do sistema operacional.
Atualize um pool de nós usando o
az aks nodepool updatecomando com o--enable-fips-imageparâmetro.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name np \ --enable-fips-imageEsse comando dispara uma nova imagem do pool de nós imediatamente para implantar o sistema operacional compatível com FIPS. Essa criação de imagem ocorre durante a atualização do pool de nós. Nenhuma etapa adicional é necessária.
Verifique se o pool de nodes está habilitado para FIPS usando o comando
az aks showe consulte o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableO exemplo de saída a seguir mostra que o pool de nós np está habilitado para FIPS:
Name enableFips --------- ------------ np True nodepool1 False
Habilitar FIPS em um pool de nós existente atualmente não é suportado no portal do Azure. Para habilitar o FIPS em um pool de nós existente, use o CLI do Azure, o template ARM, o Bicep, ou as instruções do Terraform neste artigo.
Habilite o FIPS no conjunto de nós existente usando um modelo ARM atualizando o perfil do pool de agentes para definir a propriedade
enableFipscomotrue. Por exemplo:{ "type": "Microsoft.ContainerService/managedClusters/agentPools", "name": "[concat(parameters('clusterName'), '/np')]", "apiVersion": "2023-03-01", "properties": { "enableFips": true } }Implante o modelo atualizado usando o portal Azure, CLI do Azure ou Azure PowerShell. Para obter mais informações sobre como implantar modelos do ARM, consulte Implantar recursos com modelos do ARM.
Verifique se o pool de nodes está habilitado para FIPS usando o comando
az aks showe consulte o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableO exemplo de saída a seguir mostra que o pool de nós np está habilitado para FIPS:
Name enableFips --------- ------------ np True nodepool1 False
Habilite o FIPS em um pool de nós existente usando Bicep atualizando o recurso do pool de agentes para definir
enableFIPScomotrue. Por exemplo:param clusterName string param nodePoolName string = 'np' resource nodePool 'Microsoft.ContainerService/managedClusters/agentPools@2023-03-01' = { name: '${clusterName}/${nodePoolName}' properties: { enableFIPS: true } }Implante o arquivo de Bicep atualizado usando o CLI do Azure, Azure PowerShell ou o portal Azure. Para obter mais informações sobre como implantar arquivos Bicep, consulte Criar arquivos Bicep usando Visual Studio Code.
Verifique se o pool de nós está habilitado para FIPS usando o comando
az aks showe realizando uma consulta para o valor enableFIPS no agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableO exemplo de saída a seguir mostra que o pool de nós np está habilitado para FIPS:
Name enableFips --------- ------------ np True nodepool1 False
Atualize o recurso
azurerm_kubernetes_cluster_node_poolemmain.tfdefinindofips_enabledcomotrue.resource "azurerm_kubernetes_cluster_node_pool" "example" { name = "np" kubernetes_cluster_id = azurerm_kubernetes_cluster.example.id vm_size = "Standard_D2s_v3" os_type = "Linux" os_sku = "Ubuntu" node_count = 3 fips_enabled = true }Aplique a configuração atualizada do Terraform usando os comandos
terraform planeterraform apply. O Terraform detecta a alteração emfips_enablede dispara a operação de reinstalação de imagem necessária.terraform plan terraform applyConecte-se ao cluster do AKS usando o comando [
az aks get-credentials][az-aks-get-credentials].az aks get-credentials \ --resource-group myResourceGroup \ --name myAKSClusterVerifique se o pool de nodes está habilitado para FIPS usando o comando
az aks showe consulte o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableO exemplo de saída a seguir mostra que o pool de nós np está habilitado para FIPS:
Name enableFips --------- ------------ np True nodepool1 False
Desabilitar o FIPS em um pool de nós existente
Você pode atualizar pools de nós do Linux existentes para desabilitar o FIPS. Ao atualizar um pool de nós existente, a imagem do nó mudará da imagem FIPS atual para a imagem não FIPS recomendada do mesmo SKU do sistema operacional. A alteração da imagem do nó ocorre após uma nova imagem.
Atualize um pool de nós do Linux usando o
az aks nodepool updatecomando com o--disable-fips-imageparâmetro.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name np \ --disable-fips-imageEsse comando dispara uma nova imagem do pool de nós imediatamente para implantar o sistema operacional compatível com FIPS. Essa criação de imagem ocorre durante a atualização do pool de nós. Nenhuma etapa adicional é necessária.
Verifique se o pool de nós não está habilitado para FIPS usando o comando
az aks showe consultando o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableA saída de exemplo a seguir mostra que o pool de nós np não está habilitado para FIPS:
Name enableFips --------- ------------ np False nodepool1 False
Atualmente, não há suporte para a desabilitação do FIPS em um pool de nós existente no portal do Azure. Para desabilitar o FIPS em um pool de nós existente, use as instruções do CLI do Azure, modelo ARM, Bicep ou Terraform neste artigo.
Desative o FIPS em um pool de nós existente utilizando um modelo ARM, atualizando o perfil do pool de agentes para definir a propriedade
enableFipsparafalse. Por exemplo:{ "type": "Microsoft.ContainerService/managedClusters/agentPools", "name": "[concat(parameters('clusterName'), '/np')]", "apiVersion": "2023-03-01", "properties": { "enableFips": false } }Implante o modelo atualizado usando o portal Azure, CLI do Azure ou Azure PowerShell. Para obter mais informações sobre como implantar modelos do ARM, consulte Implantar recursos com modelos do ARM.
Verifique se o pool de nós não está habilitado para FIPS usando o comando
az aks showe consulte o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableA saída de exemplo a seguir mostra que o pool de nós np não está habilitado para FIPS:
Name enableFips --------- ------------ np False nodepool1 False
Desabilite o FIPS em um pool de nós existente usando Bicep atualizando o recurso do pool de agentes para definir
enableFIPScomofalse. Por exemplo:param clusterName string param nodePoolName string = 'np' resource nodePool 'Microsoft.ContainerService/managedClusters/agentPools@2023-03-01' = { name: '${clusterName}/${nodePoolName}' properties: { enableFIPS: false } }Implante o arquivo de Bicep atualizado usando o CLI do Azure, Azure PowerShell ou o portal Azure. Para obter mais informações sobre como implantar arquivos Bicep, consulte Criar arquivos Bicep usando Visual Studio Code.
Verifique se o pool de nós não está habilitado para FIPS usando o comando
az aks showe consulte o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableA saída de exemplo a seguir mostra que o pool de nós np não está habilitado para FIPS:
Name enableFips --------- ------------ np False nodepool1 False
Atualize o recurso
azurerm_kubernetes_cluster_node_poolemmain.tfdefinindofips_enabledcomofalse:resource "azurerm_kubernetes_cluster_node_pool" "example" { name = "np" kubernetes_cluster_id = azurerm_kubernetes_cluster.example.id vm_size = "Standard_D2s_v3" os_type = "Linux" os_sku = "Ubuntu" node_count = 3 fips_enabled = false }Aplique a configuração atualizada do Terraform usando os comandos
terraform planeterraform apply. O Terraform detecta a alteração emfips_enablede aciona a operação de reimagem necessária.terraform plan terraform applyVerifique se o pool de nós não está habilitado para FIPS usando o comando
az aks showpara consultar o valor enableFIPS em agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableA saída de exemplo a seguir mostra que o pool de nós np não está habilitado para FIPS:
Name enableFips --------- ------------ np False nodepool1 False
Mensagem do dia
Você pode substituir a Mensagem do Dia (MOTD) em nós do Linux usando a flag --message-of-the-day ao criar um cluster ou adicionar um pool de nós.
Crie um cluster e substitua a mensagem do dia usando o comando az aks create com a flag --message-of-the-day definida para o caminho do novo arquivo MOTD.
az aks create --cluster-name myAKSCluster --resource-group myResourceGroup --message-of-the-day ./newMOTD.txt
Adicione um pool de nós e substitua a mensagem do dia usando o comando az aks nodepool add com a flag --message-of-the-day configurada para o caminho do novo arquivo MOTD.
az aks nodepool add --name mynodepool1 --cluster-name myAKSCluster --resource-group myResourceGroup --message-of-the-day ./newMOTD.txt
Conteúdo relacionado
Para saber mais sobre a segurança do AKS, consulte as práticas recomendadas para segurança de cluster e atualizações no AKS (Serviço de Kubernetes do Azure).