Este tópico descreve como configure um controlador de domínio Active Directory (AD) em uma instância do Elastic Compute Service (ECS) e conectar uma instância do ApsaraDB RDS for PostgreSQL a um domínio AD autogerenciado.
Informações gerais
AD é um serviço de diretório fornecido pela Microsoft. Um diretório é uma estrutura hierárquica que armazena informações sobre os objetos em uma mesma LAN. Uma empresa pode armazenar dados — como contas de computador, contas de usuário e grupos — em um diretório, melhorando a segurança dos dados e facilitando seu gerenciamento.
Conecte sua instância do RDS a um domínio AD autogerenciado para gerencie sua empresa de forma centralizada e configure listas de permissões de IP nos níveis de banco de dados e de usuário, aumentando a segurança dos seus dados.
É possível modifique ou adicione informações do controlador de domínio AD no arquivo pg_hba.conf da sua instância do RDS. Configure o controlador de domínio AD e o arquivo pg_hba.conf no console do ApsaraDB RDS. Para mais informações, consulte Introdução ao arquivo pg_hba.conf.
Pré-requisitos
-
Sua instância do RDS deve atender aos seguintes requisitos:
A instância do RDS execute PostgreSQL 10 ou versão posterior.
A instância do RDS execute uma versão secundária do mecanismo 20210228 ou posterior. Para mais informações sobre como atualize a versão secundária do mecanismo da sua instância do RDS, consulte Atualizar a versão secundária do mecanismo de uma instância do ApsaraDB RDS for PostgreSQL.
A instância do RDS utiliza discos em nuvem.
-
Uma instância do ECS foi criada. Para mais informações, consulte Criar uma instância do ECS. Como sua instância do RDS deve acessar o domínio AD autogerenciado por meio de um endereço IP privado, a instância do ECS precisa atender às seguintes condições:
A instância do ECS e a instância do RDS residem na mesma virtual private cloud (VPC).
O grupo de segurança ao qual a instância do ECS pertence está configure para permitir acesso a partir do endereço IP privado da sua instância do RDS. Para mais informações, consulte Adicionar uma regra de grupo de segurança.
O firewall da instância do ECS está desativado por padrão. Se o firewall estiver ativo, configure-o para permitir acesso a partir do endereço IP privado da sua instância do RDS.
A imagem da instância do ECS execute Windows Server 2016 ou versão posterior.
A conta de domínio pertence ao grupo Domain Admins.
Sua conta do Alibaba Cloud é utilizada para fazer login no console do ApsaraDB RDS.
Procedimento
-
Configure um controlador de domínio AD para a instância do ECS.
-
Faça login na instância do ECS.
NotaO controlador de domínio AD deve execute um sistema Windows Server. Recomenda-se utilizar Windows Server 2016 ou versão posterior. Neste exemplo, o controlador de domínio AD execute Windows Server 2016.
Pesquise e abra Server Manager.
No Dashboard, clique em Add roles and features.
-
No Add Roles and Features Wizard, defina as seguintes configurações.
Tab
Description
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. Na caixa de diálogo exibida, clique em Add Features.
Selecione DNS Server. Na caixa de diálogo exibida, clique em Add Features.
NotaCertifique-se de que o computador utiliza um endereço IP fixo. Se o endereço IP mudar dinamicamente, o servidor DNS ficará indisponível.
Feature
Mantenha as configurações padrão.
AD DS
Mantenha as configurações padrão.
DNS Server
Mantenha as configurações padrão.
OK
Clique em Install para iniciar a instalação.
Após a conclusão da instalação, clique em Close.
No painel de navegação à esquerda do Server Manager, clique em AD DS e, em seguida, clique em More no canto superior direito.
Na janela All Servers Task Details and Notifications, clique em Promote this server to a domain controller.
-
No Active Directory Domain Services Configuration Wizard, defina as seguintes configurações.
Tab
Description
Deployment configuration
Selecione Add a new forest e defina o Root domain name.
NotaNeste exemplo, o Root domain name é
pgsqldomain.net, ondepgsqldomainé o prefixo do domínio eneté o sufixo do domínio. Ambos os valores podem ser personalizados. Use seus valores personalizados de forma consistente nas etapas seguintes.Domain controller options
Defina o Forest functional level e o Domain functional level como Windows Server 2016. Marque as caixas de seleção Domain Name System (DNS) server e Global Catalog (GC). Na seção Type the Directory Services Restore Mode (DSRM) password, defina e confirme a senha e, em seguida, clique em Next.
DNS options
Na página DNS Options, desmarque a caixa de seleção Create DNS delegation.
Additional options
Mantenha as configurações padrão.
Paths
Mantenha as configurações padrão.
Review options
Mantenha as configurações padrão.
Prerequisites check
Clique em Install para iniciar a instalação do serviço.
NotaApós a promoção da instância do ECS a controlador de domínio AD, reinicie a instância do ECS antes de execute as etapas seguintes.
-
-
Adicione um usuário administrador ao controlador de domínio AD.
Faça login remotamente na instância do ECS, pesquise e abra Server Manager.
No painel de navegação à esquerda do Server Manager, clique em AD DS. Em seguida, clique com o botão direito no controlador de domínio de destino à direita e selecione Active Directory Users and Computers.
-
Clique com o botão direito em pgsqldomain.net > Users e escolha New > User.
Notapgsqldomain.net é o nome de domínio raiz defina no Active Directory Domain Services Configuration Wizard. Selecione o nome de acordo com sua configuração real.
Defina o nome de login do usuário e clique em Next. Nos campos Full name e User logon name, insira
dbadmine selecione@pgsqldomain.netna lista suspensa.Defina a senha, marque a caixa de seleção Password never expires e clique em Next e, em seguida, em Done.
Clique duas vezes no usuário recém-criado para adicioná-lo ao grupo Domain Admins. Na caixa de diálogo de propriedades do usuário, selecione a aba Member Of, clique em Add, insira
Domain Adminsno campo de nomes de objetos, clique em Check Names para confirme e, em seguida, clique em OK.
-
Adicione um usuário padrão ao controlador de domínio AD para login.
NotaAs etapas para adicionar um usuário padrão são as mesmas que as de adição de um usuário administrador. No entanto, um usuário padrão não precisa ser adicionado ao grupo Domain Admins.
Este tópico utiliza como exemplo um usuário padrão chamado
ldapuser. Esse usuário é utilizado para fazer login na instância do ApsaraDB RDS for PostgreSQL. -
Configure as regras de grupo de segurança para a instância do ECS.
Faça login no console do ECS.
No painel de navegação à esquerda, escolha Instances & Images > Instance.
Na barra de navegação superior, selecione a região em que a instância do ECS reside.
Na página Instances, clique em o ID da instância de destino.
-
Na aba Security Groups, localize o grupo de segurança de destino na coluna Actions e clique em Manage Rules.
NotaDiversas portas precisam ser habilitadas para o controlador de domínio AD. Recomenda-se configure um grupo de segurança exclusivo para o controlador de domínio AD em vez de compartilhá-lo com outras instâncias do ECS.
-
Na aba Inbound, clique em Add Rule para permitir acesso à instância do ECS nas seguintes portas.
Protocol type
Port range
Description
TCP
88
A porta para o protocolo de autenticação Kerberos.
TCP
135
A porta para o protocolo Remote Procedure Call (RPC).
TCP/UDP
389
A porta para o protocolo Lightweight Directory Access Protocol (LDAP).
TCP
445
A porta para o protocolo Common Internet File System (CIFS).
TCP
3268
A porta para o Global Catalog.
TCP/UDP
53
A porta para o serviço DNS.
TCP
49152 to 65535
O intervalo de portas dinâmico padrão para conexões. Insira o valor no seguinte formato: 49152/65535.
-
Configure a instância do RDS.
Faça login no console do ApsaraDB RDS e acesse a página Instances. Na barra de navegação superior, selecione a região em que a instância do RDS reside. Em seguida, localize a instância do RDS e clique em o ID da instância.
-
Crie uma conta de usuário chamada
ldapuser. Para mais informações, consulte Criar uma conta. Após crie a conta, confirme na lista de contas que o tipo de conta de ldapuser é standard account.NotaO nome da conta criada no console do ApsaraDB RDS deve corresponder ao nome da conta padrão criada no domínio AD. As senhas podem ser diferentes. Quando a autenticação de domínio AD está ativa, o sistema verifica a senha da conta correspondente no controlador de domínio AD. Quando está desativada, o sistema verifica a senha do usuário defina na página Accounts no console do ApsaraDB RDS.
-
No painel de navegação à esquerda, clique em Accounts e selecione a aba AD Domain Services.
Ao abrir a aba AD Domain Services pela primeira vez, o sistema já terá criado os dois registros padrão a seguir:
host all all 0.0.0.0/0 md5 host replication all 0.0.0.0/0 md5Você pode exclua ou modifique esses registros.
-
Clique em Edit ao lado do primeiro registro padrão e preencha os seguintes valores de parâmetro.
NotaA tabela a seguir descreve apenas os parâmetros utilizados no exemplo fornecido. Para mais informações, consulte Documentação oficial do PostgreSQL.
Parâmetro
Exemplo
Descrição
Priority
0
A prioridade do registro. O valor 0 corresponde à maior prioridade e é gerado automaticamente. Modifique o primeiro registro e defina este parâmetro como 0. O valor 0 especifica a maior prioridade para o serviço de domínio AD.
Type
host
Valores válidos:
host: o registro corresponde a conexões TCP/IP, incluindo conexões SSL e não SSL.
hostssl: o registro corresponde apenas a conexões TCP/IP estabelecidas via SSL.
NotaEste parâmetro só tem efeito quando a criptografia SSL está ativa na sua instância do RDS. Para mais informações, consulte Configurar criptografia SSL para uma instância do ApsaraDB RDS for PostgreSQL.
hostnossl: o domínio AD verifica apenas conexões TCP/IP estabelecidas sem SSL.
Database
all
O banco de dados que os usuários especificados têm permissão para acessar. Quando o valor deste parâmetro é all, os usuários especificados podem acessar todos os bancos de dados da sua instância do RDS. Para múltiplas entradas, separe-as com vírgulas (,).
User
ldapuser
O usuário autorizado a acessar sua instância do RDS. Os valores válidos são os nomes de usuário criados no controlador de domínio AD. Para múltiplas entradas, separe-as com vírgulas (,).
NotaEste parâmetro só aceita nomes de usuários padrão criados no domínio AD.
Address
0.0.0.0/0
Os endereços IP a partir dos quais os usuários especificados podem acessar os bancos de dados especificados. O valor 0.0.0.0/0 permite acesso a partir de qualquer endereço IP.
Mask
None
A máscara para o endereço IP no registro. Quando o valor do parâmetro ADDRESS é um endereço IP, use este parâmetro para especifique a máscara correspondente.
Method
ldap
NotaLDAP é um protocolo utilizado para acessar os diretórios de bancos de dados. Neste tópico, o LDAP é usado como exemplo.
Este parâmetro especifica o método de autenticação do LDAP. Valores válidos:
trust
reject
scram-sha-256
md5
password
gss
sspi
ldap
radius
cert
pam
NotaOs valores válidos deste parâmetro devem estar em letras minúsculas.
Option
ldapserver=<Private IP address of the ECS instance> ldapbasedn="CN=Users,DC=Prefix of the root domain name, pgsqldomain in this example,DC=Suffix of the root domain name, net in this example" ldapbinddn="CN=<Username of the administrator user of the AD domain>,CN=Users,DC=Prefix of the root domain name, pgsqldomain in this example,DC=Suffix of the root domain name, net in this example" ldapbindpasswd="<Password of the administrator user of the AD domain>" ldapsearchattribute="sAMAccountName"
As opções do método de autenticação. Neste tópico, o LDAP é usado como exemplo. É obrigatório especifique este parâmetro. Para mais informações, consulte Authentication Methods.
-
Clique em Add ao lado do registro de serviço de domínio AD recém-configurado para adicionar o seguinte registro.
host all all 0.0.0.0/0 md5 -
Após insira as informações, clique em OK e, em seguida, clique em Submit.
NotaApós envie as alterações, o status da instância muda para Maintaining Instance por cerca de um minuto. A nova configuração se aplica apenas a novas conexões. As conexões existentes precisam ser reestabelecidas para que as alterações entrem em vigor.
-
(Opcional) Além de adicionar configurações de serviço de domínio AD manualmente, o ApsaraDB RDS for PostgreSQL suporta a importação de configurações em lote. Na caixa de diálogo Import AD Domain Service Information, selecione um modo de importação: Overwrite existing service information, Append service information (highest priority) ou Append service information (lowest priority). Na área de texto Edit AD domain, insira as informações do serviço de domínio AD no formato
TYPE|DATABASE|USER|ADDRESS|MASK|METHOD|OPTION, separe múltiplos nomes de usuário com vírgulas (,) e clique em OK.Os modos de importação disponíveis são:
Substituir informações de serviço existentes.
Informações de serviço adicionais (maior prioridade): ao selecionar esta opção, as informações do serviço de domínio AD são adicionadas ao início das informações de serviço existentes, com prioridade superior às existentes.
Informações de serviço adicionais (menor prioridade): ao selecionar esta opção, as informações do serviço de domínio AD são adicionadas ao final das informações de serviço existentes, com prioridade inferior às existentes.
Formato válido:
TYPE|DATABASE|USER1|ADDRESS|MASK|METHOD|OPTIONNa caixa de texto Edit AD domain, insira as informações de serviço que deseja importar na ordem especificada. Para descrições dos parâmetros, consulte a tabela da etapa anterior.
Exemplo de configuração:
host|all|<standard_username_in_ad_domain>|0.0.0.0/0||ldap|ldapserver=<private_ip_address_of_ecs_instance> ldapbasedn="CN=Users,DC=<root_domain_prefix, e.g., pgsqldomain>,DC=<root_domain_suffix, e.g., net>" ldapbinddn="CN=<admin_username_in_ad_domain>,CN=Users,DC=<root_domain_prefix, e.g., pgsqldomain>,DC=<root_domain_suffix, e.g., net>" ldapbindpasswd="<admin_user_password_in_ad_domain>" ldapsearchattribute="sAMAccountName" -
Teste a conectividade.
Use uma ferramenta de linha de comando do PostgreSQL para conectar-se à sua instância do RDS.
NotaSua instância do RDS pode ser acessada por diversos métodos. Neste tópico, utiliza-se uma ferramenta de linha de comando do PostgreSQL. Instale o cliente PostgreSQL antes de usar a ferramenta. Para mais informações, consulte Conectar-se a uma instância do ApsaraDB RDS for PostgreSQL.
Execute o seguinte comando usando o nome de usuário e a senha da conta padrão do controlador de domínio AD para conectar-se à sua instância do RDS:
psql -h <instance_endpoint> -U <standard_username_in_ad_domain> -p 5432 -d postgres
Visualizar o histórico de modificações das informações do serviço de domínio AD
Acesse a página Instances. Na barra de navegação superior, selecione a região em que a instância do RDS reside. Em seguida, localize a instância do RDS e clique em o ID da instância.
No painel de navegação à esquerda, clique em Accounts e selecione a aba AD Domain Services Edit History.
Na coluna Actions, visualize os detalhes em changedetails. Se uma modificação falhar, o status será exibido como failed. Clique em Change log para visualize a mensagem de erro. A coluna Actions também oferece a opção Restore para reverter a configuração do domínio AD ao estado anterior à alteração.