Visión general de los permisos de RBAC

Las funciones de acceso al servicio IAM se corresponden con el control de acceso basado en funciones (RBAC) de Kubernetes dentro de los clústeres de IBM Cloud Kubernetes Service. Los roles de RBAC y los roles de clúster definen un conjunto de permisos para determinar la forma en que los usuarios pueden interactuar con los recursos de Kubernetes en el clúster.

Con IAM de IBM Cloud, puedes gestionar automáticamente el RBAC desde IBM Cloud, asignando a los usuarios roles de acceso al servicio IAM. Es posible que desee tener una comprensión más detallada de RBAC para personalizar el acceso a los recursos dentro del clúster, como las cuentas de servicio.

  • Los roles de IBM Cloud IAM no se pueden asignar a una cuenta de servicio. En lugar de ello, puede asignar roles RBAC a las cuentas de servicio directamente.
  • Los usuarios deben ejecutar el mandato ibmcloud ks cluster config para que se apliquen sus cambios de rol.

¿Cuáles son los tipos de roles de RBAC?

  • El ámbito de un rol de Kubernetes se limita a los recursos de un determinado espacio de nombres, como un despliegue o un servicio.
  • El ámbito de un rol de clúster de Kubernetes se limita a los recursos a nivel de clúster como, por ejemplo, nodos de trabajador, o bien a los recursos del espacio de nombres que pueden encontrarse en cada espacio de nombres como, por ejemplo, pods.

¿Qué son los enlaces de roles RBAC y los enlaces de roles de clúster?

Los enlaces de rol aplican los roles RBAC o los roles de clúster a un espacio de nombres específico. Cuando utiliza un enlace de rol para aplicar un rol, asigna a un usuario acceso a un recurso específico en un espacio de nombres específico. Cuando utiliza un enlace de rol para aplicar un rol de clúster, asigna a un usuario acceso a los recursos del ámbito de un espacio de nombres que se encuentran en cada espacio de nombres, como pods, pero solo dentro de un espacio de nombres específico.

Los enlaces de rol de clúster aplican roles de clúster RBAC a todos los espacios de nombres del clúster. Cuando utiliza un enlace de rol de clúster para aplicar un rol de clúster, da a un usuario acceso a los recursos del clúster, como nodos trabajadores, o a los recursos del ámbito del espacio de nombres en cada espacio de nombres, como pods.

¿Cómo se ven estos roles en mi clúster?

Si desea que los usuarios puedan interactuar con recursos de Kubernetes desde dentro de un clúster, debe asignar acceso de usuario a uno o más espacios de nombres mediante los roles de acceso al servicio de IBM Cloud IAM. A cada usuario que tenga asignado un rol de acceso al servicio se le asigna automáticamente un rol de clúster de RBAC correspondiente. Estos roles de clúster RBAC están predefinidos y permiten a los usuarios interactuar con los recursos de Kubernetes del clúster. Además, se crea un enlace de rol para aplicar el rol de clúster a un espacio de nombres específico, o se crea un enlace de rol de clúster para aplicar el rol de clúster a todos los espacios de nombres.

Para obtener más información sobre las acciones permitidas por cada rol de RBAC, consulta el tema de referencia «Roles de acceso al servicio IAM de IBM Cloud ». Para ver los permisos que otorga cada rol de RBAC a recursos de Kubernetes individuales, consulte Permisos de recursos de Kubernetes por rol de RBAC.

¿Puedo crear roles personalizados o roles de clúster?

Si está creando sus propias políticas RBAC personalizadas, asegúrese de que no edita los enlaces de rol de IBM existentes que están en el clúster, o cree enlaces de rol personalizados con el mismo nombre que los enlaces de IBM existentes. Los cambios que realice en los enlaces de rol RBAC proporcionados por IBMno se conservan en las actualizaciones.

Los roles de clúster view, edit, admin y cluster-admin son roles predefinidos que se crean automáticamente cuando asigna a un usuario el correspondiente rol de acceso al servicio de IBM Cloud IAM. Para otorgar otros permisos de Kubernetes, puede crear permisos RBAC personalizados. Los roles RBAC personalizados se suman a los roles RBAC que puedas tener con los roles de acceso al servicio, sin modificarlos ni anularlos. Nota: para crear permisos RBAC personalizados, debe disponer del rol de acceso al servicio IAM Manager o del rol de administrador de la plataforma, que le otorga el rol RBAC Kubernetescluster-admin. Sin embargo, los demás usuarios no necesitan un rol de acceso de servicio de IAM si gestiona sus propios roles de RBAC personalizados de Kubernetes.

¿Cuándo necesito utilizar enlaces de rol de clúster personalizados y enlaces de rol?

Es posible que desee autorizar quién puede crear y actualizar los pods en el clúster. Con las políticas de seguridad de pods (PSP), puede utilizar los enlaces de roles de clúster existentes que vienen con su clúster o crear los suyos propios.

Es posible que también desee integrar complementos en el clúster. Por ejemplo, al configurar Helm en tu clúster.

Creación de permisos RBAC personalizados para usuarios, grupos o cuentas de servicio

Los roles de clúster view, edit, admin y cluster-admin se crean automáticamente cuando asigna el correspondiente rol de acceso al servicio de IBM Cloud IAM. ¿Necesita que las políticas de acceso de clúster sean más granulares de lo que permiten estos permisos predefinidos? No hay ningún problema. Puede crear roles de clúster y roles RBAC personalizados.

Puede asignar roles RBAC y roles de clúster personalizados a usuarios individuales, grupos de usuarios o cuentas de servicio. Cuando se crea un enlace para un grupo, este afecta a cualquier usuario que se añada o se elimine de dicho grupo. Cuando añade usuarios a un grupo, reciben los derechos de acceso del grupo además de los derechos de acceso individuales que les otorgue. Si se elimina, su acceso se revoca. Ten en cuenta que no se pueden añadir cuentas de servicio a los grupos de acceso.

Si desea asignar acceso a un proceso de contenedor que se ejecuta en pods, como una cadena de herramientas de entrega continua, puede utilizar KubernetesServiceAccounts. Para seguir un tutorial que muestra cómo configurar cuentas de servicio para Travis y Jenkins y cómo asignar roles RBAC personalizados a dichas cuentas, consulta la entrada del blog Kubernetes para ServiceAccounts su uso en sistemas automatizados.

Para evitar cambios de última hora, no cambie los roles de clúster predefinidos de view, edit, admin y cluster-admin. Los roles RBAC personalizados se suman a los roles RBAC que puedas tener con los roles de acceso al servicio IAM de IBM Cloud, sin modificarlos ni anularlos.

  • Acceso a espacios de nombres: Para permitir que un usuario, un grupo de acceso o una cuenta de servicio acceda a un recurso dentro de un espacio de nombres específico, elija una de las combinaciones siguientes:

    • Cree un rol y aplíquelo con un enlace de rol. Esta opción resulta útil para controlar el acceso a un recurso exclusivo que solo existe en un espacio de nombres, como un despliegue de app.
    • Cree un rol de clúster y aplíquelo con un enlace de rol. Esta opción resulta útil para controlar el acceso a recursos generales de un espacio de nombres, como pods.
  • Acceso a clúster: Para permitir que un usuario o un grupo de acceso acceda a los recursos de todo el clúster o a los recursos de clúster de todos los espacios de nombres, cree un rol de clúster y aplíquelo con un enlace de rol de clúster. Esta opción resulta útil para controlar el acceso a recursos que no se circunscriben a espacios de nombres, como nodos trabajadores, o a recursos de todos los espacios de nombres de su clúster, como los pods de cada espacio de nombres.

  • Inicie una sesión en la cuenta. If applicable, target the appropriate resource group. Establezca el contexto para el clúster.

  • Asegúrese de que dispone de la función de acceso al servicio Administrador de IAM para todos los espacios de nombres o de la función Administrador de la plataforma.

  • Para asignar acceso a usuarios individuales o a usuarios de un grupo de acceso, asegúrate de que al usuario o al grupo se le haya asignado al menos un rol de acceso a la plataforma IAM en el nivel de servicio IBM Cloud Kubernetes Service.

Para crear permisos RBAC personalizados,

  1. Cree un archivo .yaml similar al siguiente para definir role o 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"]
    
    Comprender los parámetros YAML
    Parámetro Descripción
    kind Utilice Role para otorgar acceso a los recursos dentro de un espacio de nombres específico. Utilice ClusterRole para otorgar acceso a los recursos de todo el clúster, como nodos trabajadores, o a recursos del ámbito del espacio de nombres, como pods de todos los espacios de nombres.
    metadata.namespace Solo para el tipo Role: especifique el espacio de nombres de Kubernetes al que se otorga acceso.
    rules.apiGroups Especifica los grupos de API de Kubernetes con los que quieres que los usuarios puedan interactuar, como "apps", "batch", o "extensions". Para acceder al grupo de API principal en la vía de acceso de REST api/v1, deje el grupo en blanco: [""].
    rules.resources Especifica los tipos de recursos de Kubernetes a los que deseas conceder acceso, como "daemonsets", "deployments", "events", o "ingresses". Si especifica "nodes", entonces el tipo debe ser ClusterRole.
    rules.verbs Especifique los tipos de acciones que desea que los usuarios puedan realizar, como "get", "list", "describe", "create", o "delete".
  2. Cree el rol o rol de clúster en el clúster.

    kubectl apply -f my_role.yaml
    
  3. Verifique que se ha creado el rol o rol de clúster.

    • Rol:
        kubectl get roles -n <namespace>
        ```
    * Rol de clúster:
    ```sh {: pre}
        kubectl get clusterroles
        ```
    
  4. Enlace usuarios al rol o rol de clúster creando un archivo .yaml. Anote el URL exclusivo que se debe utilizar para el nombre de cada sujeto.

    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
    
    Comprender los parámetros YAML
    Parámetro Descripción
    kind
    • Especifique RoleBinding para un Role o ClusterRole específico de espacio de nombres.
    • Especifique ClusterRoleBinding para un ClusterRole de todo el clúster.
    apiVersion Utilice rbac.authorization.k8s.io/v1.
    metadata.namespace
    • Para el tipo RoleBinding: especifique el espacio de nombres de Kubernetes al que se otorga el acceso.
    • Para el tipo ClusterRoleBinding: no utilice el campo namespace.
    metadata.name Nombre el enlace de rol o del enlace de rol de clúster.
    subjects.kind

    Especifique el tipo como una de las opciones siguientes:

    • User: enlace el rol de RBAC o de clúster con un usuario individual de la cuenta.
    • Group: enlace el rol de RBAC o el rol de clúster con un Grupo de acceso de IBM Cloud IAM en su cuenta.
    • ServiceAccount: enlace el rol de RBAC o el rol de clúster con una cuenta de servicio en un espacio de nombres del clúster.
    subjects.name
    • User: Añada la dirección de correo electrónico del usuario individual a IAM# de la siguiente manera: IAM#user@email.com.
    • Group: Especifique el nombre del grupo de acceso IAM IBM Cloud en su cuenta.
    • Para ServiceAccount: especifique el nombre de la cuenta de servicio.
    subjects.apiGroup
    • User o Group: Utilice rbac.authorization.k8s.io.
    • Para ServiceAccount: no incluya este campo.
    subjects.namespace ServiceAccount solo: Especifica el nombre del espacio de nombres de Kubernetes en el que se ha implementado la cuenta de servicio.
    roleRef.kind Especifique el mismo valor que el de kind en el archivo .yaml de roles: Role o ClusterRole.
    roleRef.name Especifique el nombre del archivo .yaml de roles.
    roleRef.apiGroup Utilice rbac.authorization.k8s.io.
  5. Cree el recurso de enlace de rol o de enlace de rol de clúster en el clúster.

    kubectl apply -f my_role_binding.yaml
    
  6. Verifique que se ha creado el enlace.

    kubectl get rolebinding -n <namespace>
    
  7. Opcional: Para imponer el mismo nivel de acceso de usuario en otros espacios de nombres, puede copiar los enlaces de rol para dichos roles o roles de clúster en otros espacios de nombres.

    1. Copie el enlace de rol de un espacio de nombres a otro espacio de nombres.
        kubectl get rolebinding <role_binding_name> -o yaml | sed 's/<namespace_1>/<namespace_2>/g' | kubectl -n <namespace_2> create -f -
        ```
        Por ejemplo, copie la vinculación de rol `custom-role` del espacio de nombres `default` al espacio de nombres `testns`.
        ```sh {: pre}
        kubectl get rolebinding custom-role -o yaml | sed 's/default/testns/g' | kubectl -n testns create -f -
        ```
    2. Verifique que se copia el enlace de rol. Si ha añadido un grupo de acceso de IBM Cloud IAM al enlace de rol, cada usuario de dicho grupo se añade individualmente, no como un ID de grupo de acceso.
    ```sh {: pre}
        kubectl get rolebinding -n <namespace_2>
        ```
    

Ahora que ha creado y enlazado un rol de RBAC o un rol de clúster de Kubernetes personalizado, siga con los usuarios. Pídales que prueben una acción que tengan permiso para realizar debido al rol, como suprimir un pod.

Ampliación de los permisos existentes mediante la agregación de roles de clúster

Puede ampliar los permisos existentes de los usuarios agregando roles de clúster o combinando roles de clúster con otros roles de clúster. Cuando asigna a un usuario un rol de acceso al servicio de IBM Cloud, el usuario se añade a un rol de clúster RBAC de Kubernetes correspondiente. No obstante, es posible que desee permitir que determinados usuarios realicen más operaciones.

Por ejemplo, un usuario con el rol de clúster admin con ámbito de espacio de nombres no puede utilizar el mandato kubectl top pods para ver las métricas de pod de todos los pods del espacio de nombres. Puede agregar un rol de clúster para que los usuarios con el rol de clúster admin tengan autorización para ejecutar el mandato top pods. Para obtener más información, consulta la documentación de Kubernetes.

¿Cuáles son algunas de las operaciones habituales para las que podría querer ampliar los permisos de un rol de clúster predeterminado?

Revisa las operaciones que permite cada rol predeterminado de RBAC del clúster para hacerte una idea de lo que los usuarios pueden hacer y, a continuación, compara las operaciones permitidas con lo que quieres que puedan hacer.

Si los usuarios con el mismo rol de clúster encuentran errores similares al siguiente para el mismo tipo de operación, es posible que desee ampliar el rol de clúster para incluir esta operación.

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"

Antes de empezar: Inicie una sesión en su cuenta. If applicable, target the appropriate resource group. Establezca el contexto para el clúster.

  1. Cree un archivo YAML de rol de clúster. En la sección labels, especifique el rol de clúster existente al que desea agregar permisos. En el ejemplo siguiente se amplía el rol de clúster admin predefinido para permitir que los usuarios puedan ejecutar kubectl top pods. Para ver más ejemplos, consulta la documentación de 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
    
    Comprender los parámetros YAML
    Parámetro Descripción
    metadata.name Especifique un nombre para el rol de clúster. No utilice los nombres de rol de clúster predefinidos: view, edit, admin y cluster-admin.
    metadata.labels

    Añada una etiqueta que coincida con el rol de clúster que desea agregar en el formato rbac.authorization.k8s.io/aggregate-to-<cluster_role>: "true". Las etiquetas para los roles de clúster predefinidos son las siguientes.

    • Rol de acceso de servicio Gestor de IAM, cuyo ámbito es un espacio de nombres: rbac.authorization.k8s.io/aggregate-to-admin: "true"
    • Rol de acceso de servicio Escritor de IAM: rbac.authorization.k8s.io/aggregate-to-edit: "true"
    • Rol de acceso de servicio Lector de IAM: rbac.authorization.k8s.io/aggregate-to-view: "true"
    rules.apiGroups Especifica los grupos de API de Kubernetes con los que quieres que los usuarios puedan interactuar, como "apps", "batch", o "extensions". Para acceder al grupo de API principal en la vía de acceso de REST api/v1, deje el grupo en blanco: [""].
    rules.resources Especifica los tipos de recursos de Kubernetes a los que deseas conceder acceso, como "daemonsets", "deployments", "events", o "ingresses".
    rules.verbs Especifique los tipos de acciones que desea que los usuarios puedan realizar, como "get", "list", "describe", "create", o "delete".
  2. Cree el rol de clúster en el clúster. Cualquier usuario que tenga una vinculación de rol con el rol de clúster admin dispone ahora de los permisos adicionales del rol de clúster view-pod-metrics.

    kubectl apply -f <cluster_role_file.yaml>
    
  3. Siga a los usuarios que tienen el rol de clúster admin. Solicite que renueven su configuración de clúster y pruebe una acción, como por ejemplo, kubectl top pods.

Comprobación de los roles de RBAC

Verifique el acceso al servicio de IAM sincronizado o RBAC personalizado a los roles de RBAC en el clúster de IBM Cloud Kubernetes Service.

Consulta de los roles RBAC desde la interfaz de usuario

  1. Inicie sesión en la consola.

  2. Pulse el clúster con los roles de RBAC que desee comprobar.

  3. Pulse el Panel de control de Kubernetes.

    Si solo tiene un clúster de red privada, es posible que no pueda abrir el panel de control a menos que esté en una VPN. Consulte Acceso a clústeres a través del punto final de servicio en la nube privado.

  4. En la sección Clúster, revise los Enlaces de rol de clúster, Roles de clúster, Enlaces de rol y Roles.

Consulta de los roles RBAC desde la CLI

  1. Inicie una sesión en la cuenta. If applicable, target the appropriate resource group. Establezca el contexto para el clúster.

  2. Compruebe que el usuario se ha añadido al rol de RBAC. Los usuarios no se añaden a un enlace de rol si tienen un permiso superior. Por ejemplo, si los usuarios tienen un rol de clúster y están en un enlace de rol de clúster, no se añaden también a cada uno de los enlaces de rol de espacio de nombres.

    Debe ser un administrador de clúster para comprobar las vinculaciones de roles y las vinculaciones de roles de clúster. Los administradores de clúster tienen la función de acceso al servicio Gestor en todos los espacios de nombres o la función de acceso a la plataforma Administrador.

    • Lector:
        kubectl get rolebinding ibm-view -o yaml -n <namespace>
        ```
    * Escritor:
    ```sh {: pre}
        kubectl get rolebinding ibm-edit -o yaml -n <namespace>
        ```
    * Gestor, limitado a un espacio de nombres:
    ```sh {: pre}
        kubectl get rolebinding ibm-operate -o yaml -n <namespace>
        ```
    * Gestor, todos los espacios de nombres:
    ```sh {: pre}
        kubectl get clusterrolebinding ibm-admin -o yaml
        ```
    

Salida de ejemplo

Si asigna al usuario user@email.com y al grupo de acceso team1 el rol de acceso de servicio de Lector (Reader) y luego ejecuta kubectl get rolebinding ibm-view -o yaml -n default, obtendrá la siguiente salida de ejemplo.

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

Roles de acceso al servicio de Kubernetes y roles RBAC correspondientes

En la tabla siguiente se muestran los permisos de recursos de Kubernetes que asigna cada rol de acceso al servicio y su rol de RBAC correspondiente.

Permisos de recursos de Kubernetes por servicio y roles de RBAC correspondientes
Rol de acceso de servicio Rol de RBAC correspondiente, vinculación y ámbito Permisos de recursos de Kubernetes
Rol de lector

Cuando su ámbito se limita a un espacio de nombres: rol de clúster view aplicado por el enlace de rol ibm-view en ese espacio de nombres.

  • Cuando su ámbito se limita a todos los espacios de nombres: rol de clúster view aplicado por el enlace de rol ibm-view en todos los espacios de nombres del clúster. También puede ver el clúster en la consola de IBM Cloud y en la CLI.
  • Acceso de lectura a los recursos de un espacio de nombres
  • No hay acceso de lectura a roles y enlaces de rol ni a secretos de Kubernetes
  • Acceda al panel de control de Kubernetes para ver los recursos de un espacio de nombres.
Rol de escritor Cuando su ámbito se limita a un espacio de nombres: rol de clúster edit aplicado por el enlace de rol ibm-edit en ese espacio de nombres.

Cuando su ámbito se circunscribe a todos los espacios de nombres: rol de clúster edit aplicado por el enlace de rol ibm-edit en todos los espacios de nombres del clúster

  • Acceso de lectura/escritura a los recursos de un espacio de nombres
    -No hay acceso de lectura/escritura a roles y enlaces de rol <
  • Acceda al panel de control de Kubernetes para ver los recursos de un espacio de nombres.
Rol de gestor Cuando su ámbito se limita a un espacio de nombres: rol de clúster admin aplicado por el enlace de rol ibm-operate en ese espacio de nombres.

Cuando su ámbito se limita a todos los espacios de nombres: rol de clúster cluster-admin aplicado por el enlace de rol de clúster ibm-admin que se aplica a todos los espacios de nombres del clúster

Cuando el ámbito se limita a un espacio de nombres:

  • Acceso de lectura y escritura a todos los recursos de un espacio de nombres, pero no a la cuota de recursos ni al propio
    espacio de nombres - Crear roles RBAC y enlaces de roles en un espacio
    de nombres - Acceder al panel de control de Kubernetes para ver todos los recursos de un espacio
    de nombres Cuando el ámbito abarca todos los espacios de nombres:
  • Acceso de lectura y escritura a todos los recursos de cada espacio
    de nombres. - Crear roles RBAC y enlaces de roles en un espacio de nombres, o roles de clúster y enlaces de roles de clúster en todos los espacios
    de nombres. - Acceder al panel
    de control de Kubernetes. - Crear un recurso Ingress que haga que las aplicaciones estén disponibles
    públicamente. - Revisar métricas del clúster, por ejemplo, con los comandos kubectl get nodes
    kubectl top pods, kubectl top nodes, o. - Crear y actualizar pods con privilegios y sin privilegios (restringidos)

Permisos de recursos de Kubernetes por rol de RBAC

A cada usuario que tiene asignado un rol de acceso al servicio de IBM Cloud IAM también se le asigna automáticamente un rol de control de acceso basado en rol (RBAC) de Kubernetes predefinido correspondiente. Si tiene intención de gestionar sus propios roles personalizados de RBAC de Kubernetes, consulte el apartado sobre Creación de permisos de RBAC personalizados para usuarios, grupos o cuentas de servicio. Para ver los detalles del nombre de usuario, consulte Detalles del emisor de IBM Cloud IAM para los usuarios de RBAC.

¿Se pregunta si tiene los permisos correctos para ejecutar un determinado mandato kubectl en un recurso de un espacio de nombres? Pruebe Mandato kubectl auth can-i.

En la tabla siguiente se muestran los permisos que otorga cada rol de RBAC a recursos de Kubernetes individuales. Los permisos se muestran indicando qué verbs acciones puede realizar un usuario con ese rol sobre el recurso, como obtener, enumerar, describir, crear o eliminar.

Permisos de recursos de Kubernetes otorgados por cada rol de RBAC predefinido
Recurso de Kubernetes view edit admin y cluster-admin
bindings get, list, watch get, list, watch get, list, watch
solo cluster-admin: create, delete, update
configmaps get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
cronjobs.batch get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
daemonsets.apps get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
daemonsets.extensions get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
deployments.apps get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
deployments.apps/rollback
crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
deployments.apps/scale get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
deployments.extensions get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
deployments.extensions/rollback
crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
deployments.extensions/scale get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
endpoints get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
events get, list, watch get, list, watch get, list, watch
horizontalpodautoscalers.autoscaling get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
ingresses.extensions get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
jobs.batch get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
limitranges get, list, watch get, list, watch get, list, watch
localsubjectaccessreviews
create
namespaces get, list, watch get, list, watch get, list, watch
sólo cluster-admin: create, delete
namespaces/status get, list, watch get, list, watch get, list, watch
networkpolicies get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
networkpolicies.extensions get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
node Ninguna Ninguna admin con ámbito limitado a un espacio de nombres: Ninguno

cluster-admin para todos los espacios de nombres: Todos los verbos

persistentvolume Ninguna Ninguna crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
persistentvolumeclaims get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
poddisruptionbudgets.policy get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
pods get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, top aplicar parches, actualizar, supervisar
pods/attach
crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
pods/exec
crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
pods/log get, list, watch get, list, watch get, list, watch
pods/portforward
crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
pods/proxy
crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
pods/status get, list, watch get, list, watch get, list, watch
replicasets.apps get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
replicasets.apps/scale get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
replicasets.extensions get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
replicasets.extensions/scale get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
replicationcontrollers get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
replicationcontrollers/scale get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
replicationcontrollers/status get, list, watch get, list, watch get, list, watch
replicationcontrollers.extensions/scale get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
resourcequotas get, list, watch get, list, watch get, list, watch
resourcequotas/status get, list, watch get, list, watch get, list, watch
rolebindings
crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
roles
crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
secrets
crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
serviceaccounts get, list, watch crear, eliminar, deletecollection, obtener, listar, aplicar parches, actualizar, supervisar, impersonate crear, eliminar, deletecollection, obtener, listar, aplicar parches, actualizar, supervisar, impersonate
services get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
services/proxy
crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
statefulsets.apps get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar
statefulsets.apps/scale get, list, watch crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar crear, eliminar, obtener deletecollection, listar, aplicar parches, actualizar, supervisar

Detalles del emisor de IBM Cloud IAM para los usuarios de RBAC

Los usuarios con un rol de acceso al servicio a IBM Cloud Kubernetes Service en IAM reciben roles de usuario correspondientes en RBAC. Los detalles de usuario de RBAC incluyen un ID de emisor exclusivo, una reclamación de identificador de asunto y un nombre de usuario de Kubernetes. Estos detalles varían con la versión de Kubernetes del clúster. Cuando se actualiza un clúster desde una versión anterior, los detalles se actualizan automáticamente. Los nombres de usuario de RBAC llevan el prefijo IAM#. Para obtener más información sobre cómo funciona la autenticación de OpenID, consulta la documentación de Kubernetes.

Puede utilizar esta información si crea una herramienta de automatización dentro del clúster que se base en los detalles de usuario para autenticarse con el servidor de API de Kubernetes.

IBM Cloud Detalles del emisor de IAM para usuarios RBAC
Versión Emisor Reclamación Mayúsculas/minúsculas*
Kubernetes https://iam.cloud.ibm.com/identity realmed_sub_<account_ID> minúsculas

*: Un ejemplo de minúsculas es user.name@company.com. Un ejemplo de bicapitalización es User.Name@company.com.