為 Azure Kubernetes Service (AKS) 節點集區啟用聯邦資訊流程標準 (FIPS)
聯邦資訊處理標準 (FIPS) 140-2 是美國政府標準,定義資訊技術產品和系統中密碼編譯模組的最低安全性需求。 Azure Kubernetes Service (AKS) 可讓您建立已啟用 FIPS 140-2 的 Linux 和 Windows 節點集區。 在已啟用 FIPS 的節點集區上執行的部署可以使用這些密碼編譯模組來提供更高的安全性,並協助符合 FedRAMP 合規性的安全性控制。 如需 FIPS 140-2 的詳細資訊,請參閱 聯邦資訊處理標準 (FIPS) 140。
必要條件
- 已安裝及設定 Azure CLI 2.32.0 版或更新版本。 執行
az --version
以尋找版本。 如需安裝或升級 Azure CLI 的詳細資訊,請參閱 安裝 Azure CLI。
注意
AKS 監視附加元件支援啟用 FIPS 的節點集區,使用 Ubuntu、Azure Linux 和 Windows,從代理程式 3.1.17 版(Linux) 和 Win-3.1.17 (Windows) 開始。
限制
- 已啟用 FIPS 的節點集區有下列限制:
- 已啟用 FIPS 的節點集區需要 Kubernetes 1.19 版和更新版本。
- 若要更新用於 FIPS 的基礎套件或模組,您必須使用 節點映射升級。
- FIPS 節點上的容器映像尚未評估 FIPS 合規性。
- CIFS 共用的掛接失敗,因為 FIPS 會停用某些驗證模組。 若要解決此問題,請參閱 在已啟用 FIPS 的節點集區上掛接檔案共享時發生錯誤。
重要
啟用 FIPS 的 Linux 映像與 Linux 型節點集區所使用的預設 Linux 映像不同。 若要在節點集區上啟用 FIPS,您必須建立以 Linux 為基礎的新節點集區。 您無法在現有的節點集區上啟用 FIPS。
啟用 FIPS 的節點映射可能有不同的版本號碼,例如核心版本,而不是未啟用 FIPS 的映像。 啟用 FIPS 的節點集區和節點映像的更新週期可能與未啟用 FIPS 的節點集區和映射不同。
建立已啟用 FIPS 的 Linux 節點集區
使用
az aks nodepool add
命令搭配--enable-fips-image
參數,建立已啟用 FIPS 的 Linux 節點集區。az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name fipsnp \ --enable-fips-image
注意
您也可以在建立叢集時搭配
az aks create
命令使用--enable-fips-image
參數,在默認節點集區上啟用 FIPS。 以這種方式將節點集區新增至建立的叢集時,您仍然必須在新增節點集區以建立已啟用 FIPS 的節點集區時使用--enable-fips-image
參數。使用 命令確認
az aks show
您的節點集區已啟用 FIPS,並查詢 agentPoolProfiles 中的 enableFIPS 值。az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
下列範例輸出顯示 已啟用 FIPS 的 fipsnp 節點集區:
Name enableFips --------- ------------ fipsnp True nodepool1 False
使用
kubectl get nodes
命令列出節點。kubectl get nodes
下列範例輸出顯示叢集中節點的清單。 開頭的
aks-fipsnp
節點是已啟用 FIPS 的節點集區的一部分。NAME STATUS ROLES AGE VERSION aks-fipsnp-12345678-vmss000000 Ready agent 6m4s v1.19.9 aks-fipsnp-12345678-vmss000001 Ready agent 5m21s v1.19.9 aks-fipsnp-12345678-vmss000002 Ready agent 6m8s v1.19.9 aks-nodepool1-12345678-vmss000000 Ready agent 34m v1.19.9
使用
kubectl debug
命令,在已啟用 FIPS 的節點集區中的其中一個節點上執行具有互動式會話的部署。kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
從互動式會話輸出中,確認已啟用 FIPS 密碼編譯連結庫。 您的輸出看起來應類似下列的範例輸出:
root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1
啟用 FIPS 的節點集區也有 kubernetes.azure.com/fips_enabled=true 標籤,部署可用來以這些節點集區為目標。
建立已啟用 FIPS 的 Windows 節點集區
使用
az aks nodepool add
命令搭配--enable-fips-image
參數,建立已啟用 FIPS 的 Windows 節點集區。 不同於以Linux為基礎的節點集區,Windows節點集區會共用相同的映像集。az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name fipsnp \ --enable-fips-image \ --os-type Windows
使用 命令確認
az aks show
您的節點集區已啟用 FIPS,並查詢 agentPoolProfiles 中的 enableFIPS 值。az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
確認 Windows 節點集區能夠存取 FIPS 密碼編譯連結庫,方法是 在已啟用 FIPS 的節點集區中建立 Windows 節點 的 RDP 連線,並檢查登錄。 從[ 執行 ] 應用程式,輸入
regedit
。在登入中尋找
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy
。如果
Enabled
設定為 1,則會啟用 FIPS。
啟用 FIPS 的節點集區也有 kubernetes.azure.com/fips_enabled=true 標籤,部署可用來以這些節點集區為目標。
下一步
若要深入瞭解 AKS 安全性,請參閱 Azure Kubernetes Service (AKS) 中叢集安全性和升級的最佳做法。