共用方式為


使用 Azure 角色型存取控制來授與 Azure Kubernetes 機群管理員資源的存取權

Azure 角色型存取控制 (Azure RBAC) 是建置在 Azure Resource Manager 上的授權系統,提供 Azure 資源的精細存取管理。

本文提供各種內建 Azure RBAC 角色的概觀,您可以使用這些角色,存取 Azure Kubernetes 機群管理員 (Kubernetes 機群) 資源。

控制平面

此角色會授與 Azure Resource Manager (ARM) 機群資源和子資源的存取權,而且適用於具有和沒有中樞叢集的 Kubernetes 機群資源。

角色名稱 描述 使用量
Azure Kubernetes 機群管理員參與者 此角色會授與 AAzure Kubernetes 機群管理員所提供的 Azure 資源的讀取和寫入存取權,包括機群、機群成員、機群更新策略、機群更新執行等等。 您可以使用此角色,授與僅套用至 Kubernetes 機群資源和子資源的參與者權限。 例如,此角色可以提供給負責定義和維護機群資源的 Azure 管理員。
Azure Kubernetes Fleet Manager Hub 叢集使用者角色 此角色會授與機群管理員中樞叢集與 Kubernetes 設定檔的唯讀存取權,以連線至機群受控中樞叢集。 您可以檢視 Fleet Manager 資源並下載中樞叢集的 kubeconfig,以檢查組態和工作負載,而無需進行任何變更。

資料平面

這些角色會授與機群中樞 Kubernetes 物件的存取權,因此僅適用於具有中樞叢集的 Kubernetes 機群資源。

您可以將 /namespace/<namespace> 附加至角色指派範圍,以在機群中樞叢集範圍或在個別 Kubernetes 命名空間範圍指派資料平面角色。

角色名稱 描述 使用量
Azure Kubernetes 機群管理員 RBAC 讀取者 授與機群受控中樞叢集中命名空間內大部分 Kubernetes 資源的唯讀存取權。 其不允許檢視角色或角色繫結。 此角色不允許檢視秘密,因為讀取祕密的內容可存取命名空間中的 ServiceAccount 認證,這會允許 API 以命名空間中任何 ServiceAccount 身分來進行存取 (權限提升的形式)。 在叢集範圍套用此角色會授與所有命名空間的存取權。 您可以使用此角色,授與可在命名空間或叢集範圍讀取所選非敏感 Kubernetes 物件的權限。 例如,您可以基於檢閱目的授與此角色。
Azure Kubernetes 機群管理員 RBAC 編寫器 授與機群受控中樞叢集中命名空間內大部分 Kubernetes 資源的讀取和寫入存取權。 不允許檢視或修改角色或角色繫結。 不過,此角色允許以命名空間中的任何 ServiceAccount 身分存取秘密,因此可用來取得命名空間中任何 ServiceAccount 的 API 存取層級。 在叢集範圍套用此角色會授與所有命名空間的存取權。 您可以使用此角色,授與可在命名空間或叢集範圍寫入所選 Kubernetes 物件的權限。 例如,供負責給定命名空間中物件的專案小組使用。
Azure Kubernetes 機群管理員 RBAC 管理員 授與機群受控中樞叢集中命名空間內 Kubernetes 資源的讀取和寫入存取權。 提供命名空間內大部分物件的寫入權限,但 ResourceQuota 物件和命名空間物件本身除外。 在叢集範圍套用此角色會授與所有命名空間的存取權。 您可以使用此角色,授與可在命名空間或叢集範圍管理所選 Kubernetes 物件 (包括角色和角色繫結) 的權限。 例如,供負責給定命名空間中物件的專案小組使用。
Azure Kubernetes 機群管理員 RBAC Cluster 管理員 授與機群受控中樞叢集中所有 Kubernetes 資源的讀取/寫入權限。 您可以使用此角色,授與可在命名空間或叢集範圍存取所有物件 (包括 CRD) 的權限。
成員叢集的 Azure Kubernetes 機群管理員 RBAC 讀者 對成員叢集上命名空間中大部分物件的唯讀存取權。 無法檢視角色或角色繫結。 無法檢視密碼 (防止透過 ServiceAccount 認證提升權限)。 您可以使用此角色,授與可在機群成員上的命名空間範圍讀取所選非敏感性 Kubernetes 物件的權限。
成員叢集的 Azure Kubernetes 機群管理員 RBAC 寫入者 對命名空間中大部分 Kubernetes 資源的讀取和寫入權限。 無法檢視或修改角色或角色繫結。 可以讀取祕密 (因此可以認定為命名空間中的任何 ServiceAccount)。 您可以使用此角色,授與可在機群成員上的命名空間寫入所選 Kubernetes 物件的權限。 例如,供負責給定命名空間中物件的專案小組使用。
成員叢集的 Azure Kubernetes 機群管理員 RBAC 管理員 在成員叢集的命名空間中,擁有對 Kubernetes 資源的讀取和寫入權限。 您可以使用此角色,授與可在機群成員上的命名空間範圍管理所選 Kubernetes 物件 (包括角色和角色繫結) 的權限。 例如,供負責給定命名空間中物件的專案小組使用。
成員叢集的 Azure Kubernetes 機群管理員 RBAC 叢集管理員 對叢集中成員叢集上所有 Kubernetes 資源的完整讀取/寫入存取權。 您可以使用此角色來授與成員叢集上所有資源的完整存取權。 例如,需要存取成員叢集上多個命名空間的平台管理員。

範例角色指派

您可以使用 Azure CLI 授與 Azure RBAC 角色。 例如,若要在 Kubernetes 機群中樞叢集範圍建立角色指派:

IDENTITY=$(az ad signed-in-user show --output tsv --query id)
FLEET_ID=$(az fleet show --resource-group $GROUP --name $FLEET --output tsv --query id)

az role assignment create --role 'Azure Kubernetes Fleet Manager RBAC Reader' --assignee "$IDENTITY" --scope "$FLEET_ID"

您也可以將角色指派的範圍限制為個別 Kubernetes 命名空間。 例如,若要為 Kubernetes 機群中樞的預設 Kubernetes 命名空間建立角色指派:

IDENTITY=$(az ad signed-in-user show --output tsv --query id)
FLEET_ID=$(az fleet show --resource-group $GROUP --name $FLEET --output tsv --query id)

az role assignment create --role 'Azure Kubernetes Fleet Manager RBAC Reader' --assignee "$IDENTITY" --scope "$FLEET_ID/namespaces/default"