11 Gerenciar usuários e funções na linha de comando #
Esta seção descreve como gerenciar contas de usuário usadas pelo Ceph Dashboard. Ela ajuda você a criar ou modificar as contas de usuário e definir as funções e permissões de usuário apropriadas.
11.1 Gerenciando a política de senha #
Por padrão, o recurso de política de senha está habilitado, incluindo as seguintes verificações:
A senha tem mais de N caracteres?
As senhas antiga e nova são iguais?
O recurso de política de senha pode ser ativado ou desativado completamente:
cephuser@adm >
ceph dashboard set-pwd-policy-enabled true|false
Cada uma destas verificações pode ser ativada ou desativada:
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
As seguintes opções tambem estão disponíveis para configurar o comportamento da política de senha.
O tamanho mínimo da senha (padrão 8):
cephuser@adm >
ceph dashboard set-pwd-policy-min-length NA complexidade mínima da senha (padrão 10):
cephuser@adm >
ceph dashboard set-pwd-policy-min-complexity NA complexidade da senha é calculada pela classificação de cada caractere na senha.
Uma lista de palavras separadas por vírgula que não podem ser usadas em uma senha:
cephuser@adm >
ceph dashboard set-pwd-policy-exclusion-list word[,...]
11.2 Gerenciando contas dos usuários #
O Ceph Dashboard suporta o gerenciamento de várias contas de usuário. Cada conta de usuário consiste em nome de usuário, senha (armazenada em formato criptografado com bcrypt
), além de nome e endereço de e-mail opcionais.
As contas de usuário são armazenadas no banco de dados de configuração do Ceph Monitor e compartilhadas globalmente com todas as instâncias do Ceph Manager.
Use os seguintes comandos para gerenciar as contas de usuário:
- Mostrar usuários existentes:
cephuser@adm >
ceph dashboard ac-user-show [USERNAME]- Criar um novo usuário:
cephuser@adm >
ceph dashboard ac-user-create USERNAME [PASSWORD] [ROLENAME] [NAME] [EMAIL]- Apagar um usuário:
cephuser@adm >
ceph dashboard ac-user-delete USERNAME- Mudar a senha de um usuário:
cephuser@adm >
ceph dashboard ac-user-set-password USERNAME PASSWORD- Modificar nome e e-mail de um usuário:
cephuser@adm >
ceph dashboard ac-user-set-info USERNAME NAME EMAIL- Desabilitar usuário
cephuser@adm >
ceph dashboard ac-user-disable USERNAME- Habilitar Usuário
cephuser@adm >
ceph dashboard ac-user-enable USERNAME
11.3 Funções e permissões de usuário #
Esta seção descreve quais escopos de segurança você pode atribuir a uma função de usuário, como gerenciar as funções deo usuário e atribuí-las a contas de usuário.
11.3.1 Definindo escopos de segurança #
As contas de usuário são associadas a um conjunto de funções que definem quais partes do painel de controle podem ser acessadas pelo usuário. As partes do painel de controle são agrupadas dentro de um escopo de segurança. Os escopos de segurança são predefinidos e estáticos. Atualmente, os seguintes escopos de segurança estão disponíveis:
- hosts
Inclui todos os recursos relacionados à entrada do menu
.- config-opt
Inclui todos os recursos relacionados ao gerenciamento das opções de configuração do Ceph.
- pool
Inclui todos os recursos relacionados ao gerenciamento de pools.
- osd
Inclui todos os recursos relacionados ao gerenciamento do Ceph OSD.
- monitor
Inclui todos os recursos relacionados ao gerenciamento do Ceph Monitor.
- rbd-image
Inclui todos os recursos relacionados ao gerenciamento de imagens do Dispositivo de Blocos RADOS.
- rbd-mirroring
Inclui todos os recursos relacionados ao gerenciamento de espelhamento do Dispositivo de Blocos RADOS.
- iscsi
Inclui todos os recursos relacionados ao gerenciamento do iSCSI.
- rgw
Inclui todos os recursos relacionados ao gerenciamento do Gateway de Objetos.
- cephfs
Inclui todos os recursos relacionados ao gerenciamento do CephFS.
- manager
Inclui todos os recursos relacionados ao gerenciamento do Ceph Manager.
- registro
Inclui todos os recursos relacionados ao gerenciamento de registros do Ceph.
- grafana
Inclui todos os recursos relacionados ao proxy do Grafana.
- prometheus
Inclua todos os recursos relacionados ao gerenciamento de alertas do Prometheus.
- dashboard-settings
Permite mudar as configurações do painel de controle.
11.3.2 Especificando funções de usuário #
Uma função especifica um conjunto de mapeamentos entre um escopo de segurança e um conjunto de permissões. Há quatro tipos de permissões: “read”, “create”, “update” e “delete”.
O exemplo a seguir especifica uma função em que um usuário tem permissões de "leitura" e "criação" para recursos relacionados ao gerenciamento de pools e tem permissões completas para recursos relacionados ao gerenciamento de imagens RBD:
{ 'role': 'my_new_role', 'description': 'My new role', 'scopes_permissions': { 'pool': ['read', 'create'], 'rbd-image': ['read', 'create', 'update', 'delete'] } }
O painel de controle já dispõe de um conjunto de funções predefinidas que chamamos de funções de sistema. Você pode usá-las logo após uma instalação recente do Ceph Dashboard:
- administrator
Concede permissões completas para todos os escopos de segurança.
- read-only
Concede permissão de leitura para todos os escopos de segurança, exceto as configurações do painel de controle.
- block-manager
Concede permissões completas para os escopos “rbd-image”, “rbd-mirroring” e “iscsi”.
- rgw-manager
Concede permissões completas para o escopo “rgw”.
- cluster-manager
Concede permissões completas para os escopos “hosts”, “osd”, “monitor”, “manager” e “config-opt”.
- pool-manager
Concede permissões completas para o escopo “pool”.
- cephfs-manager
Concede permissões completas para o escopo “cephfs”.
11.3.2.1 Gerenciando funções personalizadas #
Você pode criar novas funções de usuário executando os seguintes comandos:
- Criar uma nova função:
cephuser@adm >
ceph dashboard ac-role-create ROLENAME [DESCRIPTION]- Apagar uma função:
cephuser@adm >
ceph dashboard ac-role-delete ROLENAME- Adicionar permissões de escopo a uma função:
cephuser@adm >
ceph dashboard ac-role-add-scope-perms ROLENAME SCOPENAME PERMISSION [PERMISSION...]- Apagar permissões de escopo a uma função:
cephuser@adm >
ceph dashboard ac-role-del-perms ROLENAME SCOPENAME
11.3.2.2 Atribuindo funções às contas dos usuários #
Use os seguintes comandos para atribuir funções a usuários:
- Definir funções de usuário:
cephuser@adm >
ceph dashboard ac-user-set-roles USERNAME ROLENAME [ROLENAME ...]- Adicionar mais funções a um usuário:
cephuser@adm >
ceph dashboard ac-user-add-roles USERNAME ROLENAME [ROLENAME ...]- Apagar funções de um usuário:
cephuser@adm >
ceph dashboard ac-user-del-roles USERNAME ROLENAME [ROLENAME ...]
Se você cria funções de usuário personalizadas e posteriormente pretende remover o cluster do Ceph com o executor ceph.purge
, precisa purgar primeiro as funções personalizadas. Encontre mais detalhes na Seção 13.9, “Removendo um cluster inteiro do Ceph”.
11.3.2.3 Exemplo: Criando um usuário e uma função personalizada #
Esta seção ilustra um procedimento para criar uma conta de usuário capaz de gerenciar imagens RBD, ver e criar pools do Ceph e obter acesso apenas leitura a qualquer outro escopo.
Criar um novo usuário chamado
tux
:cephuser@adm >
ceph dashboard ac-user-create tux PASSWORDCriar uma função e especificar permissões de escopo:
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 createAssociar as funções ao usuário
tux
:cephuser@adm >
ceph dashboard ac-user-set-roles tux rbd/pool-manager read-only
11.4 Configuração de proxy #
Para estabelecer um URL fixo para acessar o Ceph Dashboard, ou se você não deseja permitir conexões diretas com os nós do gerenciador, pode configurar um proxy que encaminhe automaticamente as solicitações recebidas para a instância ativa do ceph-mgr
no momento.
11.4.1 Acessando o painel de controle com proxies reversos #
Se você acessa o painel de controle por meio de uma configuração de proxy reverso, talvez seja necessário usar um prefixo de URL para acessá-lo. Para fazer com que o painel de controle use hiperlinks que incluam seu prefixo, você pode definir a configuração url_prefix
:
cephuser@adm >
ceph config set mgr mgr/dashboard/url_prefix URL_PREFIX
Em seguida, você pode acessar o painel de controle em http://HOST_NAME:PORT_NUMBER/URL_PREFIX/
.
11.4.2 Desabilitando redirecionamentos #
Se o Ceph Dashboard estiver protegido por um proxy de equilíbrio de carga, como HAProxy, desabilite o comportamento de redirecionamento para evitar situações em que os URLs internos (não resolvidos) são publicados no cliente de front end. Use o seguinte comando para fazer com que o painel de controle responda com um erro HTTP (padrão 500
), em vez de redirecionar para o painel de controle ativo:
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_behaviour "error"
Para redefinir a configuração para o comportamento de redirecionamento padrão, use o seguinte comando:
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_behaviour "redirect"
11.4.3 Configurando códigos de status de erro #
Se o comportamento de redirecionamento estiver desabilitado, você deverá personalizar o código de status HTTP dos painéis de controle de standby. Para fazer isso, execute o seguinte comando:
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_error_status_code 503
11.4.4 Exemplo de configuração do HAProxy #
O exemplo de configuração a seguir refere-se à transferência de TLS/SSL por meio do HAProxy.
A configuração funciona nas seguintes condições: Se o painel de controle falhar, o cliente de front end poderá receber uma resposta de redirecionamento HTTP (303
) e será redirecionado para um host não resolvido.
Isso acontece quando o failover ocorre durante duas verificações de saúde do HAProxy. Nessa situação, o nó do painel de controle que antes estava ativo agora responderá com um código 303 que aponta para o novo nó ativo. Para evitar essa situação, você deve desabilitar o comportamento de redirecionamento nos nós de standby.
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 Fazendo auditoria das solicitações de API #
A API REST do Ceph Dashboard pode gravar solicitações PUT, POST e DELETE no registro de auditoria do Ceph. Por padrão, o registro está desabilitado, mas você pode habilitá-lo com o seguinte comando:
cephuser@adm >
ceph dashboard set-audit-api-enabled true
Se habilitado, os seguintes parâmetros serão registrados por cada solicitação:
- from
A origem da solicitação, por exemplo “https://[::1]:44410”.
- path
O caminho da API REST, por exemplo
/api/auth
.- method
“PUT”, “POST” ou “DELETE”.
- user
O nome do usuário (ou “Nenhum”).
Veja a seguir um exemplo de entrada de registro:
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"}'
Por padrão, o registro de payload de solicitação (a lista de argumentos e seus valores) está habilitado. Você pode desabilitá-lo da seguinte forma:
cephuser@adm >
ceph dashboard set-audit-api-log-payload false
11.6 Configurando o NFS Ganesha no Ceph Dashboard #
O Ceph Dashboard pode gerenciar exportações do NFS Ganesha que usam o CephFS ou o Gateway de Objetos como backstore. O painel de controle gerencia os arquivos de configuração do NFS Ganesha armazenados em objetos RADOS no cluster do CephFS. O NFS Ganesha deve armazenar parte da sua configuração no cluster do Ceph.
Execute o seguinte comando para configurar o local do objeto de configuração do NFS Ganesha:
cephuser@adm >
ceph dashboard set-ganesha-clusters-rados-pool-namespace pool_name[/namespace]
Agora você pode gerenciar as exportações do NFS Ganesha usando o Ceph Dashboard.
11.6.1 Configurando vários clusters do NFS Ganesha #
O Ceph Dashboard suporta o gerenciamento de exportações do NFS Ganesha pertencentes a diferentes clusters do NFS Ganesha. Recomendamos que cada cluster do NFS Ganesha armazene seus objetos de configuração em um pool/namespace RADOS diferente para isolar umas configurações das outras.
Use o seguinte comando para especificar os locais da configuração de cada cluster do NFS Ganesha:
cephuser@adm >
ceph dashboard set-ganesha-clusters-rados-pool-namespace cluster_id:pool_name[/namespace](,cluster_id:pool_name[/namespace])*
O cluster_id é uma string arbitrária que identifica exclusivamente o cluster do NFS Ganesha.
Ao configurar o Ceph Dashboard com vários clusters do NFS Ganesha, a IU da Web permite escolher automaticamente a qual cluster uma exportação pertence.
11.7 Plug-ins de depuração #
Os plug-ins do Ceph Dashboard estendem a funcionalidade do painel de controle. O plug-in de depuração permite a personalização do comportamento do painel de controle de acordo com o modo de depuração. Ele pode ser habilitado, desabilitado ou verificado com o seguinte comando:
cephuser@adm >
ceph dashboard debug status Debug: 'disabled'cephuser@adm >
ceph dashboard debug enable Debug: 'enabled'cephuser@adm >
dashboard debug disable Debug: 'disabled'
Por padrão, esse modo está desabilitado. Essa é a configuração recomendada para implantações de produção. Se necessário, o modo de depuração pode ser habilitado sem necessidade de reinicialização.