你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
通过 Azure 基于角色的访问控制授予对 Azure Kubernetes 舰队管理器资源的访问权限
Azure 基于角色的访问控制 (Azure RBAC) 是在 Azure 资源管理器基础上构建的授权系统,针对 Azure 资源提供精细的访问权限管理。
本文概述了可用于访问 Azure Kubernetes 舰队管理器(Kubernetes 舰队)资源的各种内置 Azure RBAC 角色。
控制面板
此角色授予对 Azure 资源管理器 (ARM) 舰队资源和子资源的访问权限,对于有无中心群集的 Kubernetes 舰队资源均适用。
角色名称 | 说明 | 使用情况 |
---|---|---|
Azure Kubernetes 舰队管理器参与者 | 此角色授予对 Azure Kubernetes 舰队管理器提供的 Azure 资源(包括舰队、舰队成员、舰队更新策略、舰队更新运行等)的读写访问权限。 | 可以使用此角色授予仅适用于 Kubernetes 舰队资源和子资源的参与者权限。 例如,可以将此角色提供给负责定义和维护舰队资源的 Azure 管理员。 |
数据平面
这些角色授予对舰队中心 Kubernetes 对象的访问权限,因此仅适用于具有中心群集的 Kubernetes 舰队资源。
可以在舰队中心群集范围内分配数据平面角色,也可以通过将 /namespace/<namespace>
追加到角色分配范围来在单个 Kubernetes 命名空间范围内分配这些角色。
角色名称 | 说明 | 使用情况 |
---|---|---|
Azure Kubernetes 舰队管理器 RBAC 读者 | 授予对舰队托管的中心群集中命名空间内大多数 Kubernetes 资源的只读访问权限。 不允许查看角色或角色绑定。 此角色不允许查看机密,因为通过读取机密内容可以访问命名空间中的 ServiceAccount 凭据,这样就会允许以命名空间中任何 ServiceAccount 的身份进行 API 访问(一种特权提升形式)。 在群集范围内应用此角色将提供对所有命名空间的访问权限。 |
可以使用此角色授予读取命名空间或群集范围内所选非敏感 Kubernetes 对象的功能。 例如,可以授予此角色,以进行评审。 |
Azure Kubernetes 舰队管理器 RBAC 编写者 | 授予对舰队托管的中心群集中命名空间内大多数 Kubernetes 资源的读写访问权限。 此角色不允许查看或修改角色或角色绑定。 但是,此角色允许以命名空间中任何 ServiceAccount 的身份访问机密,因此可用于获取命名空间中任何 ServiceAccount 的 API 访问级别。 在群集范围内应用此角色将提供对所有命名空间的访问权限。 |
可以使用此角色授予写入命名空间或群集范围内所选 Kubernetes 对象的功能。 例如,供负责给定命名空间中对象的项目团队使用。 |
Azure Kubernetes 舰队管理器 RBAC 管理员 | 授予对舰队托管的中心群集中命名空间内 Kubernetes 资源的读写访问权限。 提供对命名空间中大多数对象的写入权限,但 ResourceQuota 对象和命名空间对象本身除外。 在群集范围内应用此角色将提供对所有命名空间的访问权限。 |
可以使用此角色授予管理命名空间或群集范围内所选 Kubernetes 对象(包括角色和角色绑定)的功能。 例如,供负责给定命名空间中对象的项目团队使用。 |
Azure Kubernetes 舰队管理器 RBAC 群集管理员 | 授予对舰队托管的中心群集中所有 Kubernetes 资源的读/写访问权限。 | 可以使用此角色授予对命名空间或群集范围内所有 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"