IBM Cloud Docs
了解 RBAC 许可权

了解 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 角色绑定所作的更改不会在更新时保留。

vieweditadmincluster-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 服务访问角色时,会自动创建 vieweditadmincluster-admin 群集角色。 需要集群访问策略的详细程度高于这些预定义许可权所允许的详细程度吗? 没问题! 您可以创建定制 RBAC 角色和集群角色。

您可以将定制 RBAC 角色和集群角色分配给个别用户,用户组或服务帐户。 为组创建绑定时,会影响添加到组中或从组中除去的任何用户。 将用户添加到组时,除了您授予用户的任何单个访问权之外,他们还会获得组的访问权。 如果从组中除去用户,那么将撤销其访问权。 请注意,您无法向访问组添加服务帐户。

如果要为在 pod 中运行的容器进程(如持续交付工具链)分配访问权限,可以使用 Kubernetes ServiceAccounts. 要了解如何为 Travis 和 Jenkins 设置服务账户并为服务账户分配自定义 RBAC 角色的教程,请参阅博文 Kubernetes ServiceAccounts,以便在自动化系统中使用

为防止破坏性更改,请勿更改预定义的 view, edit, admincluster-admin 群集角色。 自定义 RBAC 角色是 IBM Cloud IAM 服务访问角色的补充,不会更改或覆盖您可能已分配的任何 RBAC 角色。

  • 名称空间访问权:要允许用户、访问组或服务帐户访问特定名称空间中的资源,请选择下列其中一个组合:

    • 创建角色,然后通过角色绑定来应用该角色。 要控制对仅在一个名称空间(如应用程序部署)中存在的唯一资源的访问,此选项非常有用。
    • 创建集群角色,然后通过角色绑定来应用该角色。 要控制对一个名称空间中常规资源(如 pod)的访问,此选项非常有用。
  • 集群范围的访问权:要允许用户或访问组访问集群范围的资源或访问所有名称空间中的资源,请创建集群角色,然后通过集群角色绑定来应用该角色。 要控制对未将作用域限定为名称空间的资源(如工作程序节点)的访问,或控制对集群中所有名称空间中资源(如每个名称空间中的 pod)的访问,此选项非常有用。

  • 登录您的账户。 如果适用,请将相应的资源组设定为目标。 设置集群的上下文。

  • 确保您拥有所有命名空间的 管理器 IAM 服务访问角色

  • 要为单个用户或访问组中的用户分配访问权限,请确保该用户或访问组已在 IBM Cloud Kubernetes Service 服务级别上分配了至少一个 IAM 平台访问角色。

要创建自定义 RBAC 权限、

  1. 创建类似于以下内容的 .yaml 文件以定义 rolecluster 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"
  2. 在集群中创建角色或集群角色。

    kubectl apply -f my_role.yaml
    
  3. 验证角色或集群角色是否已创建。

    • 角色:
      kubectl get roles -n <namespace>
      
    • 集群角色:
      kubectl get clusterroles
      
  4. 通过创建 .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 为特定命名空间 RoleClusterRole
    • 对于集群范围的 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
    • 对于 UserGroup :使用 rbac.authorization.k8s.io
    • 对于 ServiceAccount:请勿包含此字段。
    subjects.namespace 仅限 ServiceAccount:指定要将服务帐户部署到的 Kubernetes 名称空间的名称。
    roleRef.kind 在角色 kind 文件中输入与 .yaml 相同的值:RoleClusterRole
    roleRef.name 输入角色 .yaml 文件的名称。
    roleRef.apiGroup 使用 rbac.authorization.k8s.io
  5. 在集群中创建角色绑定或集群角色绑定资源。

    kubectl apply -f my_role_binding.yaml
    
  6. 验证绑定是否已创建。

    kubectl get rolebinding -n <namespace>
    
  7. (可选)要强制将相同的用户访问级别应用于其他名称空间,可以将这些角色或集群角色的角色绑定复制到其他名称空间。

    1. 将角色绑定从一个名称空间复制到其他名称空间。
      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 -
      
    2. 验证角色绑定是否已复制。 如果已将 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"

开始之前 登录您的账户。 如果适用,请将相应的资源组设定为目标。 设置集群的上下文。

  1. 创建集群角色 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 输入集群角色的名称。请勿 使用预定义的集群角色名称: vieweditadmincluster-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"
  2. 在集群中创建集群角色。 现在,具有 admin 集群角色的角色绑定的任何用户都具有 view-pod-metrics 集群角色的其他许可权。

    kubectl apply -f <cluster_role_file.yaml>
    
  3. 跟进具有 admin 集群角色的用户。 要求他们刷新集群配置并测试操作,例如 kubectl top pods

检查 RBAC 角色

验证定制 RBAC 或同步 IAM 服务对 IBM Cloud Kubernetes Service 集群中 RBAC 角色的访问权。

从 UI 检查 RBAC 角色

  1. 登录控制台

  2. 单击具有要检查的 RBAC 角色的集群。

  3. 单击 Kubernetes 控制面板

    如果您只有专用网络集群,那么可能无法打开仪表板,除非您在 VPN 上。 请参阅 通过私有云服务端点访问集群

  4. 集群 部分中,查看 集群角色绑定集群角色角色绑定角色

使用 CLI 检查 RBAC 角色

  1. 登录您的账户。 如果适用,请将相应的资源组设定为目标。 设置集群的上下文。

  2. 检查用户是否已添加到 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 资源许可权
服务访问角色 相应的 RBAC 角色、绑定和作用域 Kubernetes 资源许可权
读取者角色 作用域限定为一个名称空间时: view 由该名称空间中的 ibm-view 角色绑定应用的集群角色。
-作用域限定为所有名称空间时: view 由集群的每个名称空间中的 ibm-view 角色绑定应用的集群角色。 您还可以在 IBM Cloud 控制台和 CLI 中查看集群。
-对名称空间中资源的读访问权
-对角色和角色绑定或 Kubernetes 私钥
没有读访问权-访问 Kubernetes 仪表板以查看名称空间中的资源。
写入者角色 当作用域为一个命名空间时: edit 群集角色应用的 ibm-edit 角色绑定应用的集群角色。

当作用域为所有命名空间时:edit 集群角色通过 ibm-edit 角色绑定应用于群集的每个名称空间

  • 对名称空间中资源的读/写访问权限
  • 对角色和角色绑定没有读/写访问权限<
  • 访问 Kubernetes 控制面板查看名称空间中的资源。
管理者角色 作用域限定为一个名称空间时: admin 由该名称空间中的 ibm-operate 角色绑定应用的集群角色

作用域限定为所有名称空间时: cluster-admin 由适用于所有名称空间的 ibm-admin 集群角色绑定应用的集群角色

当作用域为一个命名空间时:

  • 对命名空间中所有资源的读/写访问权限,但不能访问资源配额或命名空间本身
  • 在命名空间中创建 RBAC 角色和角色绑定
  • 访问 Kubernetes 面板,查看命名空间中的所有资源
    当作用域为所有命名空间时:
  • 对每个命名空间中所有资源的读/写访问
  • 在命名空间中创建 RBAC 角色和角色绑定,或在所有命名空间中创建群集角色和群集角色绑定
  • 访问 Kubernetes 控制面板
  • 创建可公开提供应用程序的 Ingress 资源
  • 查看群集指标,如使用 kubectl top podskubectl top nodeskubectl get nodes 命令
  • 创建和更新有权限和无权限(受限)的 pod

每个 RBAC 角色的 Kubernetes 资源许可权

分配有 IBM Cloud IAM 服务访问角色的每个用户还会自动分配有相应的预定义 Kubernetes 基于角色的访问控制 (RBAC) 角色。 如果计划管理您自己的定制 Kubernetes RBAC 角色,请参阅为用户、组或服务帐户创建定制 RBAC 许可权。 有关用户名详细信息,请参阅 IBM Cloud 针对 RBAC 用户的 IAM 颁发者详细信息

想了解您是否具有对名称空间中的某个资源运行特定 kubectl 命令的正确许可权? 尝试 kubectl auth can-i 命令

下表显示了每个 RBAC 角色授予的对单个 Kubernetes 资源的许可权。 权限显示为具有该角色的用户可以针对资源完成的 verbs (或操作),如“获取”、“列表”、“描述”、“创建”或“删除”。

每个预定义 RBAC 角色授予的 Kubernetes 资源许可权
Kubernetes 资源 view edit admincluster-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 作用域限定为名称空间: 无

cluster-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 服务器进行认证的集群中构建自动化工具,那么可以使用此信息。

IBM Cloud 针对 RBAC 用户的 IAM 签发者详细信息
版本 签发者 声明 大小写 *
Kubernetes https://iam.cloud.ibm.com/identity realmed_sub_<account_ID> 小写的

*: 小写的示例为 user.name@company.com。 骆驼案例的一个示例是 User.Name@company.com