A autenticação via Active Directory (AD) permite que usuários corporativos façam login na instância do RDS PostgreSQL com credenciais do AD, sem necessidade de senhas separadas para o banco de dados. Este guia descreve como configurar um controlador de domínio AD em uma instância do Elastic Compute Service (ECS) e conectar a instância do RDS a esse domínio AD autogerenciado via LDAP.
Como funciona
Ao receber uma conexão, a instância do RDS encaminha a solicitação de autenticação ao controlador de domínio AD pelo protocolo LDAP (Lightweight Directory Access Protocol). O controlador verifica as credenciais e retorna o resultado. Se a autenticação via AD estiver ativada para a conexão, o controlador de domínio AD gerencia a verificação da senha. Caso contrário, o ApsaraDB RDS utiliza seu próprio mecanismo de verificação.
A comunicação entre a instância do RDS e o controlador de domínio AD ocorre exclusivamente pela rede privada. Ambos devem residir na mesma Virtual Private Cloud (VPC).
Pré-requisitos
Antes de começar, verifique se você possui:
Uma instância do ApsaraDB RDS for PostgreSQL com PostgreSQL 10 ou superior, versão secundária do mecanismo 20210228 ou posterior e discos em nuvem. Para atualizar a versão secundária do mecanismo, consulte Update the minor engine version of an ApsaraDB RDS for PostgreSQL instance
Uma instância do ECS na mesma VPC da instância do RDS, com Windows Server 2016 ou superior
Grupo de segurança do ECS configurado para permitir tráfego de entrada do endereço IP privado da instância do RDS. Consulte Adicionar uma regra de grupo de segurança. Se o firewall do ECS estiver ativado, configure-o para permitir o mesmo tráfego (o firewall vem desativado por padrão)
Conta de domínio pertencente ao grupo Domain Admins
Acesso ao console do ApsaraDB RDS
Etapa 1: Configurar o controlador de domínio AD no ECS
O controlador de domínio AD deve executar o Windows Server. Este guia usa o Windows Server 2016 como exemplo.
Faça login na instância do ECS e abra o Server Manager.
-
No painel de navegação à esquerda, clique em Dashboard e em Add roles and features.

-
No Add Roles and Features Wizard, configure cada aba conforme descrito abaixo:
A instância do ECS deve ter um endereço IP estático. Um endereço IP dinâmico torna o servidor DNS indisponível.
Aba
Configuração
Before You Begin
Mantenha as configurações padrão.
Installation Type
Mantenha as configurações padrão.
Server Selection
Mantenha as configurações padrão.
Server Roles
Selecione Active Directory Domain Services e clique em Add Features na caixa de diálogo. Selecione DNS Server e clique em Add Features.
Features
Mantenha as configurações padrão.
AD DS
Mantenha as configurações padrão.
DNS Server
Mantenha as configurações padrão.
Install
Clique em Install.
Após a conclusão da instalação, clique em Close.
-
No painel de navegação à esquerda, clique em AD DS. No canto superior direito, clique em More.

-
No painel All Servers Task Details and Notifications, clique em Promote this server to a domain controller.

-
No Active Directory Domain Services Configuration Wizard, defina os seguintes parâmetros:
Aba
Configuração
Deployment Configuration
Selecione Add a new forest e defina o Root domain name. Este exemplo usa
pgsqldomain.net(ondepgsqldomainé o prefixo eneté o sufixo). Use o mesmo nome de domínio raiz durante toda a configuração.
Domain Controller Options
Defina uma Directory Services Restore Mode (DSRM) password.

Server Selection
Desmarque a opção Create DNS delegation.

Additional Options, Paths, Review Options
Mantenha as configurações padrão.
Prerequisites Check
Clique em Install.
Após a reinicialização da instância do ECS como controlador de domínio AD, faça login novamente antes de prosseguir para a próxima etapa.
Etapa 2: Adicionar usuários ao controlador de domínio AD
São necessários dois tipos de usuários no AD: um administrador (usado pelo LDAP para vincular-se ao diretório) e um usuário padrão (usado para fazer login na instância do RDS).
Adicionar um usuário administrador
-
No Server Manager, clique em AD DS no painel de navegação à esquerda. Clique com o botão direito no controlador de domínio e selecione Active Directory Users and Computers.

-
Expanda pgsqldomain.net, clique com o botão direito em Users e escolha New > User.
pgsqldomain.neté o nome de domínio raiz definido na Etapa 1.
-
Insira um nome de usuário e clique em Next.

-
Defina uma senha, selecione Password never expires, clique em Next e em Finish.

-
Clique duas vezes no novo usuário e adicione-o ao grupo Domain Admins.


Adicionar um usuário padrão
Siga os mesmos passos acima para criar um usuário padrão. Ignore apenas a etapa de adição do usuário ao grupo Domain Admins.
Este exemplo usa ldapuser como usuário padrão. Essa conta será usada para fazer login na instância do RDS.
Etapa 3: Configurar regras de grupo de segurança para o ECS
O controlador de domínio AD exige que várias portas estejam abertas. Use um grupo de segurança dedicado para o controlador de domínio, em vez de compartilhá-lo com outras instâncias do ECS.
Faça login no console do ECS e acesse Instances & Images > Instances.
Na barra de navegação superior, selecione a região da instância do ECS.
Clique no ID da instância do ECS e em Security Groups no painel de navegação à esquerda.
Clique em Add Rules na coluna Actions.
-
Na aba Inbound, clique em Add Rule para permitir que a instância do RDS alcance a instância do ECS nas seguintes portas:
Protocolo
Porta
Serviço
TCP
88
Autenticação Kerberos
TCP
135
RPC
TCP/UDP
389
LDAP
TCP
445
CIFS
TCP
3268
Global Catalog
TCP/UDP
53
DNS
TCP
49152–65535
Intervalo de portas dinâmicas padrão (insira como
49152/65535)
Etapa 4: Configurar a instância do RDS
Criar uma conta de banco de dados correspondente
No console do ApsaraDB RDS, localize a instância do RDS e clique em seu ID.
-
Crie uma conta chamada
ldapuser. Consulte Create an account.O nome da conta do RDS deve corresponder exatamente ao nome do usuário padrão do AD (
ldapuserneste exemplo). As senhas podem ser diferentes. Quando a autenticação via AD estiver ativa, o controlador de domínio AD verifica a senha. Quando inativa, o ApsaraDB RDS usa a senha da conta definida no console.
Configurar o service de domínio AD
-
No painel de navegação à esquerda, clique em Accounts e abra a aba AD Domain Services. Na primeira abertura desta aba, o sistema cria dois registros padrão:
host all all 0.0.0.0/0 md5 host replication all 0.0.0.0/0 md5Você pode excluir ou modificar esses registros.
-
Clique em Edit no primeiro registro e configure os seguintes parâmetros. Para o campo OPTION, use o formato abaixo:
Parâmetro
Valor de exemplo
Descrição
Priority
0Prioridade do registro.
0representa a prioridade mais alta e é atribuída automaticamente ao primeiro registro.TYPE
hostTipo de conexão.
hostcorresponde a conexões TCP/IP com e sem SSL.hostsslcorresponde apenas a conexões SSL (requer criptografia SSL ativada).hostnosslcorresponde apenas a conexões sem SSL.DATABASE
allBancos de dados acessíveis aos usuários especificados. Use
allpara permitir acesso a todos os bancos de dados. Separe vários bancos de dados com vírgulas.USER
ldapuserUsuários padrão do AD autorizados a se conectar. Separe vários usuários com vírgulas. Contas de Domain Admins não podem ser usadas aqui.
ADDRESS
0.0.0.0/0Endereços IP de source permitidos.
0.0.0.0/0permite conexões de qualquer endereço IP.MASK
(deixe em branco)
Máscara de sub-rede para o endereço IP em ADDRESS. Deixe em branco ao usar notação CIDR.
METHOD
ldapMétodo de autenticação. Deve estar em letras minúsculas. Valores válidos:
trust,reject,scram-sha-256,md5,password,gss,sspi,ldap,radius,cert,pam.OPTION
Veja abaixo
Opções de LDAP necessárias quando METHOD é
ldap.ldapserver=<Private IP address of the ECS instance> ldapbasedn="CN=Users,DC=<domain prefix>,DC=<domain suffix>" ldapbinddn="CN=<AD administrator username>,CN=Users,DC=<domain prefix>,DC=<domain suffix>" ldapbindpasswd="<AD administrator password>" ldapsearchattribute="sAMAccountName"Para o domínio de exemplo
pgsqldomain.netcom o usuário administradoradminuser:ldapserver=<ECS private IP> ldapbasedn="CN=Users,DC=pgsqldomain,DC=net" ldapbinddn="CN=adminuser,CN=Users,DC=pgsqldomain,DC=net" ldapbindpasswd="<adminuser password>" ldapsearchattribute="sAMAccountName"Para obter a lista completa de parâmetros OPTION, consulte a documentação sobre métodos de autenticação do PostgreSQL.
-
Clique em add à direita do registro de service de domínio AD para adicionar um registro de fallback com os seguintes valores:
host all all 0.0.0.0/0 md5 -
Clique em OK e em Submit.
Após clicar em Submit , a instância do RDS entra no status Maintaining Instance por cerca de um minuto. As novas configurações entram em vigor apenas para novas conexões. Encerre as conexões existentes e reconecte-se para aplicar as alterações.
Etapa 5: Testar a conexão
Conecte-se à instância do RDS usando a ferramenta de linha de comando psql. Use as credenciais do usuário padrão do AD, não a senha da conta do RDS.
psql -h <RDS instance endpoint> -U ldapuser -p 5432 -d postgres
Quando solicitado, insira a senha do AD para ldapuser (não a senha da conta do RDS).
Instale o cliente do PostgreSQL antes de usar o psql . Para outros métodos de conexão, consulte Connect to an ApsaraDB RDS for PostgreSQL instance .
Importar registros de service de domínio AD em massa (opcional)
Para configurar vários registros de service de domínio AD simultaneamente, use o recurso de importação em massa.

Modos de importação:
Overwrite existing service information — substitui todos os registros atuais.
Additional service information (highest priority) — insere os novos registros no início, conferindo-lhes prioridade maior que a dos registros existentes.
Additional service information (lowest priority) — anexa os novos registros ao final, conferindo-lhes prioridade menor que a dos registros existentes.
Formato obrigatório:
TYPE|DATABASE|USER1|ADDRESS|MASK|METHOD|OPTION
Exemplo de registro:
host|all|ldapuser|0.0.0.0/0||ldap|ldapserver=<ECS private IP> ldapbasedn="CN=Users,DC=pgsqldomain,DC=net" ldapbinddn="CN=<AD administrator username>,CN=Users,DC=pgsqldomain,DC=net" ldapbindpasswd="<AD administrator password>" ldapsearchattribute="sAMAccountName"
Insira os registros na caixa de texto Edit AD domain, selecione um modo de importação e envie.
Visualizar histórico de edições do service de domínio AD
No console do RDS, clique no ID da instância e acesse Accounts > AD Domain Services Edit History.
-
Clique em changedetails na coluna Actions para visualizar os detalhes da alteração. Se uma modificação falhar, o status exibirá Not Taking Effect. Clique em Change log para ver a mensagem de erro.
