跳转到主要内容
本页面仅适用于 Azure AKS 部署。FIPS 合规性配置不适用于基于虚拟机的部署。

概述

联邦信息处理标准(Federal Information Processing Standard,FIPS)140-2 合规性是某些美国政府机构和受监管行业部署的必要要求。要在您的 Vantage 部署中启用 FIPS 合规性,需要在基础架构创建和安装阶段进行特定的配置更改。

与标准部署的主要差异

组件标准部署启用 FIPS 的部署
Redis 版本6.2 或更高仅限 6.2 到 7.0.7
文件共享类型SMBNFS
AKS 节点池标准启用 FIPS
存储访问公共或专用仅限虚拟网络(适用于 NFS)

要求

Redis 版本限制

为满足 FIPS 合规性要求,Redis 必须使用 6.2 至 7.0.7 版本(不得高于 7.0.7)。7.0.8 及更高版本不支持用于 FIPS 部署。

NFS 共享注意事项

启用 FIPS 时,将使用网络文件系统 (NFS) 共享来替代 SMB 共享:
  • NFS 共享的存储帐户配置可以允许从公共 IP 地址进行访问
  • 但是,您无法从公共 IP 地址挂载 NFS 共享
  • 您只能从存储帐户信任的虚拟网络中的计算机连接到 NFS 共享

使用 FIPS 创建基础架构

在为符合 FIPS 要求的部署创建 Azure 基础架构时,请在 ARM 模板的部署中添加 enableFIPS=true 参数。

创建启用 FIPS 的 AKS 集群

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

配置 NFS 共享访问

创建启用了 FIPS 的集群后,运行以下命令将共享存储帐户连接到 NFS 共享:
# Get the principal ID of the AKS cluster
export principalId=$(az aks show --name <cluster_name> -g <resource_group_name> \
  -o tsv --query identity.principalId)

# Get the subnet scope
export scope=$(az aks show --name <cluster_name> -g <resource_group_name> \
  -o tsv --query agentPoolProfiles[*].vnetSubnetId | uniq)

# 为集群创建角色分配以访问存储
az role assignment create --role "Contributor" \
  --assignee-principal-type ServicePrincipal \
  --assignee-object-id $principalId \
  --scope $scope

使用 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

Parameter 配置

env_specific.yml

通过设置以下 Parameter 来启用 FIPS 支持:
k8s_fips_enabled: true

Azure Government Cloud

如果部署到 Azure Government Cloud,请在 k8s_fips_enabled 后面紧接着添加 s3endpointSuffix Parameter:
k8s_fips_enabled: true
s3endpointSuffix: core.usgovcloudapi.net
仅在部署到 Azure 政府云时才添加 s3endpointSuffix。对于标准的 Azure 商业云部署,请不要包含此参数。

完整 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: admin@yourdomain.gov

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

mailFrom: noreply@yourdomain.gov

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

# Redis 集群 - FIPS 要求版本为 6.2 至 7.0.7
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

验证

部署完成后,确认已在 AKS 节点上启用 FIPS:
# 获取节点信息
kubectl get nodes -o wide

# 检查节点上的 FIPS 状态(首先连接到节点)
cat /proc/sys/crypto/fips_enabled
# 输出: 1 (FIPS 已启用) 或 0 (FIPS 已禁用)