本页内容仅适用于 Azure AKS 部署。FIPS 合规性配置不适用于虚拟机部署。
联邦信息处理标准(Federal Information Processing Standard,FIPS)140-2 合规性是美国政府和受监管行业中某些部署的必备要求。要在 Vantage 部署中启用 FIPS 合规性,需要在基础架构创建和安装阶段进行特定的配置更改。
| 组件 | 标准部署 | 启用 FIPS 的部署 |
|---|
| Redis 版本 | 6.2 或更高 | 仅限 6.2 至 7.0.7 |
| 文件共享类型 | SMB | NFS |
| AKS 节点池 | 标准 | 启用 FIPS |
| 存储访问 | 公有或私有 | 仅限虚拟网络(适用于 NFS) |
为符合 FIPS 要求,Redis 必须使用 6.2 至 7.0.7 版本(不得高于该版本)。7.0.8 及更高版本不支持 FIPS 部署。
启用 FIPS 时,将使用网络文件系统 (NFS) 共享来替代 SMB 共享:
- 可以将 NFS 共享的存储帐户配置为允许来自公共 IP 地址的访问
- 但是,无法从公共 IP 地址挂载 NFS 共享
- 只能从存储帐户信任的虚拟网络中的计算机访问 NFS 共享
在为 FIPS 合规部署创建 Azure 基础架构时,请在 ARM 模板部署中添加 enableFIPS=true 参数。
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
创建启用 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
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
要启用 FIPS 支持,请设置以下 Parameter:
如果部署到 Azure Government Cloud,请在 k8s_fips_enabled 之后紧接添加 s3endpointSuffix Parameter:
k8s_fips_enabled: true
s3endpointSuffix: core.usgovcloudapi.net
仅在部署到 Azure Government 云时添加 s3endpointSuffix。对于标准 Azure 商用云部署,请不要包含该 Parameter。
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
# 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)