Share via


Azure 操作員 Nexus Kubernetes 叢集中的角色型存取控制

本文提供如何使用 Microsoft Entra ID 管理 Nexus Kubernetes 叢集存取權的完整指南。 具體而言,我們著重于角色型存取控制,可讓您根據組織內的角色或責任,將許可權授與使用者。

開始之前

  1. 若要開始,請為您的叢集系統管理員建立 Microsoft Entra 群組,並將成員指派給它。 Microsoft Entra ID 允許整體授與群組的存取權,而不是個別管理每個使用者的許可權。
  2. 建立 Nexus Kubernetes 叢集時,請使用您建立為 'adminGroupObjectIds' 值的群組識別碼,以確保群組的成員取得管理叢集的許可權。 如需 如何建立及存取 Nexus Kubernetes 叢集的指示,請參閱快速入門 指南。

管理員istrator 存取叢集

Nexus 會使用預設 Kubernetes 角色 cluster-admin 和您指定為 adminGroupObjectIds 的 Microsoft Entra 群組,建立 Kubernetes 叢集角色系結。 叢集管理員具有叢集的完整存取權,而且可以在叢集上執行所有作業。 叢集系統管理員也可以將存取權指派給適當的 Microsoft Entra 群組,以授與其他使用者的存取權。

注意

當您建立 Nexus Kubernetes 叢集時,Nexus 會自動建立專用於儲存叢集資源的受控資源群組,在此群組中建立 Arc 連線的叢集資源。

若要存取叢集,您必須設定叢集連線 kubeconfig 。 使用相關的 Microsoft Entra 實體登入 Azure CLI 之後,您可以取得 kubeconfig 從任何地方與叢集通訊的必要條件,即使是在圍住叢集的防火牆之外也一樣。

  1. 設定 CLUSTER_NAMERESOURCE_GROUPSUBSCRIPTION_ID 變數。

    CLUSTER_NAME="myNexusK8sCluster"
    RESOURCE_GROUP="myResourceGroup"
    SUBSCRIPTION_ID=<set the correct subscription_id>
    
  2. 使用 和 az 儲存查詢受控資源群組 MANAGED_RESOURCE_GROUP

     az account set -s $SUBSCRIPTION_ID
     MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)
    
  3. 下列命令會啟動 connectedk8s Proxy,可讓您連線到指定 Nexus Kubernetes 叢集的 Kubernetes API 伺服器。

    az connectedk8s proxy -n $CLUSTER_NAME  -g $MANAGED_RESOURCE_GROUP &
    
  4. 使用 kubectl 將要求傳送至叢集:

    kubectl get pods -A
    

    您現在應該會看到包含所有節點清單的叢集回應。

注意

如果您看到錯誤訊息「無法將存取權杖張貼至用戶端 ProxyFailed 以連線到 MSI」,您可能需要執行 az login 以向 Azure 重新驗證。

角色型存取控制

身為系統管理員,您可以建立具有 Microsoft Entra 群組物件識別碼的角色系結,為叢集提供角色型存取控制。 對於只需要「檢視」許可權的使用者,您可以將他們新增至系結至「檢視」角色的 Microsoft Entra 群組,來完成工作。

  1. 為需要「檢視」存取權的使用者建立 Microsoft Entra 群組,並參考稱為 view 的預設 Kubernetes 角色。 此角色只是範例,如有必要,您可以建立自訂角色,並改用它們。 如需 Kubernetes 中使用者面向角色的詳細資訊,請參閱 Kubernetes 變換型存取角色 的官方 檔。

  2. 記下建立時產生的 Microsoft Entra 群組物件識別碼。

  3. 使用 kubectl 命令建立具有 'view' 角色的 clusterrolebinding,並將它與 Microsoft Entra 群組產生關聯。 將 取代 AZURE_AD_GROUP_OBJECT_ID 為 Microsoft Entra 群組的物件識別碼。

    kubectl create clusterrolebinding nexus-read-only-users --clusterrole view --group=AZURE_AD_GROUP_OBJECT_ID
    

    此命令會建立名為 nexus-read-only-users 的叢集角色系結,將角色指派 view 給指定之 Microsoft Entra 群組的成員。

  4. 確認已成功建立角色系結。

    kubectl get clusterrolebinding nexus-read-only-users
    
  5. 現在,Microsoft Entra 群組中的使用者具有叢集的「檢視」存取權。 他們可以使用 來存取叢集 az connectedk8s proxy 以檢視資源,但無法進行任何變更

下一步

您可以藉由建立具有特定許可權的自訂角色,進一步微調存取控制。 建立這些角色牽涉到 Kubernetes 原生 RoleBinding 或 ClusterRoleBinding 資源。 您可以檢查官方 Kubernetes 檔 ,以取得根據需求建立更多自訂角色和角色系結的詳細指引。