Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-09-10 GMT+08:00

Descripción de permisos

La gestión de permisos de CCE le permite asignar permisos a los usuarios y grupos de usuarios de IAM en sus cuentas de tenant. CCE combina las ventajas de Identity and Access Management (IAM) y Kubernetes Role-based Access Control (RBAC) para proporcionar una variedad de métodos de autorización, incluida la autorización de grano fino de IAM, la autorización de token de IAM, autorización en el ámbito del clúster y autorización en todo el espacio de nombres.

CCE le permite gestionar los permisos en clústeres y recursos relacionados con una granularidad más fina, por ejemplo, para controlar el acceso de los empleados de diferentes departamentos a los recursos en la nube.

Esta sección describe el mecanismo de gestión de permisos de CCE y conceptos relacionados. Si su cuenta ha cumplido con sus requisitos de servicio, puede omitir las configuraciones de este capítulo.

Gestión de permisos de CCE

Los permisos de CCE se describen de las siguientes maneras:
  • Cluster-level permissions: La gestión de permisos a nivel de clúster evoluciona de la función de autorización de políticas del sistema de IAM. Los usuarios de IAM del mismo grupo de usuarios tienen los mismos permisos. En IAM, puede configurar las políticas del sistema para describir qué grupos de usuarios de IAM pueden realizar las operaciones en los recursos del clúster. Por ejemplo, puede conceder al grupo de usuarios A que cree y elimine el clúster X, agregue un nodo o instale un complemento, mientras que concede al grupo de usuarios B que vea información sobre el clúster X.

    Los permisos a nivel de clúster implican API de CCE que no son de Kubernetes y admiten políticas de IAM detalladas y la gestión de proyectos empresariales.

  • Namespace-level permissions: Puede regular el acceso de los usuarios o de grupos de usuarios a los recursos de Kubernetes en un solo espacio de nombres en función de sus roles de RBAC de Kubernetes. CCE también se ha mejorado sobre la base de las capacidades de código abierto. Admite la autorización de RBAC basada en el usuario o grupo de usuarios de IAM, y la autenticación de RBAC en el acceso a las API mediante tokens de IAM.

    Los permisos a nivel de espacio de nombres implican API de CCE Kubernetes y se mejoran en función de las capacidades RBAC de Kubernetes. Los permisos de nivel de espacio de nombres se pueden conceder a los usuarios o grupos de usuarios de IAM para la autenticación y la autorización, pero son independientes de las políticas de IAM detalladas.

    A partir de la versión 1.11.7-r2, los clústeres de CCE permiten configurar permisos de espacio de nombres. Los clústeres anteriores a v1.11.7-r2 tienen todos los permisos de espacio de nombres de forma predeterminada.

En general, se configuran los permisos de CCE en dos escenarios. El primero es crear y gestionar clústeres y recursos relacionados, como nodos. El segundo es crear y usar recursos de Kubernetes en el clúster, como cargas de trabajo y Servicios.

Figura 1 Ilustración sobre permisos de CCE

Estos permisos le permiten gestionar los usuarios de recursos con una granularidad más precisa.

Cluster Permissions (basados en IAM) y Namespace Permissions (basados en Kubernetes RBAC)

Los usuarios con diferentes permisos de clúster (asignados mediante IAM) tienen diferentes permisos de espacio de nombres (asignados mediante Kubernetes RBAC). Tabla 1 enumera los permisos de espacio de nombres de diferentes usuarios.

Tabla 1 Diferencias en los permisos de espacio de nombres

Usuario

Clústeres de v1.13 y posteriores

Usuario con los permisos de Tenant Administrator (por ejemplo, una cuenta)

Todos los permisos de espacio de nombres

Usuario de IAM con el rol CCE Administrator

Todos los permisos de espacio de nombres

Usuario de IAM con el rol CCE FullAccess o CCE ReadOnlyAccess

Requiere la autorización RBAC de Kubernetes.

Usuario de IAM con el rol Tenant Guest

Requiere la autorización RBAC de Kubernetes.

Permisos de kubectl

Puede usar kubectl para acceder a los recursos de Kubernetes en un clúster.

Cuando se accede a un clúster mediante kubectl, CCE utiliza el archivo kubeconfig.json generado en el clúster para la autenticación. Este archivo contiene información del usuario, basada en la cual CCE determina qué recursos de Kubernetes puede acceder kubectl. Los permisos registrados en un archivo kubeconfig.json varían de usuario a usuario. Tabla 1 muestra los permisos que tiene un usuario.

Usuarios federados

IAM proporciona la función de proveedor de identidad para implementar la autenticación de identidad federada basada en Security Assertion Markup Language (SAML) o OpenID Connect. Esta función permite a los usuarios de su sistema de gestión acceder a la plataforma en la nube a través del inicio de sesión único (SSO).

Los usuarios que inician sesión con la autenticación de identidad federada se denominan los usuarios federados. Los usuarios federados son equivalentes a los usuarios de IAM.

Preste atención a lo siguiente para que los usuarios federados usen CCE:

  • Cuando un usuario crea un clúster de CCE, el permiso de cluster-admin se concede al usuario de forma predeterminada. El ID de usuario de un usuario federado cambia en cada inicio de sesión y cierre de sesión. Por lo tanto, el usuario se muestra como eliminado en la página Permissions de la consola de CCE. No elimine manualmente el permiso, de lo contrario, la autenticación falla. En este caso, se recomienda conceder el permiso de cluster-admin a un grupo de usuarios en CCE y agregar los usuarios federados al grupo de usuarios.
  • Los usuarios federados no pueden crear claves de acceso permanentes (AKs/SKs). En escenarios en los que se requieren AK/SK (por ejemplo, al crear PV/PVC relacionados con OBS), solo usted o un usuario de IAM puede crear AK/SK y compartirlos con los usuarios federados. Una clave de acceso contiene los permisos concedidos a un usuario, por lo que se recomienda que el usuario federado solicite a un usuario IAM del mismo grupo que cree una clave de acceso.

Acciones admitidas

Hay dos tipos de políticas: las definidas por el sistema y las personalizadas. Si los permisos preestablecidos en el sistema no cumplen con sus requisitos, puede crear las políticas personalizadas y aplicarlas a los grupos de usuarios para un control de acceso refinado. Las operaciones admitidas por las políticas son específicas de las API. Los siguientes son conceptos comunes relacionados con las políticas:

  • Permiso: una declaración en una política que permite o niega ciertas operaciones.
  • API: las API de REST que se pueden invocar en una política personalizada.
  • Acciones: agregadas a una política personalizada para controlar los permisos para operaciones específicas.
  • Acciones dependientes: acciones de las que depende una acción específica para tener efecto. Al asignar permisos para la acción a un usuario, también debe asignar permisos para las acciones dependientes.
  • Proyectos de IAM y proyectos de empresa: tipo de proyectos para los que una acción entrará en vigor. Las políticas que contienen las acciones que admiten los proyectos de IAM y de empresa se pueden asignar a los grupos de usuarios y tener efecto tanto en IAM como en Enterprise Management. Las políticas que solo contienen las acciones que admiten los proyectos de IAM se pueden asignar a los grupos de usuarios y solo tienen efecto para IAM. Dichas políticas no entrarán en vigor si se asignan a los grupos de usuarios en Enterprise Management. Para obtener más información, consulte ¿Cuáles son las diferencias entre IAM y Enterprise Management?

La marca de verificación (√) y el símbolo de cruz (x) indican respectivamente que una acción tiene efecto o no tiene efecto para el tipo correspondiente de proyectos.

CCE admite las siguientes acciones que se pueden definir en las políticas personalizadas:

Tabla 2 Cluster

Permiso

API

Acción

Proyectos de IAM

Proyecto empresarial

Listado de clústeres en un proyecto especificado

GET /api/v3/projects/{project_id}/clusters

cce:cluster:list

Obtención de información acerca de un clúster especificado

GET /api/v3/projects/{project_id}/clusters/{cluster_id}

cce:cluster:get

Creación de un clúster

POST /api/v3/projects/{project_id}/clusters

cce:cluster:create

Actualización de información acerca de un clúster especificado

PUT /api/v3/projects/{project_id}/clusters/{cluster_id}

cce:cluster:update

Eliminación de un clúster

DELETE /api/v3/projects/{project_id}/clusters/{cluster_id}

cce:cluster:delete

Despierta de un clúster

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/awake

cce:cluster:start

Hibernación de un clúster

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/hibernate

cce:cluster:stop

Obtención de un certificado de clúster

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/clustercert

cce:cluster:get

Tabla 3 Node

Permiso

API

Acción

Proyectos de IAM

Proyecto empresarial

Obtención de información acerca de todos los nodos de un clúster

GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes

cce:node:list

Obtención de información acerca de un nodo especificado

GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id}

cce:node:get

Creación de un nodo

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes

cce:node:create

Actualización de información acerca de un nodo especificado

PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id}

cce:node:update

Eliminación de un nodo

DELETE /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id}

cce:node:delete

Tabla 4 Job

Permiso

API

Acción

Proyectos de IAM

Proyecto empresarial

Obtención de información sobre un trabajo

GET /api/v3/projects/{project_id}/jobs/{job_id}

cce:job:get

Tabla 5 Nodepool

Permiso

API

Acción

Proyectos de IAM

Proyecto empresarial

Obtención de información sobre todos los pools de nodos de un clúster especificado

GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools

cce:nodepool:list

Obtención de información sobre un pool de nodo

GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id}

cce:nodepool:get

Creación de un pool de nodos

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools

cce:nodepool:create

Actualización de información sobre un pool de nodos

PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id}

cce:nodepool:update

Eliminación de un pool de nodo

DELETE /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id}

cce:nodepool:delete

Tabla 6 Storage

Permiso

API

Acción

Proyectos de IAM

Proyecto empresarial

Creación de un PersistentVolumeClaim

POST /api/v1/namespaces/{namespace}/cloudpersistentvolumeclaims

cce:storage:create

Eliminación de un PersistentVolumeClaim

DELETE /api/v1/namespaces/{namespace}/cloudpersistentvolumeclaims/{name}

cce:storage:delete

Tabla 7 Addon

Permiso

API

Acción

Proyectos de IAM

Proyecto empresarial

Creación de una instancia de complemento

POST /api/v3/addons

cce:addonInstance:create

Obtención de información sobre una instancia de complemento

GET /api/v3/addons/{id}?cluster_id={cluster_id}

cce:addonInstance:get

Listado de todas las instancias de complementos

GET /api/v3/addons?cluster_id={cluster_id}

cce:addonInstance:list

Eliminación de una instancia de complemento

DELETE /api/v3/addons/{id}?cluster_id={cluster_id}

cce:addonInstance:delete

Actualización de una instancia de complemento

PUT /api/v3/addons/{id}

cce:addonInstance:update

Tabla 8 Quota

Permiso

API

Acción

Proyectos de IAM

Proyecto empresarial

Consulta de detalles de cuota

GET /api/v3/projects/{project_id}/quotas

cce:quota:get