No lançamento recente do ClusterControl versão 1.8.2 da Variousnines, introduzimos muitos recursos e alterações sofisticados. Um dos recursos importantes é o recém-aprimorado Sistema de Gerenciamento de Usuários, que abrange o Gerenciamento de Novos Usuários e LDAP. Um recurso complementar existente no ClusterControl é seu controle de acesso baseado em função (RBAC) para gerenciamento de usuários, que é o foco deste blog.
Controle de acesso baseado em função no ClusterControl
Para aqueles que não estão familiarizados com o Role-Based Access Controls (RBAC) do ClusterControl, é um recurso que permite restringir o acesso de determinados usuários a recursos específicos do cluster de banco de dados e ações ou tarefas administrativas. Por exemplo, acesso à implantação (adicionar balanceadores de carga, adicionar cluster existente), recursos de gerenciamento e monitoramento. Isso garante que apenas usuários autorizados tenham permissão para trabalhar e visualizar com base em suas respectivas funções e evita intrusões indesejadas ou erros humanos, limitando o acesso de uma função a tarefas administrativas. O acesso à funcionalidade é refinado, permitindo que o acesso seja definido por uma organização ou usuário. O ClusterControl usa uma estrutura de permissões para definir como um usuário pode interagir com a funcionalidade de gerenciamento e monitoramento com base em seu nível de autorização.
O controle de acesso baseado em função no ClusterControl desempenha um papel importante, especialmente para usuários administradores que o utilizam constantemente como parte de suas tarefas de DBA. Um DBA ClusterControl deve estar familiarizado com esse recurso, pois permite que o DBA delegue tarefas a membros da equipe, controle o acesso à funcionalidade ClusterControl e não exponha todos os recursos e funcionalidades a todos os usuários. Isso pode ser feito utilizando a funcionalidade de gerenciamento de usuários, que permite controlar quem pode fazer o quê. Por exemplo, você pode configurar uma equipe como analista, devops ou DBA e adicionar restrições de acordo com o escopo de responsabilidades para um determinado cluster de banco de dados.
O controle de acesso ClusterControl é mostrado no diagrama a seguir,
Detalhes dos termos usados acima são fornecidos abaixo. Uma equipe pode ser atribuída a um ou mais clusters de banco de dados gerenciados pelo ClusterControl. Uma equipe consiste em usuários vazios ou vários em uma equipe. Por padrão, ao criar uma nova equipe, a conta de superadministrador sempre estará associada a ela. A exclusão do superadministrador não o impede de ser vinculado a essa nova equipe.
Um usuário e um cluster devem ser atribuídos a uma equipe; é uma implementação obrigatória dentro do ClusterControl. Por padrão, a conta de superadministrador é designada para uma equipe de administração, que já foi criada por padrão. Clusters de banco de dados também são atribuídos à equipe de administração por padrão.
Uma função não pode ter nenhum usuário atribuído ou pode ser atribuída a vários usuários de acordo com sua função ClusterControl.
Funções no ClusterControl
As funções no ClusterControl são realmente definidas por padrão. Essas funções padrão seguem:
-
Super Admin - É uma função oculta, mas é a função de superadministrador (superadmin), o que significa todos os recursos estão disponíveis para esta função. Por padrão, o usuário que você criou após uma instalação bem-sucedida representa sua função de superadministrador. Além disso, ao criar uma nova equipe, o superadministrador sempre é atribuído à nova equipe por padrão.
-
Admin - Por padrão, quase todos os recursos são visíveis. Ser visível significa que os usuários com a função Admin podem realizar tarefas de gerenciamento. Os recursos que não estão disponíveis para esta função são o Consultor de Clientes e o Gerenciamento de Chaves SSL.
-
Usuário - Integrações, acesso a todos os clusters e alguns recursos não estão disponíveis para esta função e são negados por predefinição. Isso é útil se você deseja atribuir usuários regulares que não se destinam a trabalhar com banco de dados ou tarefas administrativas. Há algumas etapas manuais a serem executadas para que aqueles na função de usuário vejam outros clusters.
As funções no ClusterControl são arbitrárias para que os administradores possam criar funções arbitrárias e atribuí-las a um usuário em Equipes.
Como acessar as funções do ClusterControl
Você pode criar uma função personalizada com seu próprio conjunto de níveis de acesso. Atribua a função a um usuário específico na guia Equipes. Isso pode ser alcançado localizando o Gerenciamento de Usuários na barra lateral no canto direito. Veja a imagem abaixo:
Aplicando controles de acesso baseados em função com ClusterControl
A aplicação do RBAC é específica do domínio do usuário, o que restringe o acesso de um usuário aos recursos do ClusterControl de acordo com suas funções e privilégios. Com isso em mente, devemos começar a criar um usuário específico.
Criando um usuário no ClusterControl
Para criar um usuário, comece na guia Gerenciamento de usuários ➝ Equipes. Agora, vamos criar uma equipe primeiro.
Uma vez criada, há uma conta de superadministrador que é vinculada por padrão quando uma equipe é criada.
Agora, vamos adicionar um novo usuário. A adição de um novo usuário deve ser feita em uma equipe, para que possamos criá-lo em DevOps.
Como você deve ter notado, o novo usuário que criamos agora está sob a função User, que é adicionada por padrão no ClusterControl. Então a equipe também está sob DevOps.
Basicamente, há dois usuários agora na equipe de DevOps, conforme mostrado abaixo:
Observe que as funções são específicas do domínio do usuário, portanto, aplicam restrições de acesso apenas a esse usuário específico, e não à equipe à qual pertence.
Funções de administrador versus usuário (funções padrão no ClusterControl)
Como temos duas funções adicionadas por padrão no ClusterControl, existem limitações que são definidas por padrão. Para saber quais são, basta acessar Gerenciamento de usuários ➝ Controle de acesso. Abaixo está uma captura de tela que descreve os recursos ou privilégios disponíveis que um usuário pertencente à função pode fazer:
Função de administrador
Função do usuário
A função Admin tem muito mais privilégios, enquanto a Função de usuário tem alguns privilégios restritos. Essas funções padrão podem ser modificadas de acordo com a configuração desejada. Adicionar uma função também permite iniciar e definir quais funções são permitidas ou não. Por exemplo, criaremos uma nova Função. Para criar uma função, basta clicar no botão "+" mais ao longo das funções. Você pode ver a nova função que criamos chamada Visualizador.
Todos os ticks estão desmarcados. Basta verificar na coluna Permitir para habilitar o recurso ou privilégio ou verificar na coluna Negar se você deseja negar o acesso. A coluna Gerenciar permite que os usuários nessa função realizem tarefas de gerenciamento. Enquanto a coluna Modificar permite habilitar modificações que estão disponíveis apenas para privilégios ou recursos em Alarmes, Trabalhos e Configurações.
Testando RBAC
Neste exemplo, os seguintes clusters estão presentes no meu controlador conforme mostrado abaixo:
Isso pode ser visualizado pela conta de superadministrador neste ambiente.
Agora que temos o RBAC definido para o usuário que acabamos de criar, vamos tentar fazer login usando o e-mail e a senha que acabamos de definir.
Isso é o que é criado,
Nenhum cluster está disponível e visível, e alguns privilégios são negados, conforme mostrado abaixo, como Configurações de gerenciamento de chaves e Notificações por e-mail:
Ajustando o RBAC
Como os privilégios nas funções são mutáveis, é fácil gerenciá-los via Gerenciamento de usuários ➝ Controle de acesso.
Agora, vamos permitir que o usuário criado visualize um cluster. Como nosso usuário tem acesso negado a todos os clusters, precisamos habilitá-lo. Ver abaixo,
Agora, como afirmamos anteriormente com base no diagrama, os Clusters são controlados pela Equipe. Por exemplo, há as seguintes atribuições de cluster, abaixo:
Como precisamos atribuir o cluster à equipe certa, selecionar o cluster específico e clicar no botão "Alterar equipe" mostrará o prompt que permite reatribuí-lo à equipe certa.
Agora, vamos atribuí-lo ao DevOps.
Agora, faça login novamente como o usuário recém-criado e poderemos ver o cluster.
Resumo
Role-Based Access Control (RBAC) no ClusterControl é um recurso que fornece controle de acesso restritivo refinado para cada usuário que você criou no ClusterControl, permitindo maior segurança e controle de acesso mais restritivo com base em um papel do usuário.