|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
基于角色的访问控制
本节描述了 Prometheus Federator 对基于角色的访问控制 (RBAC) 的期望。
正如 名称空间 部分所述,Prometheus Federator 期望项目所有者、项目成员以及集群中具有项目级权限的其他用户(例如,在由单个标签选择器标识的一组名称空间内)在除项目注册名称空间(默认情况下自动导入到项目中)和已包含于其项目内的名称空间之外的所有名称空间中,仅拥有最小权限。因此,为了允许项目所有者将特定的图表权限分配给其项目名称空间中的其他用户,Helm 项目操作员将自动监视以下绑定:
-
ClusterRoleBindings
-
项目发布名称空间中的角色绑定
在观察到这些类型绑定之一发生变化时,Helm 项目操作员将检查绑定所指向的 roleRef 是否与下列名称对应的 ClusterRole 相匹配:
-
helmProjectOperator.releaseRoleBindings.clusterRoleRefs.admin -
helmProjectOperator.releaseRoleBindings.clusterRoleRefs.edit -
helmProjectOperator.releaseRoleBindings.clusterRoleRefs.view
默认情况下,这些 roleRefs 将分别对应于 admin、edit 和 view,它们是 默认 Kubernetes 用户可见角色。
|
对于 Rancher RBAC 用户,这些 默认 Kubernetes 用户可见角色 直接对应于 |
如果 roleRef 匹配,Helm 项目操作员将过滤绑定的 subjects 中的所有用户和组,并使用该信息自动为项目发布名称空间中的每个角色构建一个与角色同名的 RoleBinding,并附加以下标签:
-
helm.cattle.io/project-helm-chart-role: {{ .Release.Name }} -
helm.cattle.io/project-helm-chart-role-aggregate-from: <admin|edit|view>
默认情况下,rancher-project-monitoring——由 Prometheus Federator 部署的基础图表——为每个项目发布名称空间创建三个默认角色,使 admin、edit 和 view 用户能够查看项目监控堆栈中的 Prometheus、Alertmanager 以及 Grafana 用户界面,从而实现最小权限原则。然而,如果集群管理员希望为某些用户分配额外权限,他们可以直接在项目发布名称空间中为这些用户分配角色绑定,或者创建具有上述两个标签的角色,从而允许项目所有者控制将这些 RBAC 角色分配给其项目注册名称空间中的用户。