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.
-
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 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.
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
Você só pode criar um login de autenticação do Windows em uma instância do RDS para SQL Server usando instruções T-SQL. Não é possível usar o SQL Server Management Studio para criar um login de autenticação do Windows.
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.