

# Associar a instância de banco de dados ao Active Directory autogerenciado
<a name="USER_SQLServer_SelfManagedActiveDirectory.Joining"></a>

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
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateModify"></a>

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](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).

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](USER_ModifyInstance.ApplyImmediately.md). 

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-identifier {{my-DB-instance}} \
    --db-instance-class {{db.m5.xlarge}} \
    --allocated-storage {{50}} \
    --engine {{sqlserver-se}} \
    --engine-version {{15.00.4043.16.v1}} \
    --license-model {{license-included}} \
    --master-username {{my-master-username}} \
    --master-user-password {{my-master-password}} \
    --domain-fqdn {{my_AD_domain.my_AD.my_domain}} \
    --domain-ou {{OU=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-identifier {{my-DB-instance}} ^
    --db-instance-class {{db.m5.xlarge}} ^
    --allocated-storage {{50}} ^
    --engine {{sqlserver-se}} ^
    --engine-version {{15.00.4043.16.v1}} ^
    --license-model {{license-included}} ^
    --master-username {{my-master-username}} ^
    --master-user-password {{my-master-password}} ^
    --domain-fqdn {{my-AD-test.my-AD.mydomain}} ^
    --domain-ou {{OU=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-identifier {{my-DB-instance}} \
    --domain-fqdn {{my_AD_domain.my_AD.my_domain}} \
    --domain-ou {{OU=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-identifier {{my-DBinstance}} ^
    --domain-fqdn {{my_AD_domain.my_AD.my_domain}} ^
    --domain-ou {{OU=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-identifier {{my-DB-instance}} \
    --disable-domain
```

Para Windows:

```
aws rds modify-db-instance ^
    --db-instance-identifier {{my-DB-instance}} ^
    --disable-domain
```

## Etapa 2: usar a autenticação do Kerberos ou NTLM
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.KerbNTLM"></a>

### Autenticações NTLM
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.KerbNTLM.NTLM"></a>

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 name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.Kerb"></a>

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 `{{rds-instance-name}}.{{account-region-hash}}.{{aws-region}}.rds.amazonaws.com`, o endpoint correspondente baseado em Kerberos será `{{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
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CNAME"></a>

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

![Modificar a quantidade de armazenamento para uma instância de banco de dados](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/kerb-endpoint-selfManagedAD-RDSMS.png)


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](USER_SQLServer_SelfManagedActiveDirectory.Requirements.md#USER_SQLServer_SelfManagedActiveDirectory.Requirements.NetworkConfig).

## Etapa 3: Criar logins do SQL Server de Autenticação do Windows
<a name="USER_SQLServer_SelfManagedActiveDirectory.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 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 `{{my_AD_domain}}\{{my_AD_domain_user}}`. Não é possível usar um User Principal Name (UPN – Nome de usuário principal) no formato {{`my_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)](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 para SQL Server por meio de uma máquina cliente associada ao domínio de AD autogerenciado usando a autenticação do Windows.