跳轉到主要內容
本頁僅適用於 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 Parameter。

建立啟用 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

組態參數

env_specific.yml

透過設定下列 Parameter 來啟用 FIPS 支援:
k8s_fips_enabled: true

Azure Government Cloud

如果要部署至 Azure Government Cloud,請將 s3endpointSuffix Parameter 加在 k8s_fips_enabled 之後:
k8s_fips_enabled: true
s3endpointSuffix: core.usgovcloudapi.net
僅在部署至 Azure Government Cloud 時新增 s3endpointSuffix。在標準的 Azure 商業雲部署中,請不要加入此 Parameter。

完整的 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)