Role-based access control and external authentication is GA in ECE 2.3 | Elastic Blog
Engineering

Controle de acesso baseado em funções e autenticação externa entra em disponibilidade geral no ECE 2.3

Estamos empolgados em anunciar que, com o lançamento do Elastic Cloud Enterprise (ECE) 2.3, o controle de acesso baseado em funções e a autenticação com fontes externas agora já estão disponíveis. Esses recursos permitem ter vários usuários cujo acesso à plataforma ECE é controlado por função. Você pode adicionar usuários nativamente no ECE e conectar seus próprios servidores de diretório ou provedores de identidade para oferecer acesso aos usuários existentes.

Inicialmente adicionamos suporte beta para esses recursos na versão ECE 2.2. Além de resolver as falhas com a versão 2.3, adicionamos suporte para o Active Directory além das opções LDAP e SAML existentes.

Como funciona?

Habilitar o RBAC para o ECE adiciona uma implantação de segurança, que é uma implantação de sistema que gerencia toda a configuração e as permissões de autenticação. Quando um usuário tenta fazer login, o ECE verifica a autenticação usando a implantação de segurança, recorrendo aos usuários do sistema se necessário. Se o usuário fizer uma autenticação bem-sucedida, o ECE aplicará todas as suas funções atribuídas e as converterá em permissões de granularidade fina que controlam quais dados cada usuário pode ver e quais ações ele pode executar.

Observe que as funções de ECE de um usuário são separadas de quaisquer credenciais que o usuário mantenha para as implantações hospedadas no ECE. Um usuário poderia não ter nenhum acesso ao ECE, mas ter acesso administrativo às implantações hospedadas, e vice-versa.

Quais funções estão disponíveis?

O ECE oferece um conjunto rico de operações, tanto no nível da plataforma quanto no nível da implantação. Para poupar os administradores do esforço de definir e manter suas próprias definições de função, o ECE fornece um conjunto de funções predefinidas que tratam dos casos de uso mais comuns. Essas funções serão mantidas atualizadas à medida que mais recursos forem fornecidos, por isso não é necessário se preocupar em manter suas próprias definições atualizadas.

As funções estão descritas a seguir. Os usuários podem manter mais de uma função e combiná-las conforme necessário — por exemplo, um “Platform admin” (Administrador de plataforma) pode fazer qualquer tarefa, por isso não é preciso lhe atribuir outra função. Entretanto, um “Platform viewer” (Visualizador de plataforma) pode ver tudo, mas não pode alterar tudo, por isso convém combinar essa função com a função de “Deployments manager” (Gerente de implantações).

Platform admin

Essa função permite que um usuário veja todos os dados e execute qualquer operação no ECE da mesma maneira que o usuário admin de nível de sistema (ou root no ECE 1.x) que é criado durante o processo de instalação. Essa função geralmente só seria mantida pelos administradores que são responsáveis por toda a plataforma do ECE. A seção “Platform” (Plataforma) na IU é um bom exemplo porque fornece informações sobre, por exemplo, alocadores e suas implantações, e a capacidade de liberar um alocador ou colocá-lo em modo de manutenção.

Platform viewer

Essa função oferece permissão somente de visualização para toda a plataforma e as implantações hospedadas. As permissões associadas são as mesmas daquelas mantidas pelo usuário de nível de sistema readonly. Ela é útil para fins de automatização, por exemplo, monitorar o status do ECE.

Deployments manager

Essa função permite que um usuário crie e gerencie implantações na plataforma. Um usuário com essa função pode executar todas as ações em uma implantação — escalonamento ascendente, escalonamento descendente, configuração de instantâneos, reinicialização de nós, redefinição de senhas e muito mais. Essa função não permite que um usuário acesse nenhuma operação e recurso de nível de plataforma como modelos de implantação, configurações de instância, alocadores, implantações de sistema etc.

É uma função adequada para qualquer um com responsabilidade de gerenciar implantações, mas sem incumbência de ver informações de nível de plataforma, como líderes de equipes de desenvolvimento.

Deployments viewer

Um usuário com essa função pode visualizar implantações, mas não pode modificá-las de maneira alguma. Essa função é adequada para membros de equipes de suporte ou de desenvolvimento.

Gerenciamento de usuários nativos

A maneira mais simples de começar com o RBAC no ECE é criar usuários nativos. Eles são mantidos na implantação de segurança, no reino nativo do Elasticsearch. Eles oferecem suporte a um número limitado de atributos: nome de usuário, nome completo, e-mail, senha, funções e se estão habilitados no momento.

Clique em "Users" (Usuários) no menu de navegação para visualizar seus provedores de autenticação, sendo que um deles é o perfil "Native users" (Usuários nativos). Ao abrir o perfil, você acessará uma lista de todos os usuários nativos. A lista inclui os dois usuários de sistema que são criados pelo instalador do ECE. Esses usuários não podem ser editados ou excluídos, e você não pode redefinir suas senhas aqui — consulte a documentação para obter mais instruções sobre como redefinir senhas.

Demonstração da criação de usuários nativos

Na página "Native users", você pode criar, editar e excluir usuários nativos. Esses usuários podem fazer login no ECE assim como os usuários do sistema, e seu acesso é controlado pelas funções que você atribui a eles.

Página de configurações do usuário

O ECE 2.3 também adiciona uma página de configurações do usuário. Clique no ícone de usuário na parte superior direita da página e clique em "Settings" (Configurações). Se você tiver feito login como um usuário nativo, poderá editar seu nome e e-mail ou alterar a senha. Se tiver feito login com um usuário de um provedor de autenticação externa, você verá uma página somente leitura com algumas informações básicas, o nome e o tipo do perfil de autenticação e as funções que você mantém.

Demonstração da edição das configurações do usuário

Provedores de autenticação externa

Se você já tiver um servidor LDAP, Active Directory ou SAML, poderá configurar o ECE para usá-los para fins de autenticação e autorização. Você pode inclusive configurar vários servidores, e a tentativa de autenticação ocorrerá na ordem que você definiu da mesma maneira que no Elasticsearch. O uso de suas fontes de autenticação existentes significa que você só precisa gerenciar os usuários em um único local. A configuração de mapeamento de funções para um provedor externo permite mapear os atributos dos usuários a funções no ECE, por isso quaisquer alterações nos atributos dos usuários, como associação ao grupo, são escolhidas pelo ECE automaticamente.

Na página de visão geral dos provedores de autenticação, clique em "Add provider" (Adicionar provedor) e escolha um tipo. Na página seguinte, você configurará o provedor. Vamos analisar as opções de configuração para uma instalação de LDAP básica.

Demonstração da criação de um provedor de LDAP

Provedor de autenticação LDAP

Configurações gerais:

  1. Cada perfil tem um nome. Além de usá-lo para identificar o perfil, o nome também é usado para gerar um ID de reino. Observe que, depois que um perfil é criado, o ID de reino nunca é alterado.
  2. Pelo menos um servidor LDAP deve ser definido, incluindo o protocolo ldap: ou ldaps: no início. Se você escolher uma estratégia de balanceamento de carga baseado em DNS, poderá especificar somente um único servidor.
  3. Escolha uma estratégia de balanceamento de carga, lembrando da restrição anterior.

Certificados confiáveis:

  1. Se o servidor LDAP for protegido de maneira que os clientes precisem manter certificados SSL/TLS específicos, você precisará preparar um arquivo de pacote e disponibilizá-lo ao ECE via URL. Consulte a documentação para obter mais detalhes.
  2. Se o pacote estiver protegido por senha, informe-a aqui.

Vincular credenciais:

  1. Se for obrigatório vincular as credenciais ao servidor LDAP, você poderá defini-las aqui.
  2. Como alternativa, se as credenciais não forem obrigatórias, clique no botão de alternância “Bind anonymously” (Vincular anonimamente).

Configurações do modo de busca:

  1. Você pode especificar cada detalhe para a busca de um usuário. Consulte a documentação para obter informações sobre esses campos. Pelo menos, você vai querer definir “Base DN for users” (DN de base para usuários) “cn=users,dc=example,dc=com”.
  2. Como alternativa, se em vez disso você precisar usar um modelo para executar consultas LDAP, clique no botão de opções “Template” (Modelo) e forneça um ou mais modelos.

Configurações de busca de grupo:

  1. De um jeito muito semelhante às configurações do modo de busca, você pode configurar a maneira como o ECE deve buscar por grupos de um usuário. Você vai querer definir “Base DN for groups” (DN de base para grupos), por exemplo “ou=groups,dc=example,dc=com”.

Mapeamentos de função:

  1. Um usuário precisa manter uma ou mais funções para executar alguma operação com o ECE. Você pode especificar funções padrão, que serão atribuídas a todos os usuários que fizerem uma autenticação bem-sucedida. Por exemplo, você poderia conceder a todos os usuários a função “Deployments viewer” (Visualizador de implantações), para que eles pudessem ver todas as implantações hospedadas no ECE, mas sem poder editar nada.
  2. O outro método de atribuir funções é através do mapeamento de funções. Segundo esse método, regras simples informam se o DN de usuário ou o DN de grupo corresponde a algum valor, então as funções especificadas são atribuídas. Você pode ter quantos mapeamentos precisar — por exemplo, um mapeamento que atribui aos usuários de operações de TI a função “Deployment viewer”, um mapeamento que atribui a todos os desenvolvedores a função “Deployment manager” e um mapeamento que atribui a todos os administradores a função “Platform viewer”.

Quando tiver concluído, clique em Create profile (Criar perfil), e o ECE reconfigurará a implantação de segurança. Agora você deve fazer login com uma variedade de usuários de LDAP para verificar se eles podem fazer a autenticação e se suas funções estão corretas. Pode verificar explicitamente as funções na página de configurações de usuário, e também navegar pela IU e verificar se o que eles podem ver e fazer é o que você espera.

Provedores de autenticação Active Directory e SAML

De um nível superior, o processo é semelhante ao LDAP do ponto de vista do ECE. Você cria um provedor de autenticação SAML ou Active Directory, atribui um nome a ele, especifica como o ECE deve se comunicar com o servidor e define os mapeamentos que devem ser aplicados.

Consulte a documentação para obter uma descrição completa de como configurar um provedor de autenticação SAML ou um provedor de autenticação Active Directory.

Suporte a API REST

Todas as operações anteriores também podem ser executadas usando a API REST. Por exemplo, para buscar uma lista de todos os usuários, mesmo aqueles que estão desabilitados no momento:

GET /api/v1/users?include_disabled=true

Suponha que você precisa conceder acesso a uma nova administradora de sistema, a Sarah. Você poderia criar um novo usuário nativo para ela da seguinte maneira:

POST /api/v1/users
{
  "user_name": "sarah",
  "security": {
    "roles": ["ece_platform_admin"],
    "password": "deadb33f"
  }
}

Se você quisesse alterar o acesso da Sarah, poderia enviar uma solicitação PATCH com apenas o campo que deseja alterar, nesse caso as funções:

PATCH /api/v1/users/sarah
{
  "security": {
    "roles": ["ece_platform_viewer"]
  }
}

Por fim, você poderia remover a conta da Sarah com uma solicitação DELETE:

DELETE /api/v1/users/sarah

Consulte a documentação de API REST para obter detalhes e exemplos dos endpoints do provedor de autenticação.

Comece hoje mesmo!

Para obter uma lista completa das alterações feitas no ECE 2.3, confira as notas de versão e, se quiser experimentar por conta própria, comece hoje mesmo com uma avaliação grátis por 30 dias.