Pular para o conteúdo principal
Esta página se aplica apenas a implantações em Azure AKS. A configuração de conformidade FIPS não é aplicável a implantações em máquinas virtuais.

Visão geral

A conformidade com o Federal Information Processing Standard (FIPS) 140-2 é obrigatória para determinadas implantações do governo dos EUA e de setores regulamentados. Ativar a conformidade com o FIPS na sua implantação do Vantage exige alterações específicas de configuração durante a criação da infraestrutura e a instalação.

Principais Diferenças em Relação à Implantação Padrão

ComponenteImplantação PadrãoImplantação com FIPS Habilitado
Versão do Redis6.2 ou posteriorApenas da 6.2 até a 7.0.7
Tipo de Compartilhamento de ArquivosSMBNFS
Pools de Nós do AKSPadrãoCom FIPS habilitado
Acesso ao ArmazenamentoPúblico ou privadoApenas rede virtual (para NFS)

Requisitos

Restrição de versão do Redis

Para conformidade com o padrão FIPS, o Redis deve estar entre as versões 6.2 e 7.0.7 (inclusive). As versões 7.0.8 e posteriores não têm suporte para implantações com FIPS.

Considerações sobre compartilhamento NFS

Quando o FIPS está habilitado, compartilhamentos Network File System (NFS) são usados em vez de compartilhamentos SMB:
  • A configuração da conta de armazenamento para compartilhamentos NFS pode permitir acesso a partir de endereços IP públicos
  • No entanto, você não pode montar compartilhamentos NFS a partir de um endereço IP público
  • Você só pode se conectar a compartilhamentos NFS a partir de uma máquina em uma rede virtual considerada confiável pela conta de armazenamento

Criação de infraestrutura com FIPS

Ao criar a infraestrutura do Azure para uma implantação em conformidade com o FIPS, adicione o parâmetro enableFIPS=true às implantações de modelos ARM.

Criar um cluster AKS com FIPS

az deployment group create --name aks-cluster \
  --resource-group <resource_group_name> \
  --template-file files/infrastructure/azure/arms/Cluster.Manual.json \
  --parameters kubernetesClusterName=<cluster_name> \
  --parameters enableFIPS=true

Configurar acesso ao compartilhamento NFS

Após criar o cluster habilitado para FIPS, execute os seguintes comandos para conectar a conta de armazenamento compartilhado ao compartilhamento NFS:
# Obtenha o ID da entidade de segurança do cluster AKS
export principalId=$(az aks show --name <cluster_name> -g <resource_group_name> \
  -o tsv --query identity.principalId)

# Obtenha o escopo da sub-rede
export scope=$(az aks show --name <cluster_name> -g <resource_group_name> \
  -o tsv --query agentPoolProfiles[*].vnetSubnetId | uniq)

# Crie a atribuição de função para o cluster acessar o armazenamento
az role assignment create --role "Contributor" \
  --assignee-principal-type ServicePrincipal \
  --assignee-object-id $principalId \
  --scope $scope

Criar contas de armazenamento compatíveis com FIPS

az deployment group create --name storage \
  --resource-group <resource_group_name> \
  --template-file files/infrastructure/azure/arms/StorageAccounts.Template.json \
  --parameters kubernetesClusterName=<cluster_name> \
  --parameters enableFIPS=true

Parâmetros de configuração

env_specific.yml

Ative o suporte ao FIPS definindo o seguinte Parameter:
k8s_fips_enabled: true

Azure Government Cloud

Se estiver implantando no Azure Government Cloud, adicione o Parameter s3endpointSuffix imediatamente após k8s_fips_enabled:
k8s_fips_enabled: true
s3endpointSuffix: core.usgovcloudapi.net
Adicione s3endpointSuffix somente ao implantar no Azure Government Cloud. Não inclua esse Parameter em implantações padrão na nuvem comercial do Azure.

Exemplo completo de configuração do FIPS

env: vantage
poc: false

domain: yourdomain.gov
product_host: "vantage.{{ domain }}"

loadbalancer:
  external_ip: X.X.X.X

container_registry_host: "registry.yourdomain.gov"
container_registry_user: "service"
container_registry_password: "password"
container_registry_name: "{{ container_registry_host }}/vantage"

techcore:
  use_gpu_workers: false
  use_nn_extraction_training_workers: false

logging:
  enabled: true
  elasticsearch:
    enabled: false
  file:
    enabled: true

platform_admin_email: [email protected]

smtp:
  host: X.X.X.X
  login: null
  password: ""
  port: 587
  useSSL: false

mailFrom: [email protected]

database:
  type: sqlserver
  host: X.X.X.X
  username: login
  password: password
  encrypt: true  # Recommended for FIPS

s3storage:
  skills:
    accessKey: skills_storage_account_name
    secretKey: skills_storage_account_key
  processing:
    accessKey: processing_storage_account_name
    secretKey: processing_storage_account_key
  temporary:
    accessKey: temporary_storage_account_name
    secretKey: temporary_storage_account_key
  sharedfolder:
    accessKey: sharedfolder_storage_account_name
    secretKey: sharedfolder_storage_account_key
    resourcegroup: your_resource_group
  archive:
    accessKey: archive_storage_account_name
    secretKey: archive_storage_account_key

# Cluster Redis - deve ser versão 6.2 a 7.0.7 para FIPS
redis:
  ips: ['172.16.10.101', '172.16.10.102', '172.16.10.103', '172.16.10.104', '172.16.10.105', '172.16.10.106']
  port: 6379
  password: redispassword
  ssl: true  # Recommended for FIPS

reporting:
  enabled: false

id_reading:
  enabled: false

# FIPS Configuration
k8s_fips_enabled: true

# Uncomment for Azure Government Cloud only:
# s3endpointSuffix: core.usgovcloudapi.net

Verificação

Após a implantação, verifique se o FIPS está habilitado nos seus nós do AKS:
# Obter informações do nó
kubectl get nodes -o wide

# Verificar o status do FIPS em um nó (conecte-se ao nó primeiro)
cat /proc/sys/crypto/fips_enabled
# Saída: 1 (FIPS habilitado) ou 0 (FIPS desabilitado)