共用方式為


使用 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 管理員。

資料平面

這些角色會授與機群中樞 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 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"