11 Gestión de usuarios y funciones en la línea de comandos #
En esta sección se describe cómo gestionar las cuentas de usuario utilizadas por la Ceph Dashboard. Sirve de ayuda para crear o modificar cuentas de usuario, así como para establecer las funciones y permisos de usuario adecuados.
11.1 Gestión de la directiva de contraseñas #
Por defecto, la función de directiva de contraseñas está habilitada, incluidas las siguientes comprobaciones:
¿La contraseña tiene más de N caracteres?
¿Son iguales la contraseña antigua y la nueva?
La función de directiva de contraseñas se puede activar o desactivar por completo:
cephuser@adm >
ceph dashboard set-pwd-policy-enabled true|false
Las siguientes comprobaciones individuales se pueden activar o desactivar:
cephuser@adm >
ceph dashboard set-pwd-policy-check-length-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-oldpwd-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-username-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-exclusion-list-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-complexity-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-sequential-chars-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-repetitive-chars-enabled true|false
Además, las siguientes opciones están disponibles para configurar el comportamiento de la directiva de contraseñas.
La longitud mínima de la contraseña (por defecto es 8):
cephuser@adm >
ceph dashboard set-pwd-policy-min-length NLa complejidad mínima de la contraseña (por defecto es 10):
cephuser@adm >
ceph dashboard set-pwd-policy-min-complexity NLa complejidad de la contraseña se calcula clasificando cada carácter de la contraseña.
Una lista de palabras separadas por comas que no se pueden utilizar en una contraseña:
cephuser@adm >
ceph dashboard set-pwd-policy-exclusion-list word[,...]
11.2 Gestión de cuentas de usuario #
Ceph Dashboard admite la gestión de varias cuentas de usuario. Cada cuenta de usuario está formada por un nombre de usuario, una contraseña (almacenada cifrada mediante bcrypt
), un nombre opcional y una dirección de correo electrónico opcional.
Las cuentas de usuario se almacenan en la base de datos de configuración de Ceph Monitor y se comparten de forma global entre todas las instancias de Ceph Manager.
Utilice los comandos siguientes para gestionar cuentas de usuario:
- Mostrar usuarios existentes:
cephuser@adm >
ceph dashboard ac-user-show [USERNAME]- Crear un usuario:
cephuser@adm >
ceph dashboard ac-user-create USERNAME -i [PASSWORD_FILE] [ROLENAME] [NAME] [EMAIL]- Suprimir un usuario:
cephuser@adm >
ceph dashboard ac-user-delete USERNAME- Cambiar la contraseña de un usuario:
cephuser@adm >
ceph dashboard ac-user-set-password USERNAME -i PASSWORD_FILE- Modificar el nombre y el correo electrónico de un usuario:
cephuser@adm >
ceph dashboard ac-user-set-info USERNAME NAME EMAIL- Inhabilitar un usuario:
cephuser@adm >
ceph dashboard ac-user-disable USERNAME- Habilitar un usuario:
cephuser@adm >
ceph dashboard ac-user-enable USERNAME
11.3 Funciones y permisos de usuario #
En esta sección se describen los ámbitos de seguridad que puede asignar a una función de usuario, y se explica cómo gestionar funciones de usuario y cómo asignarlas a cuentas de usuario.
11.3.1 Definición de ámbitos de seguridad #
Las cuentas de usuario están asociadas a un conjunto de funciones que definen a qué partes de la consola puede tener acceso el usuario. Las distintas partes de la consola se agrupan dentro de un ámbito de seguridad. Los ámbitos de seguridad están predefinidos y son estáticos. Actualmente están disponibles los siguientes ámbitos de seguridad:
- hosts
Incluye todas las características relacionadas con la entrada del menú
.- config-opt
Incluye todas las características relacionadas con las gestión de las opciones de configuración de Ceph.
- pool
Incluye todas las características relacionadas con la gestión de repositorios.
- osd
Incluye todas las funciones relacionadas con la gestión de Ceph OSD.
- monitor
Incluye todas las características relacionadas con la gestión de Ceph Monitor.
- rbd-image
Incluye todas las funciones relacionadas con la gestión de imágenes de dispositivos de bloques RADOS.
- rbd-mirroring
Incluye todas las funciones relacionadas con la gestión de duplicados de dispositivos de bloques RADOS.
- iscsi
Incluye todas las características relacionadas con la gestión de iSCSI.
- rgw
Incluye todas las características relacionadas con la gestión de Object Gateway.
- cephfs
Incluye todas las características relacionadas con la gestión de CephFS.
- manager
Incluye todas las características relacionadas con la gestión de Ceph Manager.
- log
Incluye todas las características relacionadas con la gestión de los registros de Ceph.
- grafana
Incluye todas las características relacionadas con el proxy de Grafana.
- prometheus
Incluye todas las funciones relacionadas con la gestión de alertas Prometheus.
- dashboard-settings
Permite cambiar la configuración de la consola.
11.3.2 Especificación de funciones de usuario #
Una función especifica un conjunto de asignaciones entre un ámbito de seguridad y un conjunto de permisos. Hay cuatro tipos de permisos: "leer", "crear", "actualizar" y "suprimir".
En el ejemplo siguiente se especifica una función en la que un usuario tiene los permisos "leer" y "crear" para las características relacionadas con la gestión de repositorios, y tiene permisos completos para las características relacionadas con la gestión de imágenes RBD:
{ 'role': 'my_new_role', 'description': 'My new role', 'scopes_permissions': { 'pool': ['read', 'create'], 'rbd-image': ['read', 'create', 'update', 'delete'] } }
La consola ya proporciona un conjunto de funciones predefinidas que llamamos funciones del sistema. Puede usarlas de inmediato después de instalar la Ceph Dashboard:
- administrator
Proporciona permisos completos para todos los ámbitos de seguridad.
- read-only
Proporciona permiso de lectura para todos los ámbitos de seguridad, excepto para la configuración de la consola.
- block-manager
Proporciona permisos completos para los ámbitos "rbd-image", "rbd-mirroring" e "iscsi".
- rgw-manager
Proporciona permisos completos para el ámbito "rgw".
- cluster-manager
Proporciona permisos completos para los ámbitos "hosts", "osd", "monitor", "manager" y "config-opt".
- pool-manager
Proporciona permisos completos para el ámbito "pool".
- cephfs-manager
Proporciona permisos completos para el ámbito "cephfs".
11.3.2.1 Gestión de funciones personalizadas #
Puede crear nuevas funciones de usuario mediante los siguientes comandos:
- Crear una función:
cephuser@adm >
ceph dashboard ac-role-create ROLENAME [DESCRIPTION]- Suprimir una función:
cephuser@adm >
ceph dashboard ac-role-delete ROLENAME- Añadir permisos de ámbito a una función:
cephuser@adm >
ceph dashboard ac-role-add-scope-perms ROLENAME SCOPENAME PERMISSION [PERMISSION...]- Suprimir permisos de ámbito de una función:
cephuser@adm >
ceph dashboard ac-role-del-perms ROLENAME SCOPENAME
11.3.2.2 Asignación de funciones a cuentas de usuario #
Utilice los comandos siguientes para asignar funciones a los usuarios:
- Definir funciones de usuario:
cephuser@adm >
ceph dashboard ac-user-set-roles USERNAME ROLENAME [ROLENAME ...]- Añadir funciones adicionales a un usuario:
cephuser@adm >
ceph dashboard ac-user-add-roles USERNAME ROLENAME [ROLENAME ...]- Suprimir funciones de un usuario:
cephuser@adm >
ceph dashboard ac-user-del-roles USERNAME ROLENAME [ROLENAME ...]
Si crea funciones de usuario personalizadas y tiene previsto eliminar el clúster de Ceph con el runner ceph.purge
más adelante, primero debe limpiar las funciones personalizadas. Más detalles en el Sección 13.9, “Eliminación de un clúster de Ceph completo”.
11.3.2.3 Ejemplo: creación de un usuario y una función personalizada #
En esta sección se describe un procedimiento para crear una cuenta de usuario capaz de gestionar imágenes RBD, ver y crear repositorios de Ceph y tener acceso de solo lectura a cualquier otro ámbito.
Cree un usuario llamado
tux
:cephuser@adm >
ceph dashboard ac-user-create tux PASSWORDCree una función y especifique los permisos de ámbito:
cephuser@adm >
ceph dashboard ac-role-create rbd/pool-managercephuser@adm >
ceph dashboard ac-role-add-scope-perms rbd/pool-manager \ rbd-image read create update deletecephuser@adm >
ceph dashboard ac-role-add-scope-perms rbd/pool-manager pool read createAsocie las funciones con el usuario
tux
:cephuser@adm >
ceph dashboard ac-user-set-roles tux rbd/pool-manager read-only
11.4 Configuración de proxy: #
Si desea establecer una URL fija para acceder a Ceph Dashboard, o si no desea permitir conexiones directas con los nodos del gestor, puede configurar un servidor proxy que reenvíe automáticamente las peticiones entrantes a la instancia de ceph-mgr
activa.
11.4.1 Acceso a la consola con proxies inversos #
Si accede a la consola a través de una configuración de proxy inverso, es posible que deba darle servicio mediante un prefijo de URL. Para que la consola pueda usar hipervínculos que incluyan el prefijo, puede definir el valor de url_prefix
:
cephuser@adm >
ceph config set mgr mgr/dashboard/url_prefix URL_PREFIX
A continuación, podrá acceder a la consola en http://NOMBRE_HOST:NÚMERO_PUERTO/PREFIJO_URL/
.
11.4.2 Inhabilitación de redirecciones #
Si Ceph Dashboard se encuentra detrás de un servidor proxy de equilibrio de carga como HAProxy, inhabilite el comportamiento de redirección para evitar situaciones en las que las URL internas (que no se pueden resolver) se publiquen en el cliente de procesador frontal. Utilice el comando siguiente para que la consola responda con un error HTTP (500
por defecto) en lugar de redirigir a la consola activa:
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_behaviour "error"
Para restablecer el ajuste al comportamiento de redirección por defecto, utilice el comando siguiente:
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_behaviour "redirect"
11.4.3 Configuración de códigos de estado de error #
Si el comportamiento de redirección está inhabilitado, debe personalizar el código de estado HTTP de las consolas en espera. Para ello, ejecute el comando siguiente:
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_error_status_code 503
11.4.4 Configuración de ejemplo de HAProxy #
El siguiente ejemplo de configuración es para la transferencia directa TLS/SSL mediante HAProxy.
La configuración funciona en las siguientes condiciones: si la consola falla, el cliente de procesador frontal puede recibir una respuesta de redirección HTTP (303
) y se le redirigirá a un host que no se puede resolver.
Esto ocurre cuando se produce un failover durante dos comprobaciones de estado de HAProxy. En este caso, el nodo de consola anteriormente activo responderá ahora con un 303, que señala al nuevo nodo activo. Para evitarlo, puede inhabilitar el comportamiento de redirección en los nodos en espera.
defaults log global option log-health-checks timeout connect 5s timeout client 50s timeout server 450s frontend dashboard_front mode http bind *:80 option httplog redirect scheme https code 301 if !{ ssl_fc } frontend dashboard_front_ssl mode tcp bind *:443 option tcplog default_backend dashboard_back_ssl backend dashboard_back_ssl mode tcp option httpchk GET / http-check expect status 200 server x HOST:PORT ssl check verify none server y HOST:PORT ssl check verify none server z HOST:PORT ssl check verify none
11.5 Auditoría de peticiones de API #
La API REST de Ceph Dashboard puede registrar peticiones PUT, POST y DELETE en el registro de auditoría de Ceph. El registro está inhabilitado por defecto, pero es posible habilitarlo con el siguiente comando:
cephuser@adm >
ceph dashboard set-audit-api-enabled true
Si está habilitado, se registran los parámetros siguientes por cada petición:
- from
El origen de la petición, por ejemplo "https://[::1]:44410".
- path
La vía de la API REST, por ejemplo
/api/auth
.- method
"PUT", "POST" o "DELETE".
- user
El nombre del usuario (o "Ninguno").
Una entrada de registro de ejemplo tiene este aspecto:
2019-02-06 10:33:01.302514 mgr.x [INF] [DASHBOARD] \ from='https://[::ffff:127.0.0.1]:37022' path='/api/rgw/user/exu' method='PUT' \ user='admin' params='{"max_buckets": "1000", "display_name": "Example User", "uid": "exu", "suspended": "0", "email": "user@example.com"}'
El registro de la carga útil de la petición (la lista de argumentos y sus valores) está habilitado por defecto. Puede inhabilitarlo de la siguiente manera:
cephuser@adm >
ceph dashboard set-audit-api-log-payload false
11.6 Configuración de NFS Ganesha en Ceph Dashboard #
Ceph Dashboard puede gestionar las exportaciones de NFS Ganesha que utilizan CephFS u Object Gateway como almacén secundario. La consola gestiona los archivos de configuración de NFS Ganesha almacenados en objetos RADOS en el clúster de CephFS. NFS Ganesha debe almacenar parte de su configuración en el clúster de Ceph.
Ejecute el comando siguiente para configurar la ubicación del objeto de configuración de NFS Ganesha:
cephuser@adm >
ceph dashboard set-ganesha-clusters-rados-pool-namespace pool_name[/namespace]
Ahora puede gestionar las exportaciones de NFS Ganesha mediante Ceph Dashboard.
11.6.1 Configuración de varios clústeres de NFS Ganesha #
Ceph Dashboard admite la gestión de exportaciones de NFS Ganesha que pertenecen a diferentes clústeres de NFS Ganesha. Se recomienda que cada clúster de NFS Ganesha almacene sus objetos de configuración en un repositorio o espacio de nombres RADOS diferente para aislar las configuraciones entre sí.
Utilice el comando siguiente para especificar las ubicaciones de la configuración de cada clúster de NFS Ganesha:
cephuser@adm >
ceph dashboard set-ganesha-clusters-rados-pool-namespace cluster_id:pool_name[/namespace](,cluster_id:pool_name[/namespace])*
La cadena cluster_id es arbitraria e identifica de forma exclusiva el clúster de NFS Ganesha.
Al configurar Ceph Dashboard con varios clústeres de NFS Ganesha, la interfaz de usuario Web permite elegir automáticamente a qué clúster pertenece una exportación.
11.7 Depuración de complementos #
Los complementos de Ceph Dashboard amplían la funcionalidad de la consola. El complemento de depuración permite personalizar el comportamiento de la consola según el modo de depuración. Puede habilitarse, inhabilitarse o comprobarse con el comando siguiente:
cephuser@adm >
ceph dashboard debug status Debug: 'disabled'cephuser@adm >
ceph dashboard debug enable Debug: 'enabled'cephuser@adm >
dashboard debug disable Debug: 'disabled'
Por defecto, está inhabilitado. Este es el valor recomendado para las distribuciones de producción. Si es necesario, se puede habilitar el modo de depuración sin necesidad de reiniciar.