基于角色的访问控制
IBM® Cloud Private 支持多种角色。 您的角色决定了您可以执行的操作。
集群管理员角色和操作
IBM Cloud Private 支持集群管理员角色。
| 角色 | 描述 | 操作 |
|---|---|---|
| 集群管理员 | 具有对 IBM Cloud Private 平台的完全访问权。 | 以下操作只能由集群管理员完成:
|
关于添加 Pod 安全策略的更多信息,请参阅创建 Pod 安全策略。
IAM 角色和操作
您可以在将用户或用户组添加到团队中时为其分配 IAM 角色。 在团队中,每个用户或用户组都只能有一个角色。 但是,如果单独添加某个用户,并同时将其添加为团队组的成员,那么该用户可以在团队中具有多个角色。 如果是这种情况,那么该用户可以根据分配给它的最高角色执行操作。 例如,如果您将用户添加为管理员,并向用户的组分配查看者角色,那么用户可以充当团队的管理员。
用户或用户组可以是多个团队的成员,并且可以在每个团队中具有不同角色。
IAM 角色定义了用户可以对团队资源执行的操作。
IBM Cloud Private 支持以下 IAM 角色:
注:只有“集群管理员”和“管理员”能够管理团队、用户和角色。 “管理员”无法将“集群管理员”角色分配给任何用户或组。
| 角色 | 描述 | 操作 |
|---|---|---|
| 查看者 | 具有只读访问权。 缺省情况下,在将用户添加到团队中时,系统会为用户分配查看者角色。 | 查看者可以查看有关团队资源的信息。 “查看者”无法查看下列 management console 页面:
|
安全
“编辑者”无法查看下列 management console 页面:
- 仪表板
- 节点
- 身份 & 访问权
- Pod 安全
- 团队
“操作者”无法查看下列 management console 页面:
- 仪表板
- 节点
- 身份 & 访问权
- Pod 安全
- 团队
- 创建团队
- 将资源分配给其他团队 注:管理员有权访问由该集群管理员分配给团队的资源。 管理员可以将这些资源分配给其作为管理员的其他团队。
- 为团队创建资源 注:管理员可以为团队创建资源。 他们可以将这些资源分配给其作为管理员的其他团队。
- 管理其团队的用户、组和角色 注:管理员无法将集群管理员角色分配给任何用户或组。
- 读取、更新和删除团队的资源
“管理员”无法查看下列 management console 页面:
- 仪表板
- 节点
- Pod 安全
注:“查看者”和“编辑者”无法查看任何 IBM Cloud Private management console 页面上的日志。
针对目录和 Helm 资源的 RBAC
| 操作 | 管理员 | 操作者 | 编辑者 | 查看者 |
|---|---|---|---|---|
| 添加内部 Helm 存储库 | ||||
| 同步内部和外部 Helm 存储库 | ||||
| 删除内部 Helm 存储库 | ||||
| 将 Helm Chart 添加到内部 Helm 存储库 | X | |||
| 将 Helm Chart 从内部 Helm 存储库中移除 | X | |||
| 部署 Helm Chart | X | * | ||
| 回滚 Helm 发行版 | X | |||
| 升级 Helm 发行版 | X | * | ||
| 删除 Helm 发行版 | X |
X - 支持操作
* - 使用挂钩或作业移除资源的 Chart 不支持部署和升级 Helm 发行版。 有关更多信息,请参阅 Chart 自述文件或文档。
Kubernetes 资源的 RBAC
您分配给用户的 IAM 角色还定义了该用户可以对分配给团队的 Kubernetes 资源执行的操作。 例如,如果 user1 是 team1 中的操作者,而 team1 具有 namespace1 资源,那么 user1 可以查看和更新 namespace1 信息。 User1 还可以在 namespace1 中创建资源,例如 pod。 如果从 team1 中移除 user1,那么将移除 user1 对 team1 中资源的角色绑定。 如果 user1 属于另一个具有相同名称空间的团队(例如 team2),那么在您从 team1 中移除 user1 时,该用户在 team2 中对该名称空间的角色绑定不受影响。
| 操作 | 管理员 | 操作者 | 编辑者 | 查看者 |
|---|---|---|---|---|
| get | X | X | X | X |
| list | X | X | X | X |
| watch | X | X | X | X |
| update | X | X | X | |
| patch | X | X | X | |
| create | X | X | ||
| delete | X | |||
| deletecollection | X |
| 资源 | 管理员 | 操作者 | 编辑者 | 查看者 |
|---|---|---|---|---|
| clusterrolebindings.rbac.authorization.k8s.io | X | |||
| clusterservicebrokers.servicecatalog.k8s.io (仅查看访问权) | X | X | X | X |
| clusterserviceclasses.servicecatalog.k8s.io (仅查看访问权) | X | X | X | X |
| clusterserviceplans.servicecatalog.k8s.io (仅查看访问权) | X | X | X | X |
| configmaps | X | X | X | X |
| cronjobs.batch | X | X | X | X |
| daemonsets.apps | X | X | X | X |
| daemonsets.extensions | X | X | X | X |
| deployments.apps | X | X | X | X |
| deployments.extensions | X | X | X | X |
| deployments.apps/rollback | X | X | X | |
| deployments.extensions/rollback | X | X | X | |
| deployments.apps/scale | X | X | X | X |
| deployments.extensions/scale | X | X | X | X |
| endpoints | X | X | X | X |
| events | X | X | X | X |
| horizontalpodautoscalers.autoscaling | X | X | X | X |
| images.icp.ibm.com | X | X | X | X |
| ingresses.extensions | X | X | X | X |
| jobs.batch | X | X | X | X |
| limitranges | X | X | X | X |
| localsubjectaccessreviews.authorization.k8s.io | X | |||
| namespaces | X | X | X | X |
| namespaces/status | X | X | X | X |
| networkpolicies.extensions | X | X | X | X |
| networkpolicies.networking.k8s.io | X | X | X | X |
| persistentvolumeclaims | X | X | X | X |
| poddisruptionbudgets.policy | X | |||
| pods | X | X | X | X |
| pods/attach | X | X | X | |
| pods/exec | X | X | X | |
| pods/log | X | X | X | X |
| pods/portforward | X | X | X | |
| pods/proxy | X | X | X | |
| pods/status | X | X | X | X |
| replicasets.apps | X | X | X | X |
| replicasets.extensions | X | X | X | X |
| replicasets.apps/scale | X | X | X | X |
| replicasets.extensions/scale | X | X | X | X |
| replicationcontrollers | X | X | X | X |
| replicationcontrollers/scale | X | X | X | X |
| replicationcontrollers.extensions/scale | X | X | X | X |
| replicationcontrollers/status | X | X | X | X |
| resourcequotas | X | X | X | X |
| resourcequotas/status | X | X | X | X |
| rolebindings.rbac.authorization.k8s.io | X | |||
| roles.rbac.authorization.k8s.io | X | |||
| scheduledjobs.batch | X | |||
| secrets | X | X | X | |
| serviceaccounts | X | X | X | X |
| servicebindings.servicecatalog.k8s.io | X | X | X | X |
| servicebindings.servicecatalog.k8s.io/status | X | X | X | X |
| serviceinstances.servicecatalog.k8s.io | X | X | X | X |
| serviceinstances.servicecatalog.k8s.io/status | X | X | X | X |
| services | X | X | X | |
| services/proxy | X | X | X | X |
| statefulsets.apps | X | X | X | X |