Associar a instância de banco de dados ao Active Directory autogerenciado
Para associar a instância de banco de dados do RDS para SQL Server ao seu AD autogerenciado, siga estas etapas:
Etapa 1: Criar ou modificar a instância de banco de dados do SQL Server
Você pode usar o console, a CLI ou a API do RDS para associar uma instância de banco de dados do RDS para SQL Server a um domínio de AD autogerenciado. Você pode fazer isso por meio de uma das seguintes maneiras:
-
Crie uma instância de banco de dados do SQL Server usando o console, o comando create-db-instance da CLI ou a operação da API CreateDBInstance do RDS.
Para obter instruções, consulte Criar uma instância de banco de dados do Amazon RDS.
-
Modifique uma instância de banco de dados existente do SQL Server usando o console, o comando modify-db-instance da CLI ou a operação da API ModifyDBInstance do RDS.
Para obter instruções, consulte Modificar uma instância de banco de dados do Amazon RDS.
-
Restaure uma instância de banco de dados do SQL Server de um snapshot de banco de dados usando o console, o comando restore-db-instance-from-db-snapshot da CLI ou a operação da API RestoreDBInstanceFromDBSnapshot do RDS.
Para obter instruções, consulte Restaurar uma instância de banco de dados.
-
Restaure uma instância de banco de dados SQL Server em um determinado momento usando o console, o comando restore-db-instance-to-point-in-time da CLI ou a operação da API RestoreDBInstanceToPointInTime do RDS.
Para obter instruções, consulte Restaurar uma instância de banco de dados para um momento especificado no Amazon RDS.
Quando você usa a AWS CLI, são necessários os seguintes parâmetros para que a instância de banco de dados possa usar o domínio AD autogerenciado que você criou:
-
Em relação ao parâmetro
--domain-fqdn, use o nome de domínio totalmente qualificado (FQDN) do seu AD autogerenciado. -
Para o parâmetro
--domain-ou, use a OU criada em seu AD autogerenciado. -
Para o parâmetro
--domain-auth-secret-arn, use o valor do ARN do segredo criado em uma etapa anterior. -
Para o parâmetro
--domain-dns-ips, use os endereços IPv4 primário e secundário dos servidores DNS para seu AD autogerenciado. Se você não tiver um endereço IP de servidor DNS secundário, insira o endereço IP principal duas vezes.
O exemplo a seguir de comandos da CLI mostra como criar, modificar e remover uma instância de banco de dados do RDS para SQL Server com um domínio de AD autogerenciado.
Importante
Se você modificar uma instância de banco de dados para associá-la ou removê-la de um domínio de AD autogerenciado, será necessária uma reinicialização da instância de banco de dados para que a modificação entre em vigor. Você pode optar por aplicar as alterações imediatamente ou esperar até a próxima janela de manutenção. Escolher a opção Aplicar imediatamente causará tempo de inatividade para uma instância de banco de dados single-AZ. Uma instância de banco de dados multi-AZ realizará um failover antes de concluir a reinicialização. Para obter mais informações, consulte Usar a configuração de programação de modificações.
O comando da CLI a seguir cria uma instância de banco de dados do RDS para SQL Server e a associa a um domínio de AD autogerenciado.
Para Linux, macOS ou Unix:
aws rds create-db-instance \ --db-instance-identifiermy-DB-instance\ --db-instance-classdb.m5.xlarge\ --allocated-storage50\ --enginesqlserver-se\ --engine-version15.00.4043.16.v1\ --license-modellicense-included\ --master-usernamemy-master-username\ --master-user-passwordmy-master-password\ --domain-fqdnmy_AD_domain.my_AD.my_domain\ --domain-ouOU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain\ --domain-auth-secret-arn"arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456"\ --domain-dns-ips"10.11.12.13" "10.11.12.14"
Para Windows:
aws rds create-db-instance ^ --db-instance-identifiermy-DB-instance^ --db-instance-classdb.m5.xlarge^ --allocated-storage50^ --enginesqlserver-se^ --engine-version15.00.4043.16.v1^ --license-modellicense-included^ --master-usernamemy-master-username^ --master-user-passwordmy-master-password^ --domain-fqdnmy-AD-test.my-AD.mydomain^ --domain-ouOU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain^ --domain-auth-secret-arn"arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \^ --domain-dns-ips"10.11.12.13" "10.11.12.14"
O comando da CLI a seguir modifica uma instância de banco de dados do RDS para SQL Server existente para usar um domínio AD autogerenciado.
Para Linux, macOS ou Unix:
aws rds modify-db-instance \ --db-instance-identifiermy-DB-instance\ --domain-fqdnmy_AD_domain.my_AD.my_domain\ --domain-ouOU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain\ --domain-auth-secret-arn"arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456"\ --domain-dns-ips"10.11.12.13" "10.11.12.14"
Para Windows:
aws rds modify-db-instance ^ --db-instance-identifiermy-DBinstance^ --domain-fqdnmy_AD_domain.my_AD.my_domain^ --domain-ouOU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain^ --domain-auth-secret-arn"arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456"^ --domain-dns-ips"10.11.12.13" "10.11.12.14"
O comando da CLI a seguir remove uma instância de banco de dados do RDS para SQL Server de um domínio AD autogerenciado.
Para Linux, macOS ou Unix:
aws rds modify-db-instance \ --db-instance-identifiermy-DB-instance\ --disable-domain
Para Windows:
aws rds modify-db-instance ^ --db-instance-identifiermy-DB-instance^ --disable-domain
Etapa 2: usar a autenticação do Kerberos ou NTLM
Autenticações NTLM
Cada instância de banco de dados do Amazon RDS tem um endpoint, e cada endpoint tem um nome de DNS e um número de porta para a instância de banco de dados. Para se conectar à sua instância de banco de dados usando um aplicativo cliente SQL, você precisa do nome DNS e do número da porta para sua instância de banco de dados. Para se autenticar usando o NTLM, é necessário se conectar ao endpoint do RDS ou ao endpoint do receptor se estiver usando uma implantação multi-AZ.
Durante uma manutenção planejada do banco de dados ou de uma interrupção do serviço não planejada, o Amazon RDS faz failover automático para o banco de dados secundário atualizado. Dessa maneira, as operações podem ser retomadas rapidamente sem intervenção manual. As instâncias primária e secundária usam o mesmo endpoint, cujo endereço de rede física faz a transição para a secundária como parte do processo de failover. Não é necessário reconfigurar seu aplicativo quando ocorre um failover.
Autenticação de Kerberos
A autenticação baseada em Kerberos para o RDS para SQL Server exige que as conexões sejam feitas com um nome de entidade principal de serviço (SPN) específico. No entanto, após um evento de failover, a aplicação pode não estar ciente do novo SPN. Para resolver isso, o RDS para SQL Server oferece um endpoint baseado em Kerberos.
O endpoint baseado em Kerberos segue um formato específico. Caso o endpoint do RDS seja , o endpoint correspondente baseado em Kerberos será rds-instance-name.account-region-hash.aws-region.rds.amazonaws.com.rproxy.govskope.ca.rds-instance-name.account-region-hash.aws-region.awsrds.fully qualified domain name (FQDN)
Por exemplo, se o endpoint do RDS for ad-test.cocv6zwtircu.us-east-1.rds.amazonaws.com e o nome do domínio for corp-ad.company.com, o endpoint baseado em Kerberos será ad-test.cocv6zwtircu.us-east-1.awsrds.corp-ad.company.com.
Esse endpoint baseado em Kerberos pode ser usado para se autenticar na instância do SQL Server usando o Kerberos, mesmo após um evento de failover, pois o endpoint é atualizado automaticamente para apontar para o novo SPN da instância primária do SQL Server.
Encontrar o CNAME
Para encontrar o CNAME, conecte-se ao controlador de domínio e abra o Gerenciador de DNS. Acesse Forward Lookup Zones e o FQDN.
Navegue por awsrds, aws-region e hash específico de conta e região.
Se uma conexão do NTLM for retornada depois que você conectar o CNAME por meio do cliente remoto, confira se as portas necessárias estão na lista de permissões.
Para conferir se a conexão está usando o Kerberos, realize a seguinte consulta:
SELECT net_transport, auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@SSPID;
Se sua instância exibir uma conexão NTLM quando você se conectar a um endpoint Kerberos, verifique sua configuração de rede e as configurações do usuário. Consulte Configurar sua conectividade de rede.
Etapa 3: Criar logins do SQL Server de Autenticação do Windows
Use as credenciais de usuário mestre do Amazon RDS para se conectar à instância de banco de dados do SQL Server como você faria para qualquer outra instância de banco de dados. Como a instância de banco de dados é associada ao domínio de AD autogerenciado, você pode provisionar logins e usuários do SQL Server. Você faz isso usando o utilitário de usuários e grupos de AD em seu domínio de AD autogerenciado. As permissões de banco de dados são gerenciadas por meio de permissões padrão do SQL Server concedidas e revogadas a esses logins do Windows.
Para que uma conta de serviço de domínio AD autogerenciado seja autenticada com o SQL Server, deve existir um login do Windows para SQL Server para a conta em questão ou um grupo do AD autogerenciado do qual o usuário seja membro. O controle de acesso refinado é gerenciado por meio da concessão e revogação de permissões nesses logins do SQL Server. Uma conta de serviço de domínio AD autogerenciado que não tenha um login do SQL Server ou que não pertença a um grupo do AD autogerenciado com esse login não consegue acessar a instância de banco de dados do SQL Server.
A permissão ALTER ANY LOGIN é necessária para criar um login de AD autogerenciado do SQL Server. Se você ainda não criou logins com essa permissão, conecte-se como o usuário mestre da instância de banco de dados usando a autenticação do SQL Server e crie logins de AD autogerenciado do SQL Server no contexto do usuário principal.
Você pode executar um comando de linguagem de definição de dados (DDL) como o seguinte para criar um login do SQL Server para um grupo uma conta de serviço de domínio AD autogerenciado.
nota
Especifique usuários e grupos que usam o nome de login anterior ao Windows 2000 no formato . Não é possível usar um User Principal Name (UPN – Nome de usuário principal) no formato my_AD_domain\my_AD_domain_usermy_AD_domain_user@.my_AD_domain
USE [master] GO CREATE LOGIN [my_AD_domain\my_AD_domain_user] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english]; GO
Para obter mais informações, consulte CREATE LOGIN (Transact-SQL)
Os usuários (humanos e aplicações) do seu domínio agora podem se conectar à instância do RDS para SQL Server por meio de uma máquina cliente associada ao domínio de AD autogerenciado usando a autenticação do Windows.