Configuração da autenticação do Windows para instâncias de banco de dados do SQL Server - Amazon Relational Database Service

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
  1. No painel de navegação do console do AWS Directory Service, escolha Directories (Diretórios) e selecione Set up directory (Configurar diretório).

  2. Selecione AWS Managed Microsoft AD. Essa é a única opção compatível atualmente para uso com o Amazon RDS.

  3. Escolha Next (Próximo).

  4. 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.

  5. Escolha Next (Próximo).

  6. 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.

  7. Escolha Next (Próximo).

  8. 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).

    Revisar e criar a página

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.

Página de detalhes do diretório

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
  1. Configure regras apropriadas de roteamento de VPC para garantir que o tráfego de rede possa fluir em ambos os sentidos.

  2. 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.

  3. 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.
  1. 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.

  2. 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.

  3. 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:

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-ID) gerado ao criar o diretório.

  • 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.

Diretório de autenticação Windows do Microsoft SQL Server

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-ID") gerado quando o diretório foi criado.

  • Para o parâmetro --domain-iam-role-name, use a função criada que usa a política gerenciada AmazonRDSDirectoryServiceAccess 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-name role-name

Para Windows:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --domain d-ID ^ --domain-iam-role-name role-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 domainName\login_name. Não é possível usar um User Principal Name (UPN – Nome de usuário principal) no formato 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) na documentação da Microsoft Developer Network.

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.