本頁僅適用於 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.7)。7.0.8 及之後的版本不支援 FIPS 部署。
啟用 FIPS 時,會使用網路檔案系統(NFS)共用來取代 SMB 共用:
- NFS 共用的儲存體帳戶設定可以允許從公用 IP 位址存取
- 但是,您無法從公用 IP 位址掛載 NFS 共用
- 您只能從儲存體帳戶所信任的虛擬網路中的機器連線到 NFS 共用
在為符合 FIPS 的部署建立 Azure 基礎結構時,請在 ARM 範本部署中加入 enableFIPS=true Parameter。
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
透過設定下列 Parameter 來啟用 FIPS 支援:
如果要部署至 Azure Government Cloud,請將 s3endpointSuffix Parameter 加在 k8s_fips_enabled 之後:
k8s_fips_enabled: true
s3endpointSuffix: core.usgovcloudapi.net
僅在部署至 Azure Government Cloud 時新增 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: 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)