了解 RBAC 许可权
IAM 服务访问角色对应于 IBM Cloud Kubernetes Service 集群中基于 Kubernetes 角色的访问控制 (RBAC)。 RBAC 角色和集群角色定义了用户与集群中 Kubernetes 资源进行交互所需的一组许可权。
通过 IBM Cloud IAM,您可以通过分配用户 IAM 服务访问角色,从 IBM Cloud自动管理 RBAC。 您可能希望更深入地了解 RBAC 以定制集群中资源 (例如服务帐户) 的访问权。
- 无法为服务帐户分配 IBM Cloud IAM 角色。 可以改为直接为服务帐户分配 RBAC 角色。
- 用户必须运行
ibmcloud ks cluster config
命令才能使其角色更改生效。
RBAC 角色的类型是什么?
- Kubernetes 角色 的作用域限定为特定名称空间 (例如部署或服务) 中的资源。
- Kubernetes _集群角色的作用域_是整个集群的资源(如工作者节点),或在每个命名空间中都能找到的命名空间作用域资源(如 pod)。
什么是 RBAC 角色绑定和群集角色绑定?
角色绑定将 RBAC 角色或集群角色应用于特定名称空间。 使用角色绑定来应用角色时,即授予用户对特定名称空间中特定资源的访问权。 使用角色绑定来应用集群角色时,即授予用户对可在每个名称空间中找到的作用域限定为名称空间的资源(如 pod)的访问权,但仅限于访问该特定名称空间内的资源。
集群角色绑定将 RBAC 集群角色应用于集群中的所有名称空间。 使用集群角色绑定来应用集群角色时,即授予用户对集群范围资源(如工作程序节点)的访问权,或授予用户对每个名称空间中作用域限定为名称空间的资源(如 pod)的访问权。
这些角色在我的群集中是什么样的?
如果希望用户能够从群集内与 Kubernetes 资源交互,则必须通过 IBM Cloud IAM 服务访问角色 为一个或多个命名空间分配用户访问权限。 每个被分配了服务访问角色的用户都会被自动分配一个相应的 RBAC 集群角色。 这些 RBAC 集群角色是预定义的,并允许用户与集群中的 Kubernetes 资源进行交互。 此外,还会创建角色绑定以将集群角色应用于特定名称空间,或创建集群角色绑定以将集群角色应用于所有名称空间。
要进一步了解每个 RBAC 角色允许的操作,请查看 IBM Cloud IAM 服务访问角色参考主题。 要查看每个 RBAC 角色授予的对单个 Kubernetes 资源的许可权,请查看每个 RBAC 角色的 Kubernetes 资源许可权。
能否创建自定义角色或群集角色?
如果要创建自己的定制 RBAC 策略,请确保不编辑集群中的现有 IBM 角色绑定,或者创建与现有 IBM 绑定同名的定制角色绑定。 您对 IBM提供的 RBAC 角色绑定所作的更改不会在更新时保留。
view
、edit
、admin
和 cluster-admin
群集角色是预定义角色,在为用户分配相应的 IBM Cloud IAM 服务访问角色时会自动创建。 要授予其他 Kubernetes 许可权,可以创建定制 RBAC 许可权。 自定义 RBAC 角色是对服务访问角色分配的任何 RBAC 角色的补充,不会更改或覆盖任何 RBAC
角色。 请注意,要创建定制 RBAC 许可权,您必须具有 IAM 管理者服务访问角色,该角色授予您 cluster-admin
Kubernetes RBAC 角色。 不过,如果你管理自己的自定义 Kubernetes RBAC 角色,其他用户就不需要 IAM 服务访问角色了。
何时需要使用定制集群角色绑定和角色绑定?
您可能希望授权谁可以在集群中创建和更新 pod。 通过 pod 安全策略 (PSP),您可以使用群集自带的现有群集角色绑定,也可以创建自己的角色绑定。
您可能还希望将附加组件集成到集群。 例如,当您 在集群中设置 Helm 时
为用户、组或服务帐户创建定制 RBAC 许可权
分配相应的 IBM Cloud IAM 服务访问角色时,会自动创建 view
、edit
、admin
和 cluster-admin
群集角色。 需要集群访问策略的详细程度高于这些预定义许可权所允许的详细程度吗? 没问题! 您可以创建定制 RBAC 角色和集群角色。
您可以将定制 RBAC 角色和集群角色分配给个别用户,用户组或服务帐户。 为组创建绑定时,会影响添加到组中或从组中除去的任何用户。 将用户添加到组时,除了您授予用户的任何单个访问权之外,他们还会获得组的访问权。 如果从组中除去用户,那么将撤销其访问权。 请注意,您无法向访问组添加服务帐户。
如果要为在 pod 中运行的容器进程(如持续交付工具链)分配访问权限,可以使用 Kubernetes ServiceAccounts
. 要了解如何为 Travis 和 Jenkins 设置服务账户并为服务账户分配自定义
RBAC 角色的教程,请参阅博文 Kubernetes ServiceAccounts
,以便在自动化系统中使用。
为防止破坏性更改,请勿更改预定义的 view
, edit
, admin
和 cluster-admin
群集角色。 自定义 RBAC 角色是 IBM Cloud IAM 服务访问角色的补充,不会更改或覆盖您可能已分配的任何 RBAC 角色。
-
名称空间访问权:要允许用户、访问组或服务帐户访问特定名称空间中的资源,请选择下列其中一个组合:
- 创建角色,然后通过角色绑定来应用该角色。 要控制对仅在一个名称空间(如应用程序部署)中存在的唯一资源的访问,此选项非常有用。
- 创建集群角色,然后通过角色绑定来应用该角色。 要控制对一个名称空间中常规资源(如 pod)的访问,此选项非常有用。
-
集群范围的访问权:要允许用户或访问组访问集群范围的资源或访问所有名称空间中的资源,请创建集群角色,然后通过集群角色绑定来应用该角色。 要控制对未将作用域限定为名称空间的资源(如工作程序节点)的访问,或控制对集群中所有名称空间中资源(如每个名称空间中的 pod)的访问,此选项非常有用。
-
确保您拥有所有命名空间的 管理器 IAM 服务访问角色。
-
要为单个用户或访问组中的用户分配访问权限,请确保该用户或访问组已在 IBM Cloud Kubernetes Service 服务级别上分配了至少一个 IAM 平台访问角色。
要创建自定义 RBAC 权限、
-
创建类似于以下内容的
.yaml
文件以定义role
或cluster role
。kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: default name: my_role rules: - apiGroups: [""] resources: ["pods"] verbs: ["get", "watch", "list"] - apiGroups: ["apps", "extensions"] resources: ["daemonsets", "deployments"] verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
了解 YAML 参数 参数 描述 kind
使用 Role
来授予对特定名称空间中资源的访问权。 使用ClusterRole
来授予对集群范围资源(如工作程序节点)的访问权,或授予对所有名称空间中作用域限定为名称空间的资源(如 pod)的访问权。metadata.namespace
仅限 kind 为 Role
的情况:指定授予其访问权的 Kubernetes 名称空间。rules.apiGroups
指定希望用户能够与之交互的 Kubernetes API 组,如 "apps"
,"batch"
或"extensions"
。 要访问 REST 路径api/v1
上的核心 API 组,请将该组保留为空:[""]
。rules.resources
指定要授予访问权限的 Kubernetes 资源类型,如 "daemonsets"
,"deployments"
,"events"
或"ingresses"
。 如果指定"nodes"
,那么 kind 必须为ClusterRole
。rules.verbs
指定希望用户能够执行的 操作类型,如 "get"
,"list"
,"describe"
,"create"
或"delete"
。 -
在集群中创建角色或集群角色。
kubectl apply -f my_role.yaml
-
验证角色或集群角色是否已创建。
- 角色:
kubectl get roles -n <namespace>
- 集群角色:
kubectl get clusterroles
- 角色:
-
通过创建
.yaml
文件将用户绑定到角色或集群角色。 记下用于每个主体名称的唯一 URL。kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: my_role_binding namespace: default subjects: - kind: User name: IAM#user1@example.com apiGroup: rbac.authorization.k8s.io - kind: Group name: team1 apiGroup: rbac.authorization.k8s.io - kind: ServiceAccount name: <service_account_name> namespace: <kubernetes_namespace> roleRef: kind: Role name: my_role apiGroup: rbac.authorization.k8s.io
了解 YAML 参数 参数 描述 kind
- 指定
RoleBinding
为特定命名空间Role
或ClusterRole
。 - 对于集群范围的
ClusterRoleBinding
,指定ClusterRole
。
apiVersion
- 对于运行 Kubernetes 1.8 或更高版本的群集,请使用
rbac.authorization.k8s.io/v1
。 - 对于更早的版本,请使用
apiVersion: rbac.authorization.k8s.io/v1beta1
。
metadata.namespace
- 对于
RoleBinding
类型:指定允许访问的 Kubernetes 命名空间。 - 对于 kind 为
ClusterRoleBinding
的情况:请勿使用namespace
字段。
metadata.name
对角色绑定或集群角色绑定命名。 subjects.kind
指定以下类型之一:
User
: 将 RBAC 角色或集群角色绑定到帐户中的单个用户。Group
: 将 RBAC 角色或集群角色绑定到帐户中的 IBM Cloud IAM 访问组 。ServiceAccount
: 将 RBAC 角色或集群角色绑定到集群中的名称空间中的服务帐户。
subjects.name
- 对于
User
:将个人用户的电子邮件地址追加到IAM#
,如下所示:IAM#user@email.com
. - 对于
Group
: 指定帐户中 IBM Cloud IAM 访问组 的名称。 - 对于
ServiceAccount
:指定服务帐户名称。
subjects.apiGroup
- 对于
User
或Group
:使用rbac.authorization.k8s.io
。 - 对于
ServiceAccount
:请勿包含此字段。
subjects.namespace
仅限 ServiceAccount
:指定要将服务帐户部署到的 Kubernetes 名称空间的名称。roleRef.kind
在角色 kind
文件中输入与.yaml
相同的值:Role
或ClusterRole
。roleRef.name
输入角色 .yaml
文件的名称。roleRef.apiGroup
使用 rbac.authorization.k8s.io
。 - 指定
-
在集群中创建角色绑定或集群角色绑定资源。
kubectl apply -f my_role_binding.yaml
-
验证绑定是否已创建。
kubectl get rolebinding -n <namespace>
-
(可选)要强制将相同的用户访问级别应用于其他名称空间,可以将这些角色或集群角色的角色绑定复制到其他名称空间。
- 将角色绑定从一个名称空间复制到其他名称空间。
例如,将kubectl get rolebinding <role_binding_name> -o yaml | sed 's/<namespace_1>/<namespace_2>/g' | kubectl -n <namespace_2> create -f -
custom-role
角色绑定从default
命名空间复制到testns
命名空间。kubectl get rolebinding custom-role -o yaml | sed 's/default/testns/g' | kubectl -n testns create -f -
- 验证角色绑定是否已复制。 如果已将 IBM Cloud IAM 访问组添加到角色绑定,那么会分别添加该组中的每个用户,而不会作为访问组标识添加。
kubectl get rolebinding -n <namespace_2>
- 将角色绑定从一个名称空间复制到其他名称空间。
既然您已创建并绑定了定制 Kubernetes RBAC 角色或集群角色,就应该让用户进行操作。 要求用户测试根据其角色有权完成的操作,例如删除 pod。
通过聚集集群角色扩展现有许可权
可以通过聚集或组合集群角色及其他集群角色,扩展用户的现有许可权。 为用户分配 IBM Cloud 服务访问角色时,该用户会被添加到 相应的 Kubernetes RBAC 集群角色中。 但是,您可能希望允许特定用户执行其他操作。
例如,具有命名空间范围 admin
群集角色的用户无法使用 kubectl top pods
命令查看命名空间中所有 pod 的 pod 指标。 您可以聚集集群角色,以便 admin
集群角色中的用户有权运行 top pods
命令。 更多信息,请参阅 Kubernetes 文档。
有哪些常见操作可能需要扩展默认群集角色的权限?
请查看每个缺省 RBAC 集群角色允许的操作,以了解用户可以执行的操作,然后将允许的操作与您希望用户能够执行的操作进行比较。
如果同一集群角色中的用户对于同一类型的操作遇到类似以下内容的错误,那么您可能需要扩展集群角色以包含此操作。
Error from server (Forbidden): pods.metrics.k8s.io is forbidden: User "IAM#myname@example.com" can't list resource "pods" in API group "metrics.k8s.io" in the namespace "mynamespace"
开始之前 登录您的账户。 如果适用,请将相应的资源组设定为目标。 设置集群的上下文。
-
创建集群角色 YAML 文件。 在
labels
部分中,指定要将许可权聚集到的现有集群角色。 以下示例扩展了预定义的admin
集群角色,以允许用户运行kubectl top pods
。 有关更多示例,请参阅 Kubernetes 文档。apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: view-pod-metrics labels: rbac.authorization.k8s.io/aggregate-to-admin: "true" rules: - apiGroups: - "metrics.k8s.io" resources: - pods verbs: - list
了解 YAML 参数 参数 描述 metadata.name
输入集群角色的名称。请勿 使用预定义的集群角色名称: view
,edit
,admin
和cluster-admin
。metadata.labels
添加与要聚合到的群集角色相匹配的标签,格式为
rbac.authorization.k8s.io/aggregate-to-<cluster_role>: "true"
。 预定义群组角色的标签如下。- IAM 管理者 服务访问角色,作用域限定为名称空间:
rbac.authorization.k8s.io/aggregate-to-admin: "true"
- IAM 写程序 服务访问角色:
rbac.authorization.k8s.io/aggregate-to-edit: "true"
- IAM 读者 服务访问角色:
rbac.authorization.k8s.io/aggregate-to-view: "true"
rules.apiGroups
指定希望用户能够与之交互的 Kubernetes API 组,如 "apps"
,"batch"
或"extensions"
。 要访问 REST 路径api/v1
上的核心 API 组,请将该组保留为空:[""]
。rules.resources
指定要授予访问权限的 Kubernetes 资源类型,如 "daemonsets"
,"deployments"
,"events"
或"ingresses"
。rules.verbs
指定希望用户能够执行的 操作类型,如 "get"
,"list"
,"describe"
,"create"
或"delete"
。 - IAM 管理者 服务访问角色,作用域限定为名称空间:
-
在集群中创建集群角色。 现在,具有
admin
集群角色的角色绑定的任何用户都具有view-pod-metrics
集群角色的其他许可权。kubectl apply -f <cluster_role_file.yaml>
-
跟进具有
admin
集群角色的用户。 要求他们刷新集群配置并测试操作,例如kubectl top pods
。
检查 RBAC 角色
验证定制 RBAC 或同步 IAM 服务对 IBM Cloud Kubernetes Service 集群中 RBAC 角色的访问权。
从 UI 检查 RBAC 角色
-
单击具有要检查的 RBAC 角色的集群。
-
单击 Kubernetes 控制面板。
如果您只有专用网络集群,那么可能无法打开仪表板,除非您在 VPN 上。 请参阅 通过私有云服务端点访问集群。
-
从 集群 部分中,查看 集群角色绑定,集群角色,角色绑定和 角色。
使用 CLI 检查 RBAC 角色
-
检查用户是否已添加到 RBAC 角色。 如果用户拥有更高的权限,则不会将其添加到角色绑定中。 例如,如果用户具有集群角色并且处于集群角色绑定中,那么也不会将其添加到每个单独的名称空间角色绑定。
您必须是集群管理员(所有命名空间中的 Manager 服务访问角色)才能检查角色绑定和集群角色绑定。
- 读取者:
kubectl get rolebinding ibm-view -o yaml -n <namespace>
- 写入者:
kubectl get rolebinding ibm-edit -o yaml -n <namespace>
- 管理者,作用域限定为名称空间:
kubectl get rolebinding ibm-operate -o yaml -n <namespace>
- 管理者,所有名称空间:
kubectl get clusterrolebinding ibm-admin -o yaml
- 读取者:
示例输出
如果为用户 user@email.com
和访问组 team1
分配 读者 服务访问角色,然后运行 kubectl get rolebinding ibm-view -o yaml -n default
,那么将获得以下示例输出。
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
creationTimestamp: 2018-05-23T14:34:24Z
name: ibm-view
namespace: default
resourceVersion: "8192510"
selfLink: /apis/rbac.authorization.k8s.io/v1/namespaces/default/rolebindings/ibm-view
uid: 63f62887-5e96-11e8-8a75-b229c11ba64a
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: view
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: User
name: IAM#user@email.com
- apiGroup: rbac.authorization.k8s.io
kind: group
name: team1
Kubernetes 服务访问角色和相应的 RBAC 角色
下表显示了每个服务访问角色及其对应的 RBAC 角色授予的 Kubernetes 资源权限。
服务访问角色 | 相应的 RBAC 角色、绑定和作用域 | Kubernetes 资源许可权 |
---|---|---|
读取者角色 | 作用域限定为一个名称空间时: view 由该名称空间中的 ibm-view 角色绑定应用的集群角色。-作用域限定为所有名称空间时: view 由集群的每个名称空间中的 ibm-view 角色绑定应用的集群角色。 您还可以在
IBM Cloud 控制台和 CLI 中查看集群。 |
-对名称空间中资源的读访问权 -对角色和角色绑定或 Kubernetes 私钥 没有读访问权-访问 Kubernetes 仪表板以查看名称空间中的资源。 |
写入者角色 | 当作用域为一个命名空间时: edit 群集角色应用的 ibm-edit 角色绑定应用的集群角色。
当作用域为所有命名空间时: |
|
管理者角色 | 作用域限定为一个名称空间时: admin 由该名称空间中的 ibm-operate 角色绑定应用的集群角色
作用域限定为所有名称空间时: |
当作用域为一个命名空间时:
|
每个 RBAC 角色的 Kubernetes 资源许可权
分配有 IBM Cloud IAM 服务访问角色的每个用户还会自动分配有相应的预定义 Kubernetes 基于角色的访问控制 (RBAC) 角色。 如果计划管理您自己的定制 Kubernetes RBAC 角色,请参阅为用户、组或服务帐户创建定制 RBAC 许可权。 有关用户名详细信息,请参阅 IBM Cloud 针对 RBAC 用户的 IAM 颁发者详细信息。
想了解您是否具有对名称空间中的某个资源运行特定 kubectl
命令的正确许可权? 尝试 kubectl auth can-i
命令。
下表显示了每个 RBAC 角色授予的对单个 Kubernetes 资源的许可权。 权限显示为具有该角色的用户可以针对资源完成的 verbs
(或操作),如“获取”、“列表”、“描述”、“创建”或“删除”。
Kubernetes 资源 | view |
edit |
admin 和 cluster-admin |
---|---|---|---|
bindings |
get,list 和 watch | get,list 和 watch | get,list,watch cluster-admin only: create,delete,update |
configmaps |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
cronjobs.batch |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
daemonsets.apps |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
daemonsets.extensions |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
deployments.apps |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
deployments.apps/rollback |
|
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
deployments.apps/scale |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
deployments.extensions |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
deployments.extensions/rollback |
|
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
deployments.extensions/scale |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
endpoints |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
events |
get,list 和 watch | get,list 和 watch | get,list 和 watch |
horizontalpodautoscalers.autoscaling |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
ingresses.extensions |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
jobs.batch |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
limitranges |
get,list 和 watch | get,list 和 watch | get,list 和 watch |
localsubjectaccessreviews |
|
|
create |
namespaces |
get,list 和 watch | get,list 和 watch | get,list,只监视 cluster-admin: create,delete |
namespaces/status |
get,list 和 watch | get,list 和 watch | get,list 和 watch |
networkpolicies |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
networkpolicies.extensions |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
node |
无 | 无 | admin 作用域限定为名称空间: 无
|
persistentvolume |
无 | 无 | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
persistentvolumeclaims |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
poddisruptionbudgets.policy |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
pods |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、top 、修补、更新、监视 |
pods/attach |
|
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
pods/exec |
|
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
pods/log |
get,list 和 watch | get,list 和 watch | get,list 和 watch |
pods/portforward |
|
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
pods/proxy |
|
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
pods/status |
get,list 和 watch | get,list 和 watch | get,list 和 watch |
replicasets.apps |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
replicasets.apps/scale |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
replicasets.extensions |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
replicasets.extensions/scale |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
replicationcontrollers |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
replicationcontrollers/scale |
get,list 和 watch | cr}ate, delete, deletecollection , get, list, patch, update, watch |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
replicationcontrollers/status |
get,list 和 watch | get,list 和 watch | get,list 和 watch |
replicationcontrollers.extensions/scale |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
resourcequotas |
get,list 和 watch | get,list 和 watch | get,list 和 watch |
resourcequotas/status |
get,list 和 watch | get,list 和 watch | get,list 和 watch |
rolebindings |
|
|
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
roles |
|
|
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
secrets |
|
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
serviceaccounts |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视、impersonate |
创建、删除、deletecollection 、获取、列表、修补、更新、监视、impersonate |
services |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
services/proxy |
|
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
statefulsets.apps |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
statefulsets.apps/scale |
get,list 和 watch | 创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
创建、删除、deletecollection 、获取、列表、修补、更新、监视 |
IBM Cloud 针对 RBAC 用户的 IAM 签发者详细信息
对 IAM 中的 IBM Cloud Kubernetes Service 具有服务访问角色的用户将获得 RBAC 中的相应用户角色。 RBAC 用户详细信息包括唯一签发者标识,主题标识声明和 Kubernetes 用户名。 这些详细信息因集群的 Kubernetes 版本而异。 从先前版本更新集群时,将自动更新详细信息。 RBAC 用户名以 IAM#
作为前缀。 有关 OpenID 认证如何工作的更多信息,请参阅
Kubernetes 文档。
如果您在依赖于用户详细信息向 Kubernetes API 服务器进行认证的集群中构建自动化工具,那么可以使用此信息。
版本 | 签发者 | 声明 | 大小写 * |
---|---|---|---|
Kubernetes | https://iam.cloud.ibm.com/identity |
realmed_sub_<account_ID> |
小写的 |
*
: 小写的示例为 user.name@company.com
。 骆驼案例的一个示例是 User.Name@company.com
。