Trabalhar com o AWS Managed Active Directory com o RDS para SQL Server
Você pode usar AWS Managed Microsoft AD com a autenticação do Windows para autenticar usuários quando se conectam à instância de banco de dados do RDS para SQL Server. A instância de banco de dados funciona com AWS Directory Service for Microsoft Active Directory, também chamado de AWS Managed Microsoft AD, para habilitar a Autenticação do Windows. Quando os usuários se autenticam com uma instância de banco de dados do SQL Server unida ao domínio confiável, as solicitações de autenticação são encaminhadas para o diretório de domínio que você criou com o AWS Directory Service.
Disponibilidade de região e versão
O RDS só aceita o uso de AWS Managed Microsoft AD para autenticação do Windows. O RDS não oferece suporte ao uso de AD Connector. Para obter mais informações, consulte as informações a seguir.
Para obter informações sobre a disponibilidade de versões e regiões, consulte Autenticação de Kerberos com RDS para PostgreSQL.
Visão geral da configuração de autenticação do Windows
O Amazon RDS usa o modo misto para a autenticação do Windows. Essa abordagem significa que o usuário mestre (o nome e a senha usados para criar sua instância de banco de dados do SQL Server) usa a autenticação do SQL. Como a conta de usuário mestre é uma credencial privilegiada, você deve restringir o acesso a essa conta.
Para obter a autenticação do Windows usando um Microsoft Active Directory no local ou auto-hospedado, crie uma confiança de floresta. A confiança pode ser unidirecional ou bidirecional. Para obter mais informações sobre como configurar confianças de floresta usando o AWS Directory Service, consulte Quando criar um relacionamento de confiança no Guia de administração do AWS Directory Service.
Para configurar a autenticação do Windows para uma instância de banco de dados do SQL Server, realize as seguintes etapas, explicadas mais detalhadamente em Configuração da autenticação do Windows para instâncias de banco de dados do SQL Server:
-
Use AWS Managed Microsoft AD, seja no AWS Management Console ou na API do AWS Directory Service, para criar um diretório AWS Managed Microsoft AD.
-
Se você usar a AWS CLI ou a API do Amazon RDS para criar a instância de banco de dados do SQL Server, crie uma função do IAM (AWS Identity and Access Management). Essa função usa a política gerenciada do IAM
AmazonRDSDirectoryServiceAccess
e permite que o Amazon RDS realize chamadas para o diretório. Se você usa o console para criar a instância de banco de dados do SQL Server, a AWS cria a função do IAM para você.Para a função permitir o acesso, o endpoint do AWS Security Token Service (AWS STS) deve estar ativado na região da AWS da sua conta da AWS. Os endpoints do AWS STS são ativados por padrão em todas as regiões da AWS e você pode usá-los sem ter que tomar medidas adicionais. Para ter mais informações, consulte Gerenciar o AWS STS em uma Região da AWS no Guia do usuário do IAM.
-
Crie e configure usuários e grupos no diretório do AWS Managed Microsoft AD usando as ferramentas do Microsoft Active Directory. Para obter mais informações sobre como criar usuários e grupos no Active Directory, consulte Gerenciar usuários e grupos no AWS Managed Microsoft AD no Guia de administração do AWS Directory Service.
-
Se você planeja localizar o diretório e a instância de banco de dados em VPCs diferentes, habilite o tráfego entre VPCs.
-
Use o Amazon RDS para criar uma instância de banco de dados do SQL Server a partir do console, da AWS CLI ou da API do Amazon RDS. Na solicitação de criação, forneça o identificador de domínio (identificador "
d-*
") que foi gerado quando você criou seu diretório e o nome da função que você criou. Também é possível modificar uma instância de banco de dados do SQL Server para usar a Autenticação do Windows definindo o domínio e os parâmetros da função do IAM para a instância de banco de dados. -
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 com qualquer outra instância de banco de dados. Como a instância de banco de dados é unida ao domínio do AWS Managed Microsoft AD, você pode provisionar logins e usuários do SQL Server dos usuários e grupos do Active Directory em seu domínio. (Conhecidos como logins “Windows” do SQL Server.) 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.
Criar o endpoint para autenticação do Kerberos
A autenticação baseada em Kerberos exige que o endpoint seja o nome do host especificado pelo cliente, um ponto e o nome de domínio totalmente qualificado (FQDN). Por exemplo, o exemplo a seguir mostra um endpoint que você pode usar com a autenticação baseada em Kerberos. Neste exemplo, o nome do host da instância de banco de dados do SQL Server é ad-test
e o nome de domínio é corp-ad.company.com
:
ad-test.corp-ad.company.com
Se você deseja verificar se sua conexão está usando o Kerberos, execute a seguinte consulta:
SELECT net_transport, auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@SPID;
Configuração da autenticação do Windows para instâncias de banco de dados do SQL Server
Use o AWS Directory Service for Microsoft Active Directory, também chamado de AWS Managed Microsoft AD, para configurar a Autenticação do Windows para uma instância de banco de dados do SQL Server. Para configurar a Autenticação do Windows, execute as seguintes etapas:
Etapa 1: Criar um diretório usando o AWS Directory Service for Microsoft Active Directory
O AWS Directory Service cria um Microsoft Active Directory totalmente gerenciado na Nuvem AWS. Ao criar um diretório do AWS Managed Microsoft AD, o AWS Directory Service cria dois controladores de domínio e servidores do Domain Name Service (DNS) em seu nome. Os servidores do diretório são criados em duas sub-redes em duas zonas de disponibilidade diferentes com uma VPC. Essa redundância ajuda a garantir que o diretório permaneça acessível mesmo se ocorrer uma falha.
Ao criar um diretório do AWS Managed Microsoft AD, o AWS Directory Service executa as seguintes tarefas em seu nome:
-
Configura um Microsoft Active Directory dentro da VPC.
-
Cria uma conta de administrador do diretório com o nome de usuário Admin e a senha especificada. Use essa conta para gerenciar seu diretório.
nota
Certifique-se de salvar essa senha. O AWS Directory Service não armazena essa senha e não é possível recuperá-la ou redefini-la.
-
Cria um grupo de segurança para os controladores do diretório.
Quando um AWS Directory Service for Microsoft Active Directory é iniciado, a AWS cria uma Unidade Organizacional (UO) que contém todos os objetos do diretório. Essa OU, que tem o nome de NetBIOS que você digitou quando criou seu diretório, está localizada na raiz do domínio. A raiz do domínio é controlada e de propriedade da AWS.
A conta admin que foi criada com o diretório do AWS Managed Microsoft AD tem permissões para as atividades administrativas mais comuns de sua OU:
-
Criar atualização ou excluir usuários, grupos e computadores.
-
Adicione recursos ao seu domínio, como servidores de arquivos ou de impressão e atribua permissões para esses recursos a usuários e grupos em sua OU.
-
Criar OUs adicionais e contêineres.
-
Delegar autoridade.
-
Criar e vincular políticas de grupo.
-
Restaurar objetos excluídos da Lixeira do Active Directory.
-
Execute os módulos AD e DNS do Windows PowerShell no Active Directory Web Service.
A conta admin também possui direitos para executar as seguintes atividades de domínio:
-
Gerenciar configurações de DNS (adicionar, remover ou atualizar registros, zonas e encaminhadores).
-
Visualizar logs de eventos de DNS.
-
Visualizar logs de eventos de segurança.
Como criar um diretório com AWS Managed Microsoft AD
-
No painel de navegação do console do AWS Directory Service
, escolha Directories (Diretórios) e selecione Set up directory (Configurar diretório). -
Selecione AWS Managed Microsoft AD. Essa é a única opção compatível atualmente para uso com o Amazon RDS.
-
Escolha Next (Próximo).
-
Na página Enter directory information (Inserir informações do diretório), forneça as seguintes informações:
- Edição
-
Escolha a edição que atenda às suas necessidades.
- Nome do DNS do diretório
-
O nome completo do diretório, como
corp.example.com
. Nomes com mais de 47 caracteres não são compatíveis com o SQL Server. - Nome de NetBIOS do diretório
-
O nome curto opcional do diretório, como
CORP
. - Descrição do diretório
-
Uma descrição opcional do diretório.
- Senha do Admin
-
A senha do administrador do diretório. O processo de criação do diretório cria uma conta de administrador com o nome de usuário Admin e essa senha.
A senha do administrador do diretório não pode incluir a palavra
admin
. A senha diferencia letras maiúsculas de minúsculas e deve ter entre 8 e 64 caracteres. Ela também precisa conter pelo menos um caractere de três das quatro categorias a seguir:-
Letras minúsculas (a-z)
-
Letras maiúsculas (A-Z)
-
Números (0-9)
-
Caracteres não alfanuméricos (~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/)
-
- Confirmar senha
-
Digite a senha do administrador novamente.
-
Escolha Next (Próximo).
-
Na página Choose VPC and subnets (Selecionar VPC e sub-redes), forneça as seguintes informações:
- VPC
-
Escolha a VPC do diretório.
nota
É possível localizar o diretório e a instância de banco de dados em VPCs diferentes, mas se o fizer, certifique-se de habilitar o tráfego entre VPCs. Para obter mais informações, consulte Etapa 4: Ativar o tráfego entre VPCs entre o diretório e a instância de banco de dados.
- Sub-redes
-
Escolha as sub-redes para os servidores do diretório. As duas sub-redes deve estar em diferentes zonas de disponibilidade.
-
Escolha Next (Próximo).
-
Analise as informações do diretório. Se alterações forem necessárias, escolha Previous (Anterior). Quando as informações estiverem corretas, selecione Create directory (Criar diretório).
A criação do diretório leva vários minutos. Depois que o diretório tiver sido criado com sucesso, o valor de Status muda para Active (Ativo).
Para visualizar informações sobre o diretório, selecione o ID do diretório na listagem de diretórios. Anote o Directory ID (ID do diretório). Esse valor será necessário ao criar ou modificar sua instância de banco de dados do SQL Server.

Etapa 2: Criar a função do IAM para ser usada pelo Amazon RDS
Se usar o console para criar sua instância de banco de dados do SQL Server, você pode pular esta etapa. Se você usar a CLI ou a API do RDS para criar sua instância de banco de dados do SQL Server, você deverá criar uma função do IAM que use a política AmazonRDSDirectoryServiceAccess
gerenciada do IAM. Esta função permite que o Amazon RDS faça chamadas ao AWS Directory Service para você.
Se você estiver usando uma política personalizada para ingressar em um domínio, em vez de usar a política AWS-managed AmazonRDSDirectoryServiceAccess
gerenciada, permita a ação ds:GetAuthorizedApplicationDetails
. Esse requisito entrará em vigor a partir de julho de 2019, devido a uma alteração na API do AWS Directory Service.
A seguinte política AmazonRDSDirectoryServiceAccess
do IAM, fornece acesso ao AWS Directory Service.
exemplo Política do IAM para fornecer acesso a AWS Directory Service
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ds:DescribeDirectories", "ds:AuthorizeApplication", "ds:UnauthorizeApplication", "ds:GetAuthorizedApplicationDetails" ], "Effect": "Allow", "Resource": "*" } ] }
Recomendamos usar as chaves de contexto de condição global aws:SourceArn
e aws:SourceAccount
em relações baseadas em recursos para limitar as permissões do serviço a um recurso específico. Essa é a maneira mais eficiente de se proteger contra o problema "confused deputy".
Você pode usar as duas chaves de contexto de condição global e fazer com que o valor aws:SourceArn
contenha o ID da conta. Nesses casos, verifique se o valor aws:SourceAccount
e a conta no aws:SourceArn
usa o mesmo ID de conta quando eles são usados na mesma instrução.
-
Use
aws:SourceArn
se quiser acesso entre serviços para um único recurso. -
Use
aws:SourceAccount
se você quiser permitir que qualquer recurso nessa conta seja associado ao uso entre serviços.
Na relação de confiança, certifique-se de usar a chave de contexto de condição global aws:SourceArn
com o nome do recurso da Amazon (ARN) completo dos recursos que acessam a função. Para Windows Authentication, certifique-se de incluir as instâncias de banco de dados conforme mostrado no exemplo a seguir.
exemplo relação de confiança com a chave de contexto de condição global para Windows Authentication
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn": [ "arn:aws:rds:
Region
:my_account_ID
:db:db_instance_identifier
" ] } } } ] }
Crie uma função do IAM usando esta política do IAM e relacionamento de confiança. Para obter mais informações sobre como criar funções do IAM, consulte Criação de políticas gerenciadas pelo cliente no Guia do usuário do IAM.
Etapa 3: Criar e configurar usuários e grupos
É possível criar usuários e grupos com a ferramenta Usuários e computadores do Active Directory. Essa ferramenta é uma das ferramentas do Active Directory Domain Services e do Active Directory Lightweight Directory Services. Os usuários representam pessoas ou entidades individuais que têm acesso ao seu diretório. Os grupos são muito úteis para conceder ou negar privilégios a grupos de usuários, em vez de ter que aplicar esses privilégios a cada usuário individual.
Para criar usuários e grupos em um diretório do AWS Directory Service, é necessário estar conectado a uma instância do EC2 do Windows que sejam membro do diretório do AWS Directory Service. Também é necessário estar conectado como um usuário com privilégios para criar usuários e grupos. Para obter mais informações, consulte Adicionar usuários e grupos (Simple AD e AWS Managed Microsoft AD) no Guia de administração do AWS Directory Service.
Etapa 4: Ativar o tráfego entre VPCs entre o diretório e a instância de banco de dados
Se você planeja localizar o diretório e a instância de banco de dados na mesma VPC, ignore esta etapa e prossiga para Etapa 5: Criar ou modificar a instância de banco de dados do SQL Server.
Se você planejar localizar o diretório e a instância de Bancos de Dados em VPCs diferentes, configure o tráfego entre VPCs usando o emparelhamento de VPCs ou o AWS Transit Gateway.
O procedimento a seguir habilita o tráfego entre VPCs usando o emparelhamento de VPCs. Siga as instruções em O que é o emparelhamento de VPCs? no Guia de emparelhamento do Amazon Virtual Private Cloud.
Como habilitar o tráfego entre VPCs usando o emparelhamento de VPCs
-
Configure regras apropriadas de roteamento de VPC para garantir que o tráfego de rede possa fluir em ambos os sentidos.
-
Certifique-se de que o grupo de segurança da instância de banco de dados possa receber o tráfego de entrada do grupo de segurança do diretório.
-
Garanta que não há nenhuma regra na lista de controle de acesso (ACL) de rede para bloquear o tráfego.
Se uma conta diferente da AWS for proprietária do diretório, é necessário compartilhá-lo.
Como compartilhar o diretório entre contas da AWS.
-
Inicie o compartilhamento do diretório com a conta da AWS na qual a instância de banco de dados será criada seguindo as instruções em Tutorial: Compartilhar o diretório AWS Managed Microsoft AD para ingresso perfeito no domínio do EC2 no AWS Directory ServiceGuia de administração.
-
Faça login no console do AWS Directory Service usando a conta para a instância de banco de dados e garanta que o domínio tenha o status
SHARED
antes de prosseguir. -
Enquanto estiver conectado ao console do AWS Directory Service usando a conta da instância de banco de dados, observe o valor do Directory ID (ID do diretório). Use esse ID do diretório para associar a instância de banco de dados ao domínio.
Etapa 5: Criar ou modificar a instância de banco de dados do SQL Server
Crie ou modifique uma instância de banco de dados do SQL Server para usar com o diretório. É possível usar o console, a CLI ou a API do RDS para associar uma instância de banco de dados a um diretório. 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 a partir de um snapshot do 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 Restauração de uma instância de banco de dados para um tempo especificado.
A Autenticação do Windows é compatível somente com instâncias de banco de dados do SQL Server em uma VPC.
Para que a instância de banco de dados possa usar o diretório do domínio criado, o seguinte é necessário:
-
Para Directory (Diretório), escolha o identificador de domínio (
d-
) gerado ao criar o diretório.ID
-
Verifique se o grupo de segurança da VPC tem uma regra de saída que permite que a instância de banco de dados se comunique com o diretório.

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 diretório criado:
-
Para o parâmetro
--domain
, use o identificador de domínio (identificador "d-
") gerado quando o diretório foi criado.ID
-
Para o parâmetro
--domain-iam-role-name
, use a função criada que usa a política gerenciadaAmazonRDSDirectoryServiceAccess
do IAM.
Por exemplo, o comando da CLI a seguir modifica uma instância de banco de dados para usar um diretório.
Para Linux, macOS ou Unix:
aws rds modify-db-instance \ --db-instance-identifier
mydbinstance
\ --domain d-ID
\ --domain-iam-role-namerole-name
Para Windows:
aws rds modify-db-instance ^ --db-instance-identifier
mydbinstance
^ --domain d-ID
^ --domain-iam-role-namerole-name
Importante
Se você modificar uma instância de banco de dados para permitir a autenticação Kerberos, reinicialize a instância de banco de dados após fazer a alteração.
Etapa 6: 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 com qualquer outra instância de banco de dados. Como a instância de banco de dados é associada ao domínio AWS Managed Microsoft AD, você pode provisionar logins e usuários do SQL Server. É possível fazer isso a partir de usuários e grupos do Active Directory no domínio. 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 um usuário do Active Directory faça a autenticação com o SQL Server, deve existir um login Windows do SQL Server para o usuário ou um grupo do qual o usuário é membro. O controle de acesso refinado é gerenciado por meio da concessão e revogação de permissões nesses logins do SQL Server. Um usuário que não tem um login do SQL Server ou pertence a um grupo ao qual um login não consegue obter acesso à instância de banco de dados do SQL Server.
A permissão ALTER ANY LOGIN é necessária para criar um login do Active Directory 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.
Execute um comando de Data Definition Language (DDL – Linguagem de definição de dados) para criar um login do SQL Server para um usuário ou grupo do Active Directory.
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 domainName
\login_name
login_name
@
.DomainName
USE [master] GO CREATE LOGIN [
mydomain
\myuser
] 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 for SQL Server a partir de uma máquina cliente conectada ao domínio usando a Autenticação do Windows.
Gerenciamento de uma instância de banco de dados em um domínio
É possível usar o console, a AWS CLI ou a API do Amazon RDS para gerenciar a instância de banco de dados e a respectiva relação no domínio. Por exemplo, é possível mover a instância de banco de dados para dentro, para fora, de e entre os domínios.
Por exemplo, usando a API do Amazon RDS, você pode fazer o seguinte:
-
Para tentar uma união de domínio novamente cuja associação falhou, use a operação ModifyDBInstance da API e especifique o ID do diretório da associação atual.
-
Para atualizar o nome da função do IAM para a associação, use a operação
ModifyDBInstance
da API e especifique o ID do diretório da associação atual e a nova função do IAM. -
Para remover uma instância de banco de dados de um domínio, use a operação
ModifyDBInstance
da API e especifiquenone
como o parâmetro do domínio. -
Para mover uma instância de banco de dados de um domínio para outro, use a operação
ModifyDBInstance
da API e especifique o identificador do novo domínio como o parâmetro do domínio. -
Para listar a associação de cada instância de banco de dados, use a operação DescribeDBInstances da API.
Compreensão da associação de domínio
Após criar ou modificar sua instância de banco de dados, a instância se tornará um membro do domínio. O console da AWS indica o status da associação de domínio para a instância de banco de dados. O status da instância de banco de dados pode ser um dos seguintes:
-
joined – a instância é membro do domínio.
-
joining – a instância está em processo de se tornar membro do domínio.
-
pending-join – a associação da instância está pendente.
-
pending-maintenance-join: a AWS tentará tornar a instância um membro do domínio durante a próxima janela de manutenção agendada.
-
pending-removal – a remoção da instância do domínio está pendente.
-
pending-maintenance-removal: a AWS tentará remover a instância do domínio durante a próxima janela de manutenção programada.
-
failed – um problema de configuração impediu que a instância se associasse ao domínio. Verifique e corrija sua configuração antes de emitir novamente o comando de modificação da instância.
-
removing – a instância está sendo removida do domínio.
Uma solicitação para se tornar um membro de um domínio pode falhar devido a um problema de conectividade de rede ou a uma função do IAM incorreta. Por exemplo, é possível criar uma instância de banco de dados ou modificar uma instância existente e não conseguir transformar a instância de banco de dados em um membro de um domínio. Nesse caso, reexecute o comando para criar ou modificar a instância de banco de dados ou modifique a instância recém-criada para ingressar no domínio.
Conexão ao SQL Server com autenticação do Windows
Para se conectar ao SQL Server com Autenticação do Windows, você deve estar conectado em um computador pertencente ao domínio como um usuário de domínio. Após iniciar o SQL Server Management Studio, escolha Autenticação do Windows como o tipo de autenticação, conforme mostrado a seguir.

Restauração de uma instância de banco de dados do SQL Server e adição posterior a um domínio
Você pode restaurar um snapshot de banco de dados ou fazer uma Point-In-Time Restore (PITR – Restauração de ponto no tempo) de uma instância de banco de dados do SQL Server e adicioná-la a um domínio. Depois que a instância de banco de dados tiver sido restaurada, modifique a instância usando o processo explicado em Etapa 5: Criar ou modificar a instância de banco de dados do SQL Server para adicionar a instância de banco de dados a um domínio.