共用方式為


使用受信任存取來取得 Azure Kubernetes Service 中 Azure 資源的安全存取

許多與 Azure Kubernetes Service (AKS) 整合的 Azure 服務都需要存取 Kubernetes API 伺服器。 為了避免授與這些服務管理員存取權或將 AKS 叢集公開以供網路存取,您可以使用 AKS 受信任存取權功能。

此功能可讓服務使用 Azure 後端安全地存取 AKS API 伺服器,而不需要私人端點。 此功能不需要依賴具有 Microsoft Entra 權限的身分識別,而是可以使用系統指派的受控識別,向您想要搭配 AKS 叢集使用的受控服務和應用程式進行驗證。

本文顯示如何使用受信任存取,以取得 AKS 中 Azure 服務對 Kubernetes API 伺服器的安全存取。

注意

受信任存取權 API 已正式推出。 我們提供 Azure CLI 的正式發行 (GA) 支援,但它仍處於預覽狀態,且需要使用 aks-preview 延伸模組。

受信任存取權功能概觀

受信任存取權可解決下列情景的存取問題:

  • 如果授權的 IP 範圍已設定或位於私人叢集中,則 Azure 服務可能無法存取 Kubernetes API 伺服器 (除非您實作私人端點存取模型)。

  • 授與對 Kubernetes API 的 Azure 服務管理員存取權不會遵循最低權限存取的最佳做法,而且可能會導致權限提升或認證外洩的風險。 例如,您可能必須實施高特許權的服務對服務權限,而它們在稽核審查中並不理想。

您可以使用受信任存取,以使用稱為「角色繫結」的 Azure 資源來明確同意所允許資源的系統指派受控識別,以存取您的 AKS 叢集。 您的 Azure 資源會透過系統指派的受控識別驗證,以透過 AKS 區域閘道來存取 AKS 叢集。 適當的 Kubernetes 權限會透過稱為 role 的 Azure 資源所指派。 透過受信任存取,您可以存取具有不同設定的 AKS 叢集,包括但不限於私人叢集已關閉本機帳戶的叢集Microsoft Entra 叢集,以及授權 IP 範圍叢集

必要條件

建立 AKS 叢集

在與您想要存取叢集的 Azure 資源相同的訂用帳戶中,建立 AKS 叢集

選取必要的受信任存取角色

您所選取的角色取決於您想要存取 AKS 叢集的 Azure 服務。 Azure 服務可協助建立角色和角色繫結,以建置從 Azure 服務到 AKS 的連線。

若要尋找您需要的角色,請參閱您想要連線到 AKS 之 Azure 服務的文件。 您也可以使用 Azure CLI 來列出 Azure 服務可用的角色。 例如,若要列出 Azure Machine Learning 的角色,請使用下列命令:

az aks trustedaccess role list --location $LOCATION

建立受信任存取角色繫結

確認要使用的角色之後,請使用 Azure CLI 以在 AKS 叢集中建立受信任存取角色繫結。 角色繫結會將您所選取的角色與 Azure 服務建立關聯。

# Create a Trusted Access role binding in an AKS cluster

az aks trustedaccess rolebinding create  --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $ROLE_BINDING_NAME --source-resource-id $SOURCE_RESOURCE_ID --roles $ROLE_NAME_1,$ROLE_NAME_2

以下是範例:

# Sample command

az aks trustedaccess rolebinding create --resource-group myResourceGroup --cluster-name myAKSCluster --name test-binding --source-resource-id /subscriptions/000-000-000-000-000/resourceGroups/myResourceGroup/providers/Microsoft.MachineLearningServices/workspaces/MyMachineLearning --roles Microsoft.MachineLearningServices/workspaces/mlworkload

更新現有的受信任存取角色繫結

針對具有相關聯來源服務的現有角色繫結,您可以使用新的角色來更新的角色繫結。

注意

附加元件管理員會每五分鐘更新叢集一次,因此新的角色繫結最多可能需要五分鐘的時間才會生效。 在新的角色繫結生效之前,現有的角色繫結仍然可以運作。

您可以使用 az aks trusted access rolebinding list 命令來檢查目前的角色繫結。

az aks trustedaccess rolebinding update --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $ROLE_BINDING_NAME --roles $ROLE_NAME_3,$ROLE_NAME_4

顯示受信任存取角色繫結

使用 az aks trustedaccess rolebinding show 命令來顯示特定受信任存取角色繫結:

az aks trustedaccess rolebinding show --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME

列出叢集的所有受信任存取角色繫結

使用 az aks trustedaccess rolebinding list 命令來列出叢集的所有受信任存取角色繫結:

az aks trustedaccess rolebinding list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME

刪除叢集的受信任存取角色繫結

警告

刪除現有的受信任存取角色繫結會中斷 Azure 服務與 AKS 叢集的連線。

使用 az aks trustedaccess rolebinding delete 命令,以刪除現有的受信任存取角色繫結:

az aks trustedaccess rolebinding delete --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME