martes, 19 de noviembre de 2019

OpenShift 3.11 como crear un nuevo usuario y darle permisos

Un dato corto, muy útil si están Administrando Red Hat OpenShift, en mi caso uso versión 3.11, aquí unas tareas que les hayan pedido o a uds mismos les haya nacido hacer:

¿como crear un nuevo usuario y darle permisos adecuados?
En mi caso tengo un solo user admin.
Este user tiene creo un proyecto llamado ejemplo
Quería tener otro user llamado naldo con menos permisos, solo lectura a ese proyecto ejemplo ya creado por el admin.
Al crear ese user nuevo, que pueda ver y editar el proyecto por defecto Default.

Todo esto me demoré dos días investigando y leyendo, ya que como verán la información están clarita jajajaj. Bueno acá se lo traigo "cocinado".

Uso Sistema Operativo RHEL 7.7. Esto es linux papá.

Pasos

Acceder al nodo, en mi caso uso Putty desde Windows.

ver archivo
vim /etc/origin/master/master-config.yaml

Fijarse en linea "file"

ejemplo:

  - challenge: true
    login: true
    mappingMethod: claim
    name: deny_all
    provider:
      apiVersion: v1
      #kind: DenyAllPasswordIdentityProvider
      kind: HTPasswdPasswordIdentityProvider
      file: /etc/origin/master/htpasswd
  masterCA: ca-bundle.crt

en mi caso decía:
      file: /etc/origin/master/htpasswd

Con ese dato, podemos crear user naldo (no admin) y setear una pass
sudo htpasswd /etc/origin/master/htpasswd naldo
pass: coloca una password

Aquí por defecto podrá ver el proyecto default de OpenShift con permisos Edit (puede modificar cosas). Además puede crear sus propios proyectos dentro de OpenShift.

Revisar que la key esté cambiada (ver fecha)
ls -l /etc/origin/master/htpasswd

Revisar que hayan 2 password (admin y el nuevo user)
cat /etc/origin/master/htpasswd

Darle rol de View (sólo lectura) a usuario naldo para proyecto ejemplo
oc adm policy add-role-to-user view naldo -n ejemplo

Darle permisos de Edit solamente a proyecto default. Al crearlo lo hace por defecto, pero lo podemos hacer de todas formas:
oc adm policy add-role-to-user edit naldo -n default

Ver permisos de un usuario para un proyecto dado así chequeamos que esté todo ok:
oc get rolebinding -n ejemplo
oc get rolebinding -n default

En mi caso no me hizo falta reiniciar cluster, ya que en algunos lados indicaba que había que hacerlo.
Pero en caso de (no lo he probado) se hace así:

# master-restart api
# master-restart controllers

Otros comandos útiles

Quitar permisos de edit a user pepe en proyecto ejemplo2
oc adm policy remove-role-from-user edit pepe -n ejemplo2

Quitar un usuario pepe de un proyecto llamado default (con todos sus roles)
oc adm policy remove-user pepe -n default

Fuentes