Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Federal Information Processing Standard (FIPS) 140-2 é uma norma do governo dos Estados Unidos que define os requisitos mínimos de segurança para módulos criptográficos nos produtos e sistemas das tecnologias de informação. O Azure Kubernetes Service (AKS) permite criar pools de nós para Linux e Windows com o FIPS 140-2 ativado. As implementações em execução nos conjuntos de nós com o FIPS ativado podem utilizar esses módulos criptográficos para fornecer maior segurança e ajudar a satisfazer os controlos de segurança como parte da conformidade com o FedRAMP. Para obter mais informações sobre o FIPS 140-2, consulte Federal Information Processing Standard (FIPS) 140.
Importante
A partir de 17 de março de 2027, Azure Kubernetes Service (AKS) já não suporta nem fornece atualizações de segurança para o Ubuntu 20.04. Quaisquer imagens de nós existentes serão apagadas e não conseguirás escalar pools de nós a correr Ubuntu 20.04. Migre para uma versão suportada do Ubuntu atualizando os seus pools de nós para a versão 1.35+ do Kubernetes. Para mais informações sobre esta aposentação, consulte o issue do GitHub sobre a aposentação e o anúncio de aposentação no Azure Updates. Para se manter informado sobre anúncios e atualizações, siga as notas de lançamento da AKS.
Importante
A partir de 30 de novembro de 2025, Azure Kubernetes Service (AKS) já não suporta nem 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 não poderá ajustar o tamanho dos seus pools de nós. Migre para uma versão Azure Linux suportada atualizando os seus pools de nós para uma versão Kubernetes suportada ou migrando para osSku AzureLinux3. Para mais informações, consulte o issue Retirement do GitHub e o anúncio de descontinuação das Atualizações do Azure. Para se manter informado sobre anúncios e atualizações, siga as notas de lançamento do AKS.
Pré-requisitos
Uma subscrição ativa do Azure. Se não tiver uma subscrição Azure, crie uma conta gratuita antes de começar.
Defina o seu contexto de subscrição 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 instruções de instalação, consulte Instalar Terraform.
Compatibilidade de versões
- CLI do Azure versão 2.32.0 ou posterior instalada e configurada. Para localizar a versão, execute
az --version. Para mais informações sobre a instalação ou atualização do CLI do Azure, consulte Install CLI do Azure.
- Exemplos de modelos ARM neste artigo usam a versão da API
2023-03-01paraMicrosoft.ContainerService/managedClusterseMicrosoft.ContainerService/managedClusters/agentPools.
- Exemplos de Bicep neste artigo usam a versão de API
2023-03-01paraMicrosoft.ContainerService/managedClusterseMicrosoft.ContainerService/managedClusters/agentPools.
- Exemplos de Terraform neste artigo utilizam o fornecedor AzureRM 3.x.
- Para as definições FIPS do Terraform, use
enable_fips_imagenoazurerm_kubernetes_cluster.default_node_poolefips_enablednoazurerm_kubernetes_cluster_node_pool.
Limitações
Os pools de nós com FIPS ativado têm as seguintes limitações:
- Os pools de nós ativados para FIPS exigem a versão 1.19 ou superior do Kubernetes.
- Para atualizar os pacotes ou módulos subjacentes usados no FIPS, deve usar Node image upgrade.
- As imagens de contentores nos nós FIPS não são avaliadas quanto à compatibilidade com FIPS.
- A montagem de um compartilhamento CIFS falha porque o FIPS desabilita alguns módulos de autenticação. Para contornar esse problema, consulte Erros ao montar um compartilhamento de arquivos em um pool de nós habilitado para FIPS.
- Os pools de nós ativados para FIPS com VMs Arm64 apenas são suportados com Azure Linux 3.0+.
- O complemento de monitorização AKS suporta 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 Linux habilitada para FIPS é uma imagem diferente da imagem Linux padrão usada para pools de nós baseados em Linux.
Imagens de nó com suporte FIPS podem ter números de versão diferentes, como a versão do kernel, em comparação com imagens sem suporte FIPS. O ciclo de atualização para pools de nós com FIPS habilitado e imagens de nós pode diferir em relação aos pools de nós e imagens que não têm FIPS habilitado.
Versões de SO suportadas
Pode criar pools de nós ativados para FIPS em todas as versões de sistemas operativos suportados (Linux e Windows). No entanto, nem todas as versões do sistema operacional suportam 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 que ela seja compatível com FIPS.
A tabela seguinte inclui as versões suportadas do sistema operativo para pools de nós com FIPS:
| Tipo de SO | OS Código de Armazenamento (SKU) | Conformidade com FIPS | Predefinição |
|---|---|---|---|
| Linux | Ubuntu | Suportado | Desabilitado por padrão |
| Linux | Azure Linux | Suportado | Desabilitado por padrão |
| Windows | Windows Server 2022 | Suportado | Ativado por padrão |
| Windows | Windows Server 2025 | Suportado | Ativado por defeito e não pode ser desativado |
Ao solicitar o Ubuntu com FIPS ativado, se a versão padrão do Ubuntu não suportar FIPS, o AKS adota automaticamente a versão mais recente do Ubuntu que suporta FIPS. Por exemplo, o Ubuntu 22.04 é padrão para pools de nós do Linux. Como o 22.04 não suporta FIPS atualmente, o AKS assume como padrão o Ubuntu 20.04 para pools de nós habilitados para FIPS do Linux.
Nota
Anteriormente, podia usar a GetOSOptions API para determinar se um determinado sistema operativo suportava FIPS. A GetOSOptions API está agora obsoleta e já não está incluída nas novas versões da API do AKS a partir de 01-05-2024.
Criar o ficheiro de configuração do Terraform
Os ficheiros de configuração do Terraform definem a infraestrutura que o Terraform cria e gere.
Crie um ficheiro chamado
main.tfe adicione o seguinte código para definir a versão do Terraform e especificar o fornecedor Azure:terraform { required_version = ">= 1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~> 3.0" } } } provider "azurerm" { features {} }Adicione o código seguinte a
main.tfpara criar um grupo de recursos Azure. Sinta-se à vontade para alterar o nome e a localização do grupo de recursos conforme necessário.resource "azurerm_resource_group" "example" { name = "example-fips-rg" location = "East US" }
Criar um cluster AKS com um pool de nós predefinido habilitado para FIPS
Pode ativar o FIPS no pool de nós pré-definido ao criar um novo cluster AKS.
Ao criar mais grupos de nós num cluster que já tem um grupo de nós predefinido com FIPS, também deve ativar o FIPS nos novos grupos de nós usando o parâmetro --enable-fips-image.
Crie um cluster AKS com o FIPS ativado no pool de nós predefinido 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 o seu pool de nós está com FIPS ativado 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 seguinte exemplo mostra que o pool de nós por defeito está habilitado para FIPS:
Name enableFips --------- ------------ nodepool1 True
Ativar o FIPS durante a criação do cluster AKS atualmente não é suportado no portal Azure. Para criar um cluster com um pool de nós predefinido habilitado para FIPS, utilize as instruções CLI do Azure, template ARM, Bicep ou Terraform neste artigo.
Ao criar mais pools de nós num cluster que já tem um pool de nós padrão habilitado por FIPS, deve também ativar o FIPS nos novos pools de nós definindo enableFips para true.
Crie um cluster AKS com FIPS ativado no pool de nós predefinido usando um template ARM, definindo a
enableFipspropriedade comotrueno 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" } }Implemente o template ARM usando o portal Azure, CLI do Azure ou Azure PowerShell. Para mais informações sobre a implementação de templates ARM, consulte Deploy resources with ARM templates.
Verifique se o seu pool de nós tem o FIPS ativado 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 tableO seguinte exemplo mostra que o pool de nós por defeito está habilitado para FIPS:
Name enableFips --------- ------------ nodepool1 True
Ao criar mais pools de nós num cluster que já tem um pool de nós padrão habilitado por FIPS, deve também ativar o FIPS nos novos pools de nós definindo enableFIPS para true.
Crie um cluster AKS com FIPS ativado no pool de nós predefinido 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 } ] } }Implemente o ficheiro Bicep usando o portal CLI do Azure, Azure PowerShell ou o portal Azure. Para mais informações sobre a implementação de ficheiros Bicep, veja Criar ficheiros Bicep usando o Visual Studio Code.
Verifique se o seu pool de nós tem o FIPS ativado 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 tableO seguinte exemplo mostra que o pool de nós por defeito está habilitado para FIPS:
Name enableFips --------- ------------ nodepool1 True
Ao criar mais pools de nós num cluster que já tem um pool de nós por defeito com FIPS ativado, deve também ativar o FIPS nos novos pools definindo fips_enabled para true em azurerm_kubernetes_cluster_node_pool.
Adicione o seguinte código a
main.tfpara criar um cluster AKS com FIPS ativado 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 seu
main.tfficheiro usando oterraform initcomando.terraform initCrie um plano de execução Terraform usando o
terraform plancomando.terraform planAplique a configuração usando o
terraform applycomando para implementar o cluster com um pool de nós predefinido habilitado por FIPS.terraform applyLiga-te ao cluster AKS usando o comando [
az aks get-credentials][az-aks-get-credentials].az aks get-credentials \ --resource-group myResourceGroup \ --name myAKSClusterVerifique se o seu pool de nós tem o FIPS ativado 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 tableO seguinte exemplo mostra que o pool de nós por defeito está habilitado para FIPS:
Name enableFips --------- ------------ nodepool1 True
Para mais informações sobre o recurso azurerm_kubernetes_cluster, consulte a documentação do Terraform Azure provider.
Adicionar um pool de nós Linux habilitado para FIPS a um cluster AKS existente
Adicione um pool de nós 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 seu pool de nós utilizando o comando
az aks showe realizando 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 é habilitado para FIPS:
Name enableFips --------- ------------ fipsnp True nodepool1 FalseListe os nós usando o
kubectl get nodescomando.kubectl get nodesA saída de exemplo a seguir mostra uma lista dos nós no cluster. Os nodos que começam com
aks-fipsnpfazem parte do pool de nodos 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 num 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. Sua saída deve ser semelhante à saída de exemplo a seguir:
root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1Os pools de nodos com FIPS ativado também têm um rótulo kubernetes.azure.com/fips_enabled=true, que os desdobramentos podem usar para direcionar essas pools de nodos.
Ativação do FIPS quando se adiciona um pool de nós Linux atualmente não é suportada no portal Azure. Para adicionar um pool de nós Linux compatível com FIPS, utilize as instruções do CLI do Azure, modelo ARM, Bicep ou Terraform neste artigo.
Crie um pool de nós Linux com suporte FIPS utilizando um modelo ARM ao implementar um recurso de pool de agentes com a propriedade
enableFipsdefinida 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 } }Implemente o template ARM usando o portal Azure, CLI do Azure ou Azure PowerShell. Para mais informações sobre a implementação de templates ARM, consulte Deploy resources with ARM templates.
Verifique a configuração do seu pool de nós utilizando o comando
az aks showe faça a consulta do 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 é habilitado para FIPS:
Name enableFips --------- ------------ fipsnp True nodepool1 FalseListe os nós usando o
kubectl get nodescomando.kubectl get nodesA saída de exemplo a seguir mostra uma lista dos nós no cluster. Os nodos que começam com
aks-fipsnpfazem parte do pool de nodos 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 num 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. Sua saída deve ser semelhante à saída de exemplo a seguir:
root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1Os pools de nodos com FIPS ativado também têm um rótulo kubernetes.azure.com/fips_enabled=true, que os desdobramentos podem usar para direcionar essas pools de nodos.
Crie um pool de nós Linux compatível com FIPS usando Bicep ao implementar um recurso de pool de agentes com
enableFIPSdefinido paratrue. 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 } }Implemente o ficheiro Bicep usando o portal CLI do Azure, Azure PowerShell ou o portal Azure. Para mais informações sobre a implementação de ficheiros Bicep, veja Criar ficheiros Bicep usando o Visual Studio Code.
Verifique a configuração do seu pool de nós usando o
az aks showcomando e consulte o valor enableFIPS no 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 é habilitado para FIPS:
Name enableFips --------- ------------ fipsnp True nodepool1 FalseListe os nós usando o
kubectl get nodescomando.kubectl get nodesA saída de exemplo a seguir mostra uma lista dos nós no cluster. Os nodos que começam com
aks-fipsnpfazem parte do pool de nodos 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 num 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. Sua saída deve ser semelhante à saída de exemplo a seguir:
root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1Os pools de nodos com FIPS ativado também têm um rótulo kubernetes.azure.com/fips_enabled=true, que os desdobramentos podem usar para direcionar essas pools de nodos.
Adicione o seguinte código ao
main.tfpara adicionar um pool de nós Linux habilitado para FIPS no seu cluster 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 = [] }Aplica a configuração atualizada do Terraform usando os
terraform plancomandos eterraform apply.terraform plan terraform applyLiga-te ao cluster 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 seu pool de nós usando o comando
az aks showe execute 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 é habilitado para FIPS:
Name enableFips --------- ------------ fipsnp True nodepool1 FalseListe os nós usando o
kubectl get nodescomando.kubectl get nodesA saída de exemplo a seguir mostra uma lista dos nós no cluster. Os nodos que começam com
aks-fipsnpfazem parte do pool de nodos 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 num 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. Sua saída deve ser semelhante à saída de exemplo a seguir:
root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1Os pools de nodos com FIPS ativado também têm um rótulo kubernetes.azure.com/fips_enabled=true, que os desdobramentos podem usar para direcionar essas pools de nodos.
Para mais informações sobre o recurso azurerm_kubernetes_cluster_node_pool, consulte a documentação do Terraform Azure provider.
Adicionar um pool de nós do Windows com FIPS
Nesta secção, adicionamos um pool de nós do Windows a um cluster AKS existente.
Os pools de nós do Windows Server 2022 e posteriores ativam o FIPS por padrão, mesmo que enableFips não mostre True.
Pools de nós de Windows Server 2025 e posteriores não suportam a desativaçã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 partilham 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 seu pool de nós usando o
az aks showcomando e consulte o valor enableFIPS no 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 ligação RDP para um nó Windows num pool de nós e verificando o registo do sistema. No aplicativo Executar, digite
regedit.Procure
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicyno registro.Se
Enabledestiver definido como 1, o FIPS estará ativado.
Os pools de nodos com FIPS ativado também têm um rótulo kubernetes.azure.com/fips_enabled=true, que os desdobramentos podem usar para direcionar essas pools de nodos.
Não existe uma experiência do portal do Azure para ativar ou desativar as configurações FIPS para pools de nós do Windows. Qualquer pool de nós do Windows criado usando o portal do Azure tem o FIPS ativado. Os pools de nós do Windows Server 2022 e posteriores ativam o FIPS por defeito, e os pools de nós do Windows Server 2025 e posteriores não suportam desativar o FIPS.
Crie um pool de nós Windows usando um modelo ARM ao implementar um recurso de grupo de agentes com
osTypedefinido paraWindows. 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" } }Implemente o template ARM usando o portal Azure, CLI do Azure ou Azure PowerShell. Para mais informações sobre a implementação de templates ARM, consulte Deploy resources with ARM templates.
Verifique a configuração do seu pool de nós usando o
az aks showcomando e a consulta para o valor enableFIPS no 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 ligação RDP para um nó do Windows num pool de nós e verificando no registo. No aplicativo Executar, digite
regedit.Procure
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicyno registro.Se
Enabledestiver definido como 1, o FIPS estará ativado.
Os pools de nodos com FIPS ativado também têm um rótulo kubernetes.azure.com/fips_enabled=true, que os desdobramentos podem usar para direcionar essas pools de nodos.
Crie um pool de nós do Windows usando Bicep, implementando 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 } }Implemente o ficheiro Bicep usando o portal CLI do Azure, Azure PowerShell ou o portal Azure. Para mais informações sobre a implementação de ficheiros Bicep, veja Criar ficheiros Bicep usando o Visual Studio Code.
Verifique a configuração do seu 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 a bibliotecas criptográficas FIPS criando uma conexão RDP a um nó do Windows num pool de nós e verificando o registo. No aplicativo Executar, digite
regedit.Procure
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicyno registro.Se
Enabledestiver definido como 1, o FIPS estará ativado.
Os pools de nodos com FIPS ativado também têm um rótulo kubernetes.azure.com/fips_enabled=true, que os desdobramentos podem usar para direcionar essas pools de nodos.
Adicione o seguinte código a
main.tfpara criar um pool de nós Windows no seu cluster 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 = [] }Aplica a configuração atualizada do Terraform usando os
terraform plancomandos eterraform apply.terraform plan terraform applyLiga-te ao cluster 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 seu pool de nós usando o
az aks showcomando e consulte o valor enableFIPS no agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o tableVerifique se os grupos de nós Windows têm acesso a bibliotecas criptográficas FIPS, criando uma conexão RDP com um nó Windows em um grupo de nós e verificando o registo do sistema. No aplicativo Executar, digite
regedit.Procure
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicyno registro.Se
Enabledestiver definido como 1, o FIPS estará ativado.
Os pools de nodos com FIPS ativado também têm um rótulo kubernetes.azure.com/fips_enabled=true, que os desdobramentos podem usar para direcionar essas pools de nodos.
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ê estiver planejando migrar seus pools de nós de não-FIPS para FIPS, primeiro valide se seu aplicativo está funcionando corretamente em um ambiente de teste 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 um algoritmo MD4 que não é compatível com FIPS.
Nota
Ao atualizar um pool de nós Linux existente para ativar ou desativar o FIPS, a atualização transita entre a imagem FIPS e a imagem não FIPS. Esta atualização do pool de nós aciona uma reimagem 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 localizar a versão, execute az --version. Se precisares de instalar ou atualizar, vê Install CLI do Azure.
Habilitar FIPS em um pool de nós existente
Podes atualizar pools de nós Linux existentes para ativar o FIPS. Quando você atualiza um pool de nós existente, a imagem do nó muda da imagem atual para a imagem FIPS recomendada da mesma 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-imageEste comando desencadeia imediatamente uma reimagem do pool de nós para implementar o sistema operativo compatível com FIPS. Essa nova imagem ocorre durante a atualização do pool de nós. Não são necessárias etapas adicionais.
Verifique se o seu pool de nós tem o FIPS ativado 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 é ativado para FIPS:
Name enableFips --------- ------------ np True nodepool1 False
Ativar o FIPS num pool de nós existente atualmente não é suportado no portal Azure. Para ativar o FIPS num pool de nós existente, utilize as instruções do CLI do Azure, modelo ARM, Bicep ou Terraform neste artigo.
Ative o FIPS num pool de nós existente usando um template ARM atualizando o perfil do pool de agentes para definir a
enableFipspropriedade paratrue. Por exemplo:{ "type": "Microsoft.ContainerService/managedClusters/agentPools", "name": "[concat(parameters('clusterName'), '/np')]", "apiVersion": "2023-03-01", "properties": { "enableFips": true } }Implemente o modelo atualizado usando o portal Azure, CLI do Azure ou Azure PowerShell. Para mais informações sobre a implementação de templates ARM, consulte Deploy resources with ARM templates.
Verifique se o seu pool de nós tem o FIPS ativado 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 é ativado para FIPS:
Name enableFips --------- ------------ np True nodepool1 False
Ative o FIPS num pool de nós existente usando Bicep atualizando o recurso do pool de agentes para definir
enableFIPSparatrue. Por exemplo:param clusterName string param nodePoolName string = 'np' resource nodePool 'Microsoft.ContainerService/managedClusters/agentPools@2023-03-01' = { name: '${clusterName}/${nodePoolName}' properties: { enableFIPS: true } }Implemente o ficheiro Bicep atualizado usando o CLI do Azure, Azure PowerShell ou o portal Azure. Para mais informações sobre a implementação de ficheiros Bicep, veja Criar ficheiros Bicep usando o Visual Studio Code.
Verifique se o seu pool de nós está ativado 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 é ativado para FIPS:
Name enableFips --------- ------------ np True nodepool1 False
Atualize o recurso
azurerm_kubernetes_cluster_node_poolemmain.tfdefinindofips_enabledparatrue.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 }Aplica a configuração atualizada do Terraform usando os
terraform plancomandos eterraform apply. O Terraform deteta a alteração parafips_enablede aciona a necessária operação de recriação.terraform plan terraform applyLiga-te ao cluster AKS usando o comando [
az aks get-credentials][az-aks-get-credentials].az aks get-credentials \ --resource-group myResourceGroup \ --name myAKSClusterVerifique se o seu pool de nós tem o FIPS ativado 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 é ativado para FIPS:
Name enableFips --------- ------------ np True nodepool1 False
Desativar FIPS num grupo de nós existente
Pode atualizar os pools de nós Linux existentes para desativar o FIPS. Ao atualizar um pool de nós existente, a imagem do nó muda da imagem FIPS atual para a imagem não-FIPS recomendada da mesma SKU do sistema operacional. A alteração da imagem do nó ocorre após uma reimagem.
Atualize um pool de nós 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-imageEste comando desencadeia imediatamente uma reimagem do pool de nós para implementar o sistema operativo compatível com FIPS. Essa nova imagem ocorre durante a atualização do pool de nós. Não são necessárias etapas adicionais.
Verifique se o seu pool de nós não está com FIPS habilitado 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
Desativar o FIPS num pool de nós existente atualmente não é suportado no portal Azure. Para desativar o FIPS num pool de nós existente, utilize as instruções do CLI do Azure, modelo ARM, Bicep ou Terraform neste artigo.
Desative o FIPS num pool de nós existente usando um template ARM atualizando o perfil do pool de agentes para definir a
enableFipspropriedade comofalse. Por exemplo:{ "type": "Microsoft.ContainerService/managedClusters/agentPools", "name": "[concat(parameters('clusterName'), '/np')]", "apiVersion": "2023-03-01", "properties": { "enableFips": false } }Implemente o modelo atualizado usando o portal Azure, CLI do Azure ou Azure PowerShell. Para mais informações sobre a implementação de templates ARM, consulte Deploy resources with ARM templates.
Verifique se o seu pool de nós não está compatível com FIPS usando o comando
az aks showe consulte o valor de 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
Desative o FIPS num pool de nodes existente usando Bicep, atualizando o recurso do pool de agentes para definir
enableFIPSparafalse. Por exemplo:param clusterName string param nodePoolName string = 'np' resource nodePool 'Microsoft.ContainerService/managedClusters/agentPools@2023-03-01' = { name: '${clusterName}/${nodePoolName}' properties: { enableFIPS: false } }Implemente o ficheiro Bicep atualizado usando o CLI do Azure, o Azure PowerShell ou o portal Azure. Para mais informações sobre a implementação de ficheiros Bicep, consulte Crie ficheiros Bicep usando o Visual Studio Code.
Verifique se o seu pool de nós não está habilitado para FIPS usando o
az aks showcomando e consultar o valor de enableFIPS no 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_enabledparafalse: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 }Aplica a configuração atualizada do Terraform usando os
terraform plancomandos eterraform apply. O Terraform detecta a alteração emfips_enablede aciona a operação necessária de restauração da imagem.terraform plan terraform applyVerifique se o seu pool de nós não está habilitado para FIPS, utilizando o comando
az aks showe consultar o valor de 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
Pode substituir a Mensagem do Dia (MOTD) nos nós Linux utilizando a --message-of-the-day flag 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 o sinalizador --message-of-the-day definido para o caminho do novo ficheiro de 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 definida para o caminho do novo ficheiro 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 Melhores práticas para segurança de clusters e atualizações em Azure Kubernetes Service (AKS).