En la computación en la nube, el control de acceso basado en roles (RBAC) conecta a los usuarios con roles específicos, donde Role Es una colección de permisos que se aplican al proyecto o a todo el clúster. Para usar RBAC, debe darse cuenta de que existen diferentes tipos de usuarios y que cada uno puede usarse con estos roles.
verbo como get
, list
, watch
, delete
, deletecollection
, create
, update
y patch
Se utiliza para administrar los permisos. Son parámetros clave a la hora de definir roles, que son recursos de la API que proporcionan acceso a los recursos de OpenShift.
OpenShift es la plataforma de contenedor de Kubernetes de nivel empresarial de Red Hat que incluye varios roles de clúster de forma predeterminada. En la mayoría de los casos, solo necesita el rol predeterminado al configurar los permisos de usuario. Sin embargo, comprender los usuarios y las funciones es una parte importante de la gestión de un clúster con OpenShift.
Tabla de Contenidos
tipo de usuario
A los usuarios se les concede acceso a los recursos del clúster mediante vinculaciones de roles y se crean como tipos de usuarios específicos. Por ejemplo, hay cuentas de usuario normal, de usuario del sistema y de servicio.
- Este usuario general Un rol define un objeto que otorga acceso a la plataforma del clúster.
- Este usuario del sistema Los roles se crean automáticamente cuando se define la infraestructura para permitir que los componentes del sistema accedan a recursos específicos.
Ejemplos de usuarios del sistema incluyen:
[ Get this complimentary eBook from Red Hat: Managing your Kubernetes clusters for dummies. ]
Ejemplos de cuentas de servicio y sus capacidades incluyen:
- Este Sistema: Cuenta de servicio: Predeterminado: Implementador Las cuentas de servicio se utilizan para crear implementaciones.
- Este sistema:cuenta de servicio:foo:constructor Las cuentas de servicio se utilizan para crear configuraciones en Source-to-image (S2I).
rol predeterminado
En la mayoría de los casos, las funciones predeterminadas de OpenShift son suficientes para establecer permisos para los usuarios. Se pueden aplicar localmente o a todo el clúster.
-
Este vista Los roles permiten a los usuarios ver pero no modificar ningún recurso del proyecto.
- Este editar Los roles permiten la modificación y creación de recursos de aplicaciones comunes, pero no permiten el acceso a permisos, ámbitos restringidos o cuotas que también corresponden a los usuarios desarrolladores típicos.
- Este autoproveedor Los roles permiten a los usuarios crear nuevos proyectos (todos los usuarios tienen autoproveedor defecto).
- Este usuario Básico Los roles proporcionan acceso de lectura a los elementos.
- Este administrador del clúster Los roles permiten a los usuarios realizar cualquier acción en el clúster.
- Este estado del clúster Los roles permiten a los usuarios solicitar información de estado.
- Este administrativo Los roles otorgan control total y permisos sobre los recursos del proyecto.
A veces, necesita más granularidad al otorgar permisos. Puede hacerlo creando roles locales o de clúster para proporcionar acceso a recursos basados en proyectos.
Crear roles locales personalizados
Para crear un rol local personalizado, use oc create
Un comando con la siguiente sintaxis:
$ oc create role NAME --verb=VERB --resource=RESOURCE -n PROJECT
[ Learn some quick tips for using OpenShift’s oc client. ]
Los verbos que utilice dependen de los recursos que gestione.Por ejemplo, si trata los pods como recursos, los verbos válidos son get
, create
o delete
Si desea dar permiso a los usuarios para ver pods en un proyecto de OpenShift llamado demo1
por ejemplo, escriba lo siguiente:
$ oc create role podview --verb=get --resource=pod -n demo1
role.rbac.authorization.k8s.io/podview created
Use la política oc adm para administrar el rol local personalizado RBAC
Los administradores de clústeres usan oc adm policy
Comandos para administrar roles de clúster y espacio de nombres.
Los enlaces de roles son esenciales porque conectan sus roles personalizados locales y roles de clúster a usuarios o grupos. Los roles locales y de clúster son inútiles sin vinculaciones de roles.
Agregue y vincule una función personalizada local a un usuario en un espacio de nombres específico, proporcionando el nombre de la función y el nombre de usuario:
$ oc adm policy add-role-to-user podview johndoe --role-namespace=demo1 -n demo1
role.rbac.authorization.k8s.io/podview added: "johndoe"
Crear roles de clúster personalizados
Los roles de clúster pueden proporcionar permisos predeterminados para cualquier proyecto. Por ejemplo, puede crear un rol de clúster para permitir que los usuarios vean solo los pods.
[ Get the Kubernetes glossary cheat sheet. ]
La creación de una función de clúster es similar a la creación de una función local personalizada.usar oc create clusterrole
, junto con el nombre de la función que está creando, el verbo y el recurso utilizado para crear la función de clúster. Aquí hay un ejemplo:
$ oc create cluster role podviewonly --verb=get --resource=pod
clusterrole.rbac.authorization.k8s.io/podviewonly created
Administre roles de clúster personalizados RBAC mediante la política oc adm
Si aplica la nueva función de clúster a un usuario específico, ese usuario puede ver la información del pod para todo el clúster. Para que esto sea completamente efectivo, debe agregar y vincular este rol de clúster personalizado local al usuario:
$ oc adm policy add-cluster-role-to-user podviewonly janedoe
clusterrole.rbac.authorization.k8s.io/podviewonly added: "janedoe"
Verificar enlaces de roles locales
Ver qué roles locales están asignados a un proyecto específico (en este caso, demo1
) con alcance fuera del clúster, use oc describe rolebinding.rbac
:
$ oc describe rolebinding.rbac -n demo1 | grep podview -A 10
Name: podview
Labels:
Annotations:
Role:
Kind: Role
Name: podview
Subjects:
Kind Name Namespace
---- ---- ---------
User johndoe
Name: system:deployers
Labels:
Annotations: openshift.io/description:
Allows deploymentconfigs in this namespace to rollout pods in this namespace. It is auto-managed by a controller; remove subjects to disa...
Verificar enlaces de roles de clúster
Para obtener una descripción general de los usuarios, grupos y funciones, utilice oc describe clusterrolebindings.rbac
Este comando comprueba que el rol local de clúster personalizado está vinculado a podviewonly
Roles de clúster asignados a los usuarios janedoe
:
$ oc describe clusterrolebindings.rbac podviewonly
Name: podviewonly
Labels:
Annotations:
Role:
Kind: ClusterRole
Name: podviewonly
Subjects:
Kind Name Namespace
---- ---- ---------
User janedoe
[ Learn how to manage your Linux environment for success. ]
Aprender RBAC
Este oc adm policy
El comando proporciona una descripción general de todas las credenciales de seguridad con permisos específicos para realizar la operación.Este oc adm policy who-can
Los comandos son útiles para ver quién tiene permiso para realizar acciones en un proyecto. Aquí hay dos formas diferentes de usar este comando:
$ oc adm policy who-can
$ oc adm policy who-can get pod
$ oc adm policy who-can delete user
envolver
Este artículo cubre los conceptos básicos de los roles locales y de clúster para los permisos de RBAC. Todavía hay mucho que aprender, pero la información anterior proporciona un buen comienzo. Explore OpenShift y su documentación para obtener más información.