¿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
- https://docs.openshift.com/container-platform/3.11/install_config/master_node_configuration.html#master-node-config-restart-services
- https://docs.openshift.com/container-platform/3.11/admin_guide/manage_nodes.html
- https://docs.openshift.com/container-platform/3.11/admin_guide/manage_users.html
- https://docs.openshift.com/container-platform/3.11/admin_guide/manage_rbac.html