當你將 Microsoft Entra ID 整合到 AKS 叢集時,可以使用 條件存取 來控制對叢集控制平面和叢集節點的存取。 本文將說明如何在你的 AKS 叢集上啟用條件存取,同時支援控制平面存取和節點的 SSH 存取。
附註
Microsoft Entra 條件式存取需具備 Microsoft Entra ID P1、P2 或治理功能,而治理功能需要 Premium P2 SKU。 如需 Microsoft Entra ID 授權和 SKU 的詳細資訊,請參閱 Microsoft Entra ID 治理授權基礎知識和定價指南。
開始之前
- 請參閱 Microsoft Entra 整合 以了解概覽與設定說明。
- 關於節點的 SSH 存取,請參閱 管理 SSH,了解如何安全存取 Azure Kubernetes Service(AKS)節點 以設定基於 Entra ID 的 SSH。
搭配 Microsoft Entra ID 和 AKS 使用條件式存取
你可以使用條件存取來控制對 AKS 叢集控制平面的存取,以及對叢集節點的 SSH 存取。
配置條件存取以存取叢集控制平面
- 在 Azure 入口網站中,前往 [Microsoft Entra ID] 頁面,然後選取 [企業應用程式]。
- 選取 [條件式存取]> [原則]> [新增原則]。
- 輸入原則的名稱,例如 aks-policy。
- 在 [指派] 下,選取 [使用者和群組]。 選擇您要套用該原則的使用者和群組。 在此範例中,選擇對您的叢集擁有管理員存取權的相同 Microsoft Entra 群組。
- 在 [雲端應用程式或動作]> [包括] 下,選取 [選取應用程式]。 搜尋 Azure Kubernetes Service,然後選取 [Azure Kubernetes Service Microsoft Entra 伺服器]。
- 在 [存取控制]>[授與] 底下,選取 [授與存取權]、[裝置需要標記為符合規範] 和 [需要所有選取的控制項]。
- 確認設定並將 [啟用原則] 設定為 [開啟],然後選取 [建立]。
驗證用於叢集控制平面存取的條件式存取
實作條件式存取原則之後,請透過存取 AKS 叢集並檢查登入活動,確認其運作正常。
使用
az aks get-credentials命令,取得使用者認證以存取叢集。將值指派給必要的環境變數。 AKS 叢集和資源群組必須存在。
export RANDOM_SUFFIX=$(head -c 3 /dev/urandom | xxd -p) export RESOURCE_GROUP="myResourceGroup$RANDOM_SUFFIX" export AKS_CLUSTER="myManagedCluster$RANDOM_SUFFIX"下載存取 AKS 叢集所需的認證。
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --overwrite-existing遵循該指引來登入。
使用
kubectl get nodes命令,檢視叢集中的節點。kubectl get nodes結果:
NAME STATUS ROLES AGE VERSION aks-nodepool1-xxxxx-vmss000000 Ready agent 3d2h v1.xx.x aks-nodepool1-xxxxx-vmss000001 Ready agent 3d2h v1.xx.x在 Azure 入口網站中,導覽至 [Microsoft Entra ID],然後選取 [企業應用程式]> [活動]> [登入]。
在 [條件式存取] 資料行下方,您應該會看到 [成功] 狀態。 選取事件,然後選取 [條件式存取] 索引標籤。即會列出您的條件式存取原則。
設定條件存取以支援叢集節點的 SSH 存取
當你在 AKS 叢集節點啟用基於 Entra ID 的 SSH 存取時,你可以套用條件存取政策來控制節點的 SSH 存取。 在使用者能夠 SSH 進入叢集節點之前,系統會透過強制設備合規、多因素身份驗證或其他條件來提供額外的安全性。
- 在 Azure 入口網站中,前往 [Microsoft Entra ID] 頁面,然後選取 [企業應用程式]。
- 選取 [條件式存取]> [原則]> [新增原則]。
- 輸入政策名稱,例如 aks-node-ssh-policy。
- 在 [指派] 下,選取 [使用者和群組]。 選擇您要套用該原則的使用者和群組。
- 在 [雲端應用程式或動作]> [包括] 下,選取 [選取應用程式]。 搜尋 Azure 虛擬機登入 ,並選擇 Azure Linux 虛擬機登入。
- 在存取控制>中的授權選項,請選取授與存取權限,並要求裝置標記為合規,啟用多因素驗證,以及要求所有所選控制。
- 確認設定並將 [啟用原則] 設定為 [開啟],然後選取 [建立]。
附註
為了讓基於 Entra ID 的 SSH 與條件存取相容,請確保您的 AKS 叢集節點設定為 --ssh-access entraid。 欲了解更多資訊,請參閱 「管理 SSH」以取得 Azure Kubernetes Service(AKS)節點的安全存取。
驗證用於節點 SSH 存取的條件式存取
在實作 SSH 存取節點的條件存取政策後,請確認其運作如預期:
確保你擁有適當的 Azure RBAC 權限:
- 虛擬機管理員登入角色以取得管理員存取權限
- 虛擬機使用者登入角色,專用於非管理員的系統存取
安裝 Azure CLI 的 SSH 擴充功能:
az extension add --name ssh使用 Entra ID 認證來 SSH 進入節點:
az ssh vm --resource-group $RESOURCE_GROUP --name <node-name>在驗證流程中,系統會提示您符合條件存取政策(例如裝置合規、多重驗證)。
在成功驗證並符合條件存取要求後,你就會連接到該節點。
在 Azure 入口網站中,導覽至 [Microsoft Entra ID],然後選取 [企業應用程式]> [活動]> [登入]。
找到 Azure Linux 虛擬機登入 的登入事件,並確認條件 存取 欄位下是否顯示 成功狀態。
後續步驟
如需詳細資訊,請參閱下列文章:
- 使用 kubelogin 存取 kubectl 中無法使用的 Azure 驗證功能。
- 使用 Privileged Identity Management (PIM) 來控制對 Azure Kubernetes Service (AKS) 叢集的存取。
- 使用管理 AKS 叢集節點上的 SSH 存取,設定可繼承條件式存取的節點端存取模式,包括基於 Microsoft Entra ID 的 SSH。