Este tópico explica como configurar a autenticação do Active Directory (AD) para uma instância do Alibaba Cloud Elasticsearch. Essa configuração permite que usuários com funções específicas em um domínio AD acessem a instância.
Pré-requisitos
Verifique se você concluiu as seguintes operações:
-
Crie uma instância do Alibaba Cloud Elasticsearch. Este tópico usa uma instância da versão 7.10 como exemplo.
Para mais informações, consulte Criar uma instância do Alibaba Cloud Elasticsearch.
-
Prepare um ambiente de domínio AD e dados na mesma VPC da sua instância do Alibaba Cloud Elasticsearch. Este tópico usa o Windows Server 2012 como exemplo.
Este tópico utiliza o nome de usuário ccy1 e o domínio raiz ccy.com. Por exemplo, no domínio AD
ccy.com, crie o usuárioccy1@ccy.com(o nome de logon para versões anteriores ao Windows 2000 éCCY\ccy1). Na aba Account das propriedades do usuário, selecione Password never expires e defina Account expires como Never.
Limitações
Desde outubro de 2020, o Alibaba Cloud Elasticsearch ajustou sua arquitetura de rede em diferentes regiões. Esse ajuste afeta as instâncias recém-criadas das seguintes maneiras:
Instâncias na arquitetura de rede antiga podem usar o recurso SNAT ou um proxy Nginx autogerenciado para acessar a rede pública.
Instâncias na nova arquitetura de rede possuem restrições de rede para o recurso AD. Use uma conexão PrivateLink para conectar as VPCs. Para detalhes de configuração, consulte Configurar uma conexão PrivateLink. Para acessar a rede pública, configure um proxy Nginx para encaminhamento de solicitações.
O Alibaba Cloud Elasticsearch oferece suporte à autenticação AD apenas em uma única zona de disponibilidade para instâncias na arquitetura de rede antiga.
Para mais informações sobre a arquitetura de rede, consulte [[Aviso] Ajuste da Arquitetura de Rede](t2521816.xdita#).
Procedimento
Etapa 1: Obter o nome de domínio do endpoint (opcional)
Clusters do Elasticsearch criados em outubro de 2020 ou posteriormente são implantados na nova arquitetura de rede e residem na VPC da conta de serviço do Elasticsearch. Se o seu cluster estiver nessa arquitetura, use o serviço PrivateLink para estabelecer uma conexão privada entre a VPC do serviço e a sua VPC. Em seguida, obtenha o nome de domínio do endpoint correspondente para uso futuro. Para obter o nome de domínio de um endpoint, execute as etapas a seguir:
-
Crie uma instância do Classic Load Balancer (CLB) que ofereça suporte ao serviço PrivateLink e resida na mesma VPC do cluster Elasticsearch criado.
Para mais informações, consulte Configurar uma conexão PrivateLink.
-
Configure a instância CLB.
Especifique o servidor que hospeda o LDAP como servidor backend e defina a porta do listener como 389.
Para mais informações, consulte Configurar uma conexão PrivateLink.
-
Crie um serviço de endpoint.
Para mais informações, consulte Configurar uma conexão PrivateLink.
-
Configure uma conexão privada com o cluster Elasticsearch.
Para mais informações, consulte Configurar uma conexão PrivateLink.
-
Obtenha o nome de domínio do endpoint usado para acessar o serviço de endpoint.
Para mais informações, consulte Configurar uma conexão PrivateLink.
NotaAnote o nome de domínio obtido, pois ele será utilizado nas configurações subsequentes.
Etapa 2: Configurar a autenticação AD
Os recursos de segurança do Elasticsearch permitem a comunicação com um domínio AD para autenticação de usuários via LDAP. Portanto, o realm active_directory funciona de maneira semelhante ao realm ldap. Assim como um diretório LDAP, um domínio AD armazena usuários e grupos hierarquicamente. O domínio AD verifica a identidade do usuário enviando uma solicitação de bind LDAP. Após a verificação, o sistema busca a entrada do usuário no Active Directory. Ao localizar o usuário, o sistema recupera a associação a grupos por meio do atributo tokenGroups da entrada do usuário. Para mais informações, consulte Configuring an Active Directory realm.
-
Para instâncias do Alibaba Cloud Elasticsearch nas versões 6.x, 7.x ou 8.x:
Adicione a seguinte configuração ao arquivo YML da instância Elasticsearch de destino para definir a autenticação AD para o usuário correspondente. Para mais informações, consulte Configurar parâmetros YML.
-
Para instâncias do Alibaba Cloud Elasticsearch em outras versões:
Tente adicionar a seguinte configuração ao arquivo YML da instância. Se a alteração falhar no console e a instância não reiniciar, envie um ticket e solicite ao suporte técnico que aplique a configuração.
xpack.security.authc.realms.active_directory.my_ad.order: 2
xpack.security.authc.realms.active_directory.my_ad.domain_name: ccy.com
xpack.security.authc.realms.active_directory.my_ad.url: ldap://ep-bp1i321219*******-cn-hangzhou-h.epsrv-bp15571d5ps*******.cn-hangzhou.privatelink.aliyuncs.com:389
xpack.security.authc.realms.active_directory.my_ad.bind_dn: cc**@ccy.com
xpack.security.authc.realms.active_directory.my_ad.bind_password: your_password
Parâmetro | Descrição |
order | Ordem de autenticação para este realm. Nota Na versão 8.x, o valor de |
domain_name | Nome do domínio raiz. |
url | URL e número da porta para a conexão privada com o domínio AD. Para mais informações, consulte Configuring an Active Directory realm. Importante Na nova arquitetura de rede, defina o valor como |
bind_dn | Usuário que executa todas as solicitações de pesquisa do AD. |
bind_password | Senha da conta |
Etapa 3: Mapear funções para contas de domínio
-
Faça login no console Kibana da sua instância.
Para mais informações, consulte Fazer login no console Kibana.
NotaA interface do usuário pode variar dependendo da versão do Kibana.
Na página inicial do Kibana, clique em Developer Tools.
-
Na aba Console, execute o comando a seguir para definir o usuário ccy1 no domínio AD como administrador.
PUT /_security/role_mapping/basic_users { "roles": [ "superuser" ], "enabled": true, "rules": { "any": [ { "field": { "groups": "cn=ali,dc=ccy,dc=com" } }, { "field": { "dn": "cn=ccy1,cn=ali,dc=ccy,dc=com" } } ] } }
Etapa 4: Verificar o resultado
Faça login no Kibana do Elasticsearch de destino como o usuário autorizado ccy1.
Na página inicial do Kibana, clique em Developer Tools.
-
Na aba Console, execute o comando a seguir para verificar se o usuário ccy1 tem permissão para executar a ação correspondente.
GET _cat/indicesSe o usuário ccy1 tiver permissões, o sistema retornará o resultado a seguir. Isso indica que as permissões para o usuário ccy1 no domínio AD foram configuradas com sucesso.
1 green open .apm-agent-configuration 4zvRAxNyTv6_xxx 1 1 0 0 522b 261b 2 green open .monitoring-kibana-7-2021.12.08 Kr9Om1WUQW67xxx 1 1 3732 0 1.9mb 1.1mb 3 green open product_info WPZ11CtfRL-hxxx 5 1 8 0 49.2kb 24.6kb 4 green open .kibana_1 ffs3ho7cTte0xxx 1 1 31 0 41.5mb 20.7mb 5 green open .monitoring-es-7-2021.12.08 1efDbJNWT8uRxxx 1 1 44838 74520 63.1mb 31.6mb 6 green open .security-7 Gu8XhA-yQ46mxxx 1 1 58 9 302.1kb 151kb 7 green open .monitoring-es-7-2021.12.06 PCVdQeP-R2SKxxx 1 1 111372 123120 140.5mb 70.2mb 8 green open .monitoring-es-7-2021.12.07 udTlD2Q_S1ylxxx 1 1 186883 157638 229.1mb 114.3mb 9 green open .apm-custom-link JVXx0qioQ9uMxxx 1 1 0 0 522b 261b 10 green open .kibana_task_manager_1 nDKy8KLASsevxxx 1 1 6 3036 720kb 357kb 11 green open .monitoring-kibana-7-2021.12.06 g0mwhwFaTduGxxx 1 1 12312 0 3.8mb 1.8mb 12 green open .monitoring-kibana-7-2021.12.07 xfW97NKTT_a6xxx 1 1 17248 0 5.8mb 2.9mb 13 green open .kibana-event-log-7.10.0-000001 rOefxK00Qtqrxxx 1 1 3 0 33.2kb 16.6kb 14 green open product_info1 VUF0kfAfSrG9xxx 1 1 8 0 11.9kb 5.9kb