

# Configuração da autenticação do Windows para instâncias de banco de dados do SQL Server
<a name="USER_SQLServerWinAuth.SettingUp"></a>

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
<a name="USER_SQLServerWinAuth.SettingUp.CreateDirectory"></a>

O Directory Service cria um Microsoft Active Directory totalmente gerenciado na Nuvem AWS. Ao criar um diretório do AWS Managed Microsoft AD, o 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 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 Directory Service](https://console.aws.amazon.com/directoryservicev2/), escolha **Directories (Diretórios)** e selecione **Set up directory (Configurar diretório)**.

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

1. Escolha **Next (Próximo)**.

1. 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 (\$1\$1@\$1\$1%^&\$1\$1-\$1=`\$1\$1()\$1\$1[]:;"'<>,.?/)   
**Confirmar senha**  
Digite a senha do administrador novamente. 

1. Escolha **Next (Próximo)**.

1. 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.  
É 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](#USER_SQLServerWinAuth.SettingUp.VPC-Peering).  
**Sub-redes**  
Escolha as sub-redes para os servidores do diretório. As duas sub-redes deve estar em diferentes zonas de disponibilidade.

1. Escolha **Next (Próximo)**.

1. 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\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/WinAuth2.png)

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\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/WinAuth3.png)


## Etapa 2: Criar a função do IAM para ser usada pelo Amazon RDS
<a name="USER_SQLServerWinAuth.SettingUp.CreateIAMRole"></a>

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 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 Directory Service.

A seguinte política `AmazonRDSDirectoryServiceAccess` do IAM, fornece acesso ao Directory Service.

**Example Política do IAM para fornecer acesso a 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 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-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"](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

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.

**Example 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#create-managed-policy-console) no *Guia do usuário do IAM*.

## Etapa 3: Criar e configurar usuários e grupos
<a name="USER_SQLServerWinAuth.SettingUp.CreateUsers"></a>

É 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 Directory Service, é necessário estar conectado a uma instância do EC2 do Windows que sejam membro do diretório do 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)](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/creating_ad_users_and_groups.html) 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
<a name="USER_SQLServerWinAuth.SettingUp.VPC-Peering"></a>

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](#USER_SQLServerWinAuth.SettingUp.CreateModify).

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](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html).

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?](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html) 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.

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

1. 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 ](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_directory_sharing.html) no *Directory ServiceGuia de administração*.

1. Faça login no console do 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.

1. Enquanto estiver conectado ao console do 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
<a name="USER_SQLServerWinAuth.SettingUp.CreateModify"></a>

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](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) da CLI ou a operação da API [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) do RDS.

  Para obter instruções, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).
+ Modifique uma instância de banco de dados existente do SQL Server usando o console, o comando [ modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) da CLI ou a operação da API [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) do RDS.

  Para obter instruções, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).
+ 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](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) da CLI ou a operação da API [ RestoreDBInstanceFromDBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html) do RDS.

  Para obter instruções, consulte [Restaurar uma instância de banco de dados](USER_RestoreFromSnapshot.md).
+ 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](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) da CLI ou a operação da API [ RestoreDBInstanceToPointInTime](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html) do RDS.

  Para obter instruções, consulte [Restaurar uma instância de banco de dados para um momento especificado no Amazon RDS](USER_PIT.md).

 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\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/WinAuth1.png)


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
<a name="USER_SQLServerWinAuth.CreateLogins"></a>

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)](https://msdn.microsoft.com/en-us/library/ms189751.aspx) 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.