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|falseCada 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 N
- A complexidade mínima da senha (padrão 10): - cephuser@adm >ceph dashboard set-pwd-policy-min-complexity N- A 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 dos usuários 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 -i [PASSWORD_FILE] [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 -i PASSWORD_FILE
- 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 PASSWORD
- Criar uma função e especificar permissões de escopo: - cephuser@adm >ceph dashboard ac-role-create rbd/pool-manager- cephuser@adm >ceph dashboard ac-role-add-scope-perms rbd/pool-manager \ rbd-image read create update delete- cephuser@adm >ceph dashboard ac-role-add-scope-perms rbd/pool-manager pool read create
- Associar 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 50311.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 none11.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 trueSe 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 false11.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.