

# Usar a autenticação Kerberos para Aurora MySQL
<a name="aurora-mysql-kerberos"></a>

É possível usar a autenticação Kerberos para autenticar usuários quando se conectam ao seu cluster de banco de dados do Aurora MySQL. Para fazer isso, configure seu cluster de banco de dados para usar o AWS Directory Service for Microsoft Active Directory para autenticação Kerberos. O AWS Directory Service for Microsoft Active Directory também é chamado de AWS Managed Microsoft AD. É um recurso disponível com o Directory Service. Para saber mais, consulte [What is Directory Service?](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html) (O que é o ?) no *Guia de administração do AWS Directory Service*.

Para iniciar, crie um diretório AWS Managed Microsoft AD para armazenar credenciais de usuário. Depois, forneça o domínio do Active Directory e outras informações ao seu cluster de banco de dados do Aurora MySQL. Quando os usuários são autenticados com o cluster de banco de dados do Aurora MySQL, as solicitações de autenticação são encaminhadas ao diretório AWS Managed Microsoft AD.

Manter todas as suas credenciais no mesmo diretório pode economizar tempo e esforço. Com essa abordagem, há um lugar centralizado para armazenar e gerenciar credenciais para vários clusters de banco de dados. O uso de um diretório também pode melhorar o perfil de segurança geral.

Além disso, é possível acessar credenciais de seu próprio Microsoft Active Directory on-premises. Para fazer isso, crie uma relação de domínio confiável para que o diretório AWS Managed Microsoft AD confie no Microsoft Active Directory on-premises. Dessa forma, seus usuários podem acessar os clusters de banco de dados do Aurora MySQL com a mesma experiência de autenticação única (SSO) do Windows de quando eles acessam workloads em sua rede on-premises.

Um banco de dados pode usar autenticação Kerberos, do AWS Identity and Access Management (IAM) ou ambas. No entanto, como a autenticação Kerberos e o IAM oferecem métodos de autenticação diferentes, um usuário específico pode fazer login somente em um banco de dados usando um ou outro método de autenticação, mas não em ambos. Para ter mais informações sobre a autenticação do IAM, consulte [Autenticação do banco de dados do IAM](UsingWithRDS.IAMDBAuth.md).

**Contents**
+ [Visão geral da autenticação Kerberos para clusters do Aurora MySQL](#aurora-mysql-kerberos-setting-up-overview)
+ [Limitações da autenticação Kerberos para o Aurora MySQL](#aurora-mysql-kerberos.limitations)
+ [Configurar a autenticação Kerberos para clusters de banco de dados do Aurora MySQL](aurora-mysql-kerberos-setting-up.md)
  + [Etapa 1: Criar um diretório usando o AWS Managed Microsoft AD](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.create-directory)
  + [Etapa 2: (Opcional) Criar uma confiança para um Active Directory on-premises](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.create-trust)
  + [Etapa 3: Criar um perfil do IAM para ser usada pelo Amazon Aurora](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.CreateIAMRole)
  + [Etapa 4: Criar e configurar usuários](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.create-users)
  + [Etapa 5: Criar ou modificar um cluster de banco de dados do Aurora MySQL](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.create-modify)
  + [Etapa 6: Criar usuários do Aurora MySQL que usam a autenticação Kerberos](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.create-logins)
    + [Modificar um login existente do Aurora MySQL](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos.modify-login)
  + [Etapa 7: Configurar um cliente MySQL](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.configure-client)
  + [Etapa 8: (Opcional) Configurar a comparação de nomes de usuário sem distinção entre maiúsculas e minúsculas](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.case-insensitive)
+ [Conectar-se ao Aurora MySQL com a autenticação Kerberos](aurora-mysql-kerberos-connecting.md)
  + [Utilizar o login do Kerberos do Aurora MySQL para se conectar ao cluster de banco de dados](aurora-mysql-kerberos-connecting.md#aurora-mysql-kerberos-connecting.login)
  + [Autenticação Kerberos com bancos de dados globais Aurora](aurora-mysql-kerberos-connecting.md#aurora-mysql-kerberos-connecting.global)
  + [Migração do RDS para MySQL para o Aurora MySQL](aurora-mysql-kerberos-connecting.md#aurora-mysql-kerberos-connecting.rds)
  + [Evitar o armazenamento em cache de tíquetes](aurora-mysql-kerberos-connecting.md#aurora-mysql-kerberos.destroy-tickets)
  + [Registro em log da autenticação Kerberos](aurora-mysql-kerberos-connecting.md#aurora-mysql-kerberos.logging)
+ [Gerenciar um cluster de banco de dados em um domínio](aurora-mysql-kerberos-managing.md)
  + [Compreensão da associação de domínio](aurora-mysql-kerberos-managing.md#aurora-mysql-kerberos-managing.understanding)

## Visão geral da autenticação Kerberos para clusters do Aurora MySQL
<a name="aurora-mysql-kerberos-setting-up-overview"></a>

Para configurar a autenticação Kerberos para um cluster de banco de dados do Aurora MySQL, conclua as etapas gerais a seguir. Essas etapas serão descritas em mais detalhes mais adiante.

1. Use AWS Managed Microsoft AD para criar um diretório do AWS Managed Microsoft AD. É possível usar o Console de gerenciamento da AWS, o AWS CLI ou o Directory Service para criar o diretório. Para obter instruções, consulte [Criar seu diretório AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started_create_directory.html) no *Guia de administração do AWS Directory Service*.

1. Crie uma função do AWS Identity and Access Management (IAM) que use a politica gerenciada `AmazonRDSDirectoryServiceAccess` do IAM. O perfil permite ao Amazon Aurora fazer chamadas para seu diretório.

   Para o perfil permitir o acesso, o endpoint do AWS Security Token Service (AWS STS) deve estar ativado na Região da AWS de 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 precisar tomar medidas adicionais. Para ter mais informações, consulte [ Ativar e desativar o AWS STS em uma Região da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#sts-regions-activate-deactivate) no *Guia do usuário do IAM*.

1. Crie e configure usuários no diretório AWS Managed Microsoft AD usando as ferramentas do Microsoft Active Directory. Para ter mais informações sobre como criar usuários em seu Active Directory, consulte [Gerenciar usuários e grupos no Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups.html) gerenciado pela AWS no *Guia de administração doAWS Directory Service*.

1. Crie ou modifique um cluster de banco de dados do Aurora MySQL. Se você usar a CLI ou a API do RDS na solicitação de criação, especifique um identificador de domínio com o parâmetro `Domain`. Use o identificador `d-*` que foi gerado quando você criou o diretório e o nome do perfil do IAM que você criou.

   Se você modificar um cluster de banco de dados do Aurora MySQL existente para usar a autenticação Kerberos, defina os parâmetros de domínio e perfil do IAM para o cluster de banco de dados. Localize o cluster de banco de dados na mesma VPC que o diretório de domínio.

1. Use as credenciais de usuário primário do Amazon RDS para conectar-se ao cluster de banco de dados do Aurora MySQL. Crie o usuário do banco de dados no Aurora MySQL usando as instruções em [Etapa 6: Criar usuários do Aurora MySQL que usam a autenticação Kerberos](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.create-logins).

   Os usuários que você cria dessa maneira podem fazer login no cluster de banco de dados do Aurora MySQL usando a autenticação Kerberos. Para ter mais informações, consulte [Conectar-se ao Aurora MySQL com a autenticação Kerberos](aurora-mysql-kerberos-connecting.md).

Para obter a autenticação Kerberos com um Microsoft Active Directory on-premises ou auto-hospedado, crie uma *confiança de floresta*. Confiança de floresta é uma relação de confiança entre dois grupos de domínios. A confiança pode ser unidirecional ou bidirecional. Para ter mais informações sobre como configurar confianças de floresta usando o Directory Service, consulte [Quando criar um relacionamento de confiança](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_setup_trust.html) no *Guia de administração do AWS Directory Service*.

## Limitações da autenticação Kerberos para o Aurora MySQL
<a name="aurora-mysql-kerberos.limitations"></a>

As seguintes limitações se aplicam à autenticação Kerberos para Aurora MySQL:
+ A autenticação Kerberos é compatível com o Aurora MySQL versão 3.03 e posterior.

  Para ter informações sobre a Região da AWS, consulte [Autenticação do Kerberos com o Aurora MySQL](Concepts.Aurora_Fea_Regions_DB-eng.Feature.KerberosAuthentication.md#Concepts.Aurora_Fea_Regions_DB-eng.Feature.KerberosAuthentication.amy).
+ Para usar a autenticação Kerberos com o Aurora MySQL, seu cliente ou conector MySQL deve usar a versão 8.0.26 ou posterior em plataformas Unix, 8.0.27 ou posterior no Windows. Caso contrário, o plug-in `authentication_kerberos_client` do lado do cliente não estará disponível e você não poderá se autenticar.
+ Só o AWS Managed Microsoft AD é compatível com o Aurora MySQL. Contudo, você pode associar os clusters de banco de dados do Aurora MySQL a domínios gerenciados do Microsoft AD compartilhados de propriedade de contas diferentes na mesma Região da AWS.

  Também é possível usar seu próprio Active Directory on-premises. Para ter mais informações, consulte [Etapa 2: (Opcional) Criar uma confiança para um Active Directory on-premises](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.create-trust).
+ Ao usar o Kerberos para autenticar um usuário conectado ao cluster do Aurora MySQL usando clientes MySQL ou drivers no sistema operacional Windows, a capitalização dos caracteres do nome de usuário do banco de dados deve corresponder à capitalização do usuário no Active Directory. Por exemplo, se o usuário no Active Directory for exibido como `Admin`, o nome de usuário do banco de dados deverá ser `Admin`.

  No entanto, agora você pode usar a comparação de nomes de usuário sem distinção entre maiúsculas e minúsculas com o plug-in `authentication_kerberos`. Para ter mais informações, consulte [Etapa 8: (Opcional) Configurar a comparação de nomes de usuário sem distinção entre maiúsculas e minúsculas](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.case-insensitive).
+ Você deve reinicializar as instâncias de banco de dados do leitor depois de ativar o recurso para instalar o plug-in `authentication_kerberos`.
+ A replicação para instâncias de banco de dados que não são compatíveis com o plug-in `authentication_kerberos` pode causar falha na replicação.
+ Para que os bancos de dados globais do Aurora usem a autenticação Kerberos, você deve configurá-la para cada cluster de banco de dados no banco de dados global.
+ O nome do domínio deve ter menos de 62 caracteres.
+ Não modifique a porta do cluster de banco de dados depois de ativar a autenticação Kerberos. Se você modificar a porta, a autenticação Kerberos deixará de funcionar. 

# Configurar a autenticação Kerberos para clusters de banco de dados do Aurora MySQL
<a name="aurora-mysql-kerberos-setting-up"></a>

Use o AWS Managed Microsoft AD para configurar a autenticação Kerberos para um cluster de banco de dados do Aurora MySQL. Para configurar a autenticação Kerberos, execute as etapas a seguir.

**Topics**
+ [Etapa 1: Criar um diretório usando o AWS Managed Microsoft AD](#aurora-mysql-kerberos-setting-up.create-directory)
+ [Etapa 2: (Opcional) Criar uma confiança para um Active Directory on-premises](#aurora-mysql-kerberos-setting-up.create-trust)
+ [Etapa 3: Criar um perfil do IAM para ser usada pelo Amazon Aurora](#aurora-mysql-kerberos-setting-up.CreateIAMRole)
+ [Etapa 4: Criar e configurar usuários](#aurora-mysql-kerberos-setting-up.create-users)
+ [Etapa 5: Criar ou modificar um cluster de banco de dados do Aurora MySQL](#aurora-mysql-kerberos-setting-up.create-modify)
+ [Etapa 6: Criar usuários do Aurora MySQL que usam a autenticação Kerberos](#aurora-mysql-kerberos-setting-up.create-logins)
+ [Etapa 7: Configurar um cliente MySQL](#aurora-mysql-kerberos-setting-up.configure-client)
+ [Etapa 8: (Opcional) Configurar a comparação de nomes de usuário sem distinção entre maiúsculas e minúsculas](#aurora-mysql-kerberos-setting-up.case-insensitive)

## Etapa 1: Criar um diretório usando o AWS Managed Microsoft AD
<a name="aurora-mysql-kerberos-setting-up.create-directory"></a>

O Directory Service cria um 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 System (DNS) em seu nome. Os servidores do diretório são criados em sub-redes diferentes em 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 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**  
Salve essa senha. O Directory Service não a armazena. Você pode redefini-la, mas não recuperá-la.
+ Cria um grupo de segurança para os controladores do diretório.

Quando você inicia o AWS Managed Microsoft AD, o AWS cria uma Unidade organizacional (UO) que contém todos os objetos do diretório. Essa UO tem o nome de NetBIOS que você digitou ao criar o diretório. Ele está localizado na raiz do domínio, que pertence à AWS e é gerenciado por ela.

A conta `Admin`, que foi criada com o diretório AWS Managed Microsoft AD, tem permissões para as atividades administrativas mais comuns da UO, como:
+ Criar, atualizar ou excluir usuários
+ Adicionar recursos ao domínio, como servidores de arquivos ou de impressão, e atribuir permissões para esses recursos aos usuários na UO
+ Criar OUs adicionais e contêineres
+ Delegar autoridade
+ 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. Faça login no Console de gerenciamento da AWS e abra o console do Directory Service em [https://console.aws.amazon.com/directoryservicev2/](https://console.aws.amazon.com/directoryservicev2/).

1. No painel de navegação, escolha **Directories (Diretórios)** e escolha **Set up directory (Configurar diretório)**.

1. Escolha **AWS Managed Microsoft AD**. O AWS Managed Microsoft AD é a única opção que você pode usar atualmente com o Amazon RDS.

1. Insira as seguintes informações:  
**Nome do DNS do diretório**  
O nome completo do diretório, como **corp.example.com**.  
**Nome de NetBIOS do diretório**  
O nome curto do diretório, como **CORP**.  
**Descrição do diretório**  
(Opcional) Uma descrição 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 e 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**  
A senha do administrador reinserida.

1. Escolha **Próximo**.

1.  Insira as seguintes informações na seção **Networking (Rede)** e escolha **Next (Próximo)**:  
**VPC**  
A VPC do diretório. Crie o cluster de banco de dados do Aurora MySQL nesta mesma VPC.  
**Sub-redes**  
Sub-redes para os servidores do diretório. As duas sub-redes deve estar em diferentes zonas de disponibilidade.

1. Revise as informações do diretório e faça as alterações necessárias. Quando as informações estiverem corretas, selecione **Create directory (Criar diretório)**.  
![\[Página de detalhes do diretório durante a criação\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/AuroraUserGuide/images/WinAuth2.png)

A criação do diretório leva alguns minutos. Depois que o diretório tiver sido criado com sucesso, o valor de **Status** muda para **Active (Ativo)**.

Para ver informações sobre o diretório, selecione o nome do diretório na listagem de diretórios. Anote o valor do **ID do diretório** porque você precisará desse valor ao criar ou modificar seu cluster de banco de dados do Aurora MySQL.

![\[ID do diretório na página Detalhes do diretório\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/AuroraUserGuide/images/WinAuth3.png)


## Etapa 2: (Opcional) Criar uma confiança para um Active Directory on-premises
<a name="aurora-mysql-kerberos-setting-up.create-trust"></a>

Se você não planeja usar seu próprio Microsoft Active Directory on-premises, vá para [Etapa 3: Criar um perfil do IAM para ser usada pelo Amazon Aurora](#aurora-mysql-kerberos-setting-up.CreateIAMRole).

Para obter a autenticação Kerberos usando o Active Directory on-premises, é necessário criar uma relação de domínio confiável usando uma confiança de floresta entre o Microsoft Active Directory on-premises e o diretório AWS Managed Microsoft AD (criado em [Etapa 1: Criar um diretório usando o AWS Managed Microsoft AD](#aurora-mysql-kerberos-setting-up.create-directory)). A relação de confiança pode ser unidirecional, onde o diretório AWS Managed Microsoft AD confia no Microsoft Active Directory on-premises. A confiança também pode ser bidirecional, onde os dois Active Directories confiam um no outro. Para ter mais informações sobre como configurar confianças usando o Directory Service, consulte [Quando criar uma relação de confiança](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_setup_trust.html) no *Guia de administração do AWS Directory Service*.

**nota**  
Se você usa um Microsoft Active Directory on-premises:  
Os clientes do Windows não podem se conectar usando endpoints personalizados do Aurora. Para saber mais, consulte [Conexões de endpoints do Amazon Aurora](Aurora.Overview.Endpoints.md).
Para [bancos de dados globais](aurora-global-database.md):  
Os clientes do Windows podem se conectar usando endpoints de instância ou endpoints do cluster somente na Região da AWS primária do banco de dados global.
Os clientes do Windows não podem se conectar usando endpoints do cluster em Regiões da AWS secundárias.

Verifique se o nome de domínio do Microsoft Active Directory on-premises inclui um roteamento de sufixo DNS que corresponde à relação de confiança recém-criada. A captura de tela a seguir mostra um exemplo.

![\[O roteamento de DNS corresponde à confiança criada\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/AuroraUserGuide/images/kerberos-auth-trust.png)


## Etapa 3: Criar um perfil do IAM para ser usada pelo Amazon Aurora
<a name="aurora-mysql-kerberos-setting-up.CreateIAMRole"></a>

Para que o Amazon Aurora chame o Directory Service para você, é necessário ter um perfil do AWS Identity and Access Management (IAM) que use a política gerenciada `AmazonRDSDirectoryServiceAccess` do IAM. Este perfil permite que o Aurora faça chamadas ao Directory Service.

Quando você cria um cluster de banco de dados usando o Console de gerenciamento da AWS e tem a permissão `iam:CreateRole`, o console cria esse perfil automaticamente. Nesse caso, o nome da função é `rds-directoryservice-kerberos-access-role`. Caso contrário, é necessário criar a função do IAM manualmente. Ao criar essa função do IAM, escolha `Directory Service` e associe a AWS política gerenciada da `AmazonRDSDirectoryServiceAccess` a ela.

Para ter mais informações sobre como criar funções do IAM para um serviço, consulte o tópico sobre como [Criar uma função para delegar permissões a um serviço da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html), no *Guia do usuário do IAM*.

Se preferir, você poderá criar políticas com as permissões exigidas em vez de usar a política gerenciada do IAM `AmazonRDSDirectoryServiceAccess`. Nesse caso, o perfil do IAM deve ter a política de confiança do IAM a seguir.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "directoryservice.rds.amazonaws.com",
          "rds.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

A função também deve ter a política de perfil do IAM a seguir.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "ds:DescribeDirectories",
        "ds:AuthorizeApplication",
        "ds:UnauthorizeApplication",
        "ds:GetAuthorizedApplicationDetails"
      ],
    "Effect": "Allow",
    "Resource": "*"
    }
  ]
}
```

------

## Etapa 4: Criar e configurar usuários
<a name="aurora-mysql-kerberos-setting-up.create-users"></a>

Você pode criar usuários com a ferramenta Usuários e computadores do Active Directory. Essa ferramenta faz parte 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.

Para criar usuários em um diretório Directory Service, você usa uma instância on-premises ou do Amazon EC2 baseada no Microsoft Windows conectada seu diretório Directory Service. É necessário estar conectado à instância como um usuário que tenha privilégios para criar usuários. Para ter mais informações, consulte o tópico sobre como [Gerenciar usuários e grupos 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 5: Criar ou modificar um cluster de banco de dados do Aurora MySQL
<a name="aurora-mysql-kerberos-setting-up.create-modify"></a>

Crie ou modifique um cluster de banco de dados MySQL para usar com o diretório. É possível usar o console, a AWS CLI ou a API do RDS para associar um cluster de banco de dados a um diretório. Você pode realizar essa tarefa por meio de uma das seguintes maneiras:
+ Crie um cluster de banco de dados do Aurora MySQL usando o console, o comando da CLI [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) ou a operação da API do RDS [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html).

  Para instruções, consulte [Criar um cluster de bancos de dados do Amazon Aurora](Aurora.CreateInstance.md).
+ Modifique um cluster de banco de dados do Aurora MySQL existente usando o console, o comando da CLI [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) ou a operação da API do RDS [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html).

  Para instruções, consulte [Modificar um cluster de bancos de dados Amazon Aurora](Aurora.Modifying.md).
+ Restaure um cluster de banco de dados do Aurora MySQL de um snapshot de banco de dados usando o console, o comando da CLI [restore-db-cluster-from-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html) ou a operação de API do RDS [RestoreDBClusterFromSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterFromSnapshot.html).

  Para instruções, consulte [Restauração de um snapshot de um cluster de banco de dados](aurora-restore-snapshot.md).
+ Restaure um cluster de banco de dados do Aurora MySQL para um momento específico usando o console, o comando da CLI [restore-db-cluster-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-to-point-in-time.html) ou a operação da API do RDS [RestoreDBClusterToPointInTime](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterToPointInTime.html).

  Para instruções, consulte [Restaurar um cluster de banco de dados para um horário especificado](aurora-pitr.md).

A autenticação Kerberos só é compatível com clusters de banco de dados do Aurora MySQL em uma VPC. O cluster de banco de dados pode estar na mesma VPC do diretório ou em uma VPC diferente. A VPC do cluster de banco de dados deve ter um grupo de segurança de VPC que permita a comunicação de saída com seu diretório. 

### Console
<a name="aurora-mysql-kerberos-setting-up.create-modify.CON"></a>

Ao usar o console para criar, modificar ou restaurar um cluster de banco de dados, escolha **Kerberos authentication** (Autenticação Kerberos) na seção **Database authentication** (Autenticação de banco de dados). Escolha **Browse Directory (Procurar diretório)** e selecione o diretório ou escolha **Create a new directory (Criar um diretório)**.

![\[Configuração da autenticação Kerberos ao criar um cluster de banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/AuroraUserGuide/images/kerberos-auth-create-cluster.png)


### AWS CLI
<a name="aurora-mysql-kerberos-setting-up.create-modify.CLI"></a>

Ao usar a AWS CLI ou a API do RDS, associe um cluster de banco de dados a um diretório. Os seguintes parâmetros são necessários para que o cluster de banco de dados utilize o diretório de domínio que você criou:
+ Para o parâmetro `--domain`, use o identificador de domínio (identificador "d-\$1") 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 um cluster de banco de dados para usar um diretório.

Para Linux, macOS ou Unix:

```
aws rds modify-db-cluster \
    --db-cluster-identifier mydbcluster \
    --domain d-ID \
    --domain-iam-role-name role-name
```

Para Windows:

```
aws rds modify-db-cluster ^
    --db-cluster-identifier mydbcluster ^
    --domain d-ID ^
    --domain-iam-role-name role-name
```

**Importante**  
Se você modificar um cluster de banco de dados para ativar a autenticação Kerberos, reinicialize as instâncias de banco de dados do leitor após a alteração.

## Etapa 6: Criar usuários do Aurora MySQL que usam a autenticação Kerberos
<a name="aurora-mysql-kerberos-setting-up.create-logins"></a>

O cluster de banco de dados é unido ao domínio AWS Managed Microsoft AD. Assim, é possível criar usuários do Aurora MySQL de usuários do Active Directory em seu domínio. As permissões de banco de dados são gerenciadas por meio de permissões padrão do Aurora MySQL que são concedidas e revogadas desses usuários.

Você pode permitir que um usuário do Active Directory seja autenticado pelo Aurora MySQL. Para fazer isso, primeiro use as credenciais do usuário primário do Amazon RDS para se conectar ao cluster de banco de dados do Aurora MySQL como você faz com qualquer outro cluster de banco de dados. Após o login, crie um usuário autenticado externamente com a autenticação Kerberos no Aurora MySQL como mostrado aqui:

```
CREATE USER user_name@'host_name' IDENTIFIED WITH 'authentication_kerberos' BY 'realm_name';
```
+ Substitua `user_name` pelo nome de usuário. Agora, os usuários (humanos e aplicações) de seu domínio poderão se conectar ao cluster de banco de dados de uma máquina cliente conectada ao domínio usando a autenticação Kerberos.
+ Substitua `host_name` pelo nome do host. Você pode usar `%` como curinga. Você também pode usar endereços IP específicos para o nome do host.
+ Substitua *realm\$1name* pelo nome do realm do diretório do domínio. O nome do realm geralmente é igual ao nome do domínio DNS em letras maiúsculas, como `CORP.EXAMPLE.COM`. Um realm é um grupo de sistemas que usam o mesmo Centro de Distribuição de Chaves do Kerberos.

O exemplo a seguir cria um usuário de banco de dados com o nome `Admin` que é autenticado no Active Directory com o nome do realm `MYSQL.LOCAL`.

```
CREATE USER Admin@'%' IDENTIFIED WITH 'authentication_kerberos' BY 'MYSQL.LOCAL';
```

### Modificar um login existente do Aurora MySQL
<a name="aurora-mysql-kerberos.modify-login"></a>

Você também pode modificar um login existente do Aurora MySQL para usar a autenticação Kerberos utilizando a seguinte sintaxe:

```
ALTER USER user_name IDENTIFIED WITH 'authentication_kerberos' BY 'realm_name';
```

## Etapa 7: Configurar um cliente MySQL
<a name="aurora-mysql-kerberos-setting-up.configure-client"></a>

Para configurar um cliente MySQL, execute as seguintes etapas:

1. Crie um arquivo `krb5.conf` (ou equivalente) para apontar para o domínio.

1. Verifique se o tráfego pode fluir entre o host do cliente e o Directory Service. Use um utilitário de rede, como o Netcat, para o seguinte:
   + Verifique o tráfego pelo DNS da porta 53.
   + Verifique o tráfego pelo TCP/UDP da porta 53 e do Kerberos, que inclui as portas 88 e 464 do Directory Service.

1. Verifique se o tráfego pode fluir entre o host do cliente e a instância de banco de dados pela porta do banco de dados. Por exemplo, use `mysql` para conectar e acessar o banco de dados.

Veja a seguir um exemplo de conteúdo `krb5.conf` para o AWS Managed Microsoft AD.

```
[libdefaults]
 default_realm = EXAMPLE.COM
[realms]
 EXAMPLE.COM = {
  kdc = example.com
  admin_server = example.com
 }
[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM
```

Veja a seguir um exemplo de conteúdo `krb5.conf` para o Microsoft Active Directory on-premises.

```
[libdefaults]
 default_realm = EXAMPLE.COM
[realms]
 EXAMPLE.COM = {
  kdc = example.com
  admin_server = example.com
 }
 ONPREM.COM = {
  kdc = onprem.com
  admin_server = onprem.com
 }
[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM
 .onprem.com = ONPREM.COM
 onprem.com = ONPREM.COM  
 .rds.amazonaws.com = EXAMPLE.COM
 .amazonaws.com.rproxy.govskope.ca.cn = EXAMPLE.COM
 .amazon.com = EXAMPLE.COM
```

## Etapa 8: (Opcional) Configurar a comparação de nomes de usuário sem distinção entre maiúsculas e minúsculas
<a name="aurora-mysql-kerberos-setting-up.case-insensitive"></a>

Por padrão, a capitalização das letras do nome de usuário do banco de dados MySQL deve corresponder à capitalização usada no login do Active Directory. No entanto, agora você pode usar a comparação de nomes de usuário sem distinção entre maiúsculas e minúsculas com o plug-in `authentication_kerberos`. Para fazer isso, defina o parâmetro `authentication_kerberos_caseins_cmp` de cluster de banco de dados como `true`.

**Como usar a comparação de nomes de usuário sem distinção entre maiúsculas e minúsculas**

1. Crie um grupo de parâmetros de cluster de banco de dados personalizado. Siga os procedimentos em [Criar um grupo de parâmetros de cluster de banco de dadosno Amazon Aurora](USER_WorkingWithParamGroups.CreatingCluster.md).

1. Edite o novo grupo de parâmetros para definir o valor de `authentication_kerberos_caseins_cmp` como `true`. Siga os procedimentos em [Modificar parâmetros em um grupo de parâmetros de cluster de banco de dadosno Amazon Aurora](USER_WorkingWithParamGroups.ModifyingCluster.md).

1. Associe o grupo de parâmetros de cluster de banco de dados ao cluster de banco de dados do Aurora MySQL. Siga os procedimentos em [Associar um grupo de parâmetros de cluster de banco de dados a um cluster de banco de dados no Amazon Aurora](USER_WorkingWithParamGroups.AssociatingCluster.md).

1. Reinicialize o cluster de banco de dados.

# Conectar-se ao Aurora MySQL com a autenticação Kerberos
<a name="aurora-mysql-kerberos-connecting"></a>

Para evitar erros, utilize um cliente MySQL com a versão 8.0.26 ou posterior em plataformas Unix, 8.0.27 ou posterior no Windows.

## Utilizar o login do Kerberos do Aurora MySQL para se conectar ao cluster de banco de dados
<a name="aurora-mysql-kerberos-connecting.login"></a>

Para se conectar ao Aurora MySQL com a autenticação Kerberos, você faz login como um usuário do banco de dados que você criou seguindo as instruções em [Etapa 6: Criar usuários do Aurora MySQL que usam a autenticação Kerberos](aurora-mysql-kerberos-setting-up.md#aurora-mysql-kerberos-setting-up.create-logins).

No prompt de comando, conecte-se a um dos endpoints associados ao cluster de banco de dados do Aurora MySQL. Quando a senha for solicitada, insira a senha do Kerberos associada a esse nome de usuário.

Quando você se autentica com o Kerberos, um *tíquete de concessão de tíquetes* (TGT) é gerado, caso ainda não exista. O plug-in da `authentication_kerberos` utiliza o TGT para obter um *tíquete de serviço*, que é então apresentado ao servidor de banco de dados do Aurora MySQL.

Você pode usar o cliente MySQL para se conectar ao Aurora MySQL com a autenticação Kerberos utilizando Windows ou Unix.

### Unix
<a name="aurora-mysql-kerberos-connecting.login.unix"></a>

Você pode se conectar utilizando um dos seguintes métodos:
+ Obtenha o TGT manualmente. Nesse caso, você não precisa fornecer a senha para o cliente MySQL.
+ Forneça a senha para o login do Active Directory diretamente ao cliente MySQL.

O plug-in do lado do cliente é compatível com as plataformas Unix para as versões 8.0.26 e versões posteriores do cliente MySQL.

**Como se conectar obtendo o TGT manualmente**

1. Na interface de linha de comando, utilize o comando a seguir para obter o TGT.

   ```
   kinit user_name
   ```

1. Utilize o comando `mysql` a seguir para fazer login no endpoint de instância de banco de dados de seu cluster de banco de dados.

   ```
   mysql -h DB_instance_endpoint -P 3306 -u user_name -p
   ```
**nota**  
A autenticação poderá falhar se o keytab for alternado na instância de banco de dados. Nesse caso, obtenha um novo TGT executando novamente `kinit`.

**Como se conectar diretamente**

1. Na interface de linha de comando, utilize o comando `mysql` a seguir para fazer login no endpoint de instância de banco de dados de seu cluster de banco de dados.

   ```
   mysql -h DB_instance_endpoint -P 3306 -u user_name -p
   ```

1. Insira a senha do usuário do Active Directory.

### Windows
<a name="aurora-mysql-kerberos-connecting.login.win"></a>

No Windows, a autenticação geralmente é feita no momento do login; portanto, você não precisa obter o TGT manualmente para se conectar ao cluster de banco de dados do Aurora MySQL. A capitalização das letras do nome de usuário do banco de dados deve corresponder à capitalização das letras do usuário no Active Directory. Por exemplo, se o usuário no Active Directory for exibido como `Admin`, o nome de usuário do banco de dados deverá ser `Admin`.

O plug-in do lado do cliente é compatível com o Windows para as versões 8.0.27 e posteriores do cliente MySQL.

**Como se conectar diretamente**
+ Na interface de linha de comando, utilize o comando `mysql` a seguir para fazer login no endpoint de instância de banco de dados de seu cluster de banco de dados.

  ```
  mysql -h DB_instance_endpoint -P 3306 -u user_name
  ```

## Autenticação Kerberos com bancos de dados globais Aurora
<a name="aurora-mysql-kerberos-connecting.global"></a>

A autenticação Kerberos para o Aurora MySQL é compatível com bancos de dados globais do Aurora. Para autenticar usuários no cluster de banco de dados secundário utilizando o Active Directory do cluster de banco de dados primário, replique o Active Directory para a Região da AWS secundária. Você ativa a autenticação Kerberos no cluster secundário utilizando o mesmo ID de domínio do cluster primário. A replicação AWS Managed Microsoft AD é compatível somente com a versão Enterprise do Active Directory. Para ter mais informações, consulte [Replicação em várias regiões](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_configure_multi_region_replication.html) no *Guia de administração do AWS Directory Service*.

## Migração do RDS para MySQL para o Aurora MySQL
<a name="aurora-mysql-kerberos-connecting.rds"></a>

Depois de migrar do RDS para MySQL com a autenticação Kerberos habilitada para o Aurora MySQL, modifique os usuários criados com o plug-in `auth_pam` para usar o plug-in `authentication_kerberos`. Por exemplo:

```
ALTER USER user_name IDENTIFIED WITH 'authentication_kerberos' BY 'realm_name';
```

## Evitar o armazenamento em cache de tíquetes
<a name="aurora-mysql-kerberos.destroy-tickets"></a>

Se um TGT válido não existir quando a aplicação cliente MySQL for iniciada, a aplicação poderá obter o TGT e armazená-lo em cache. Se você quiser evitar que o TGT seja armazenado em cache, defina um parâmetro de configuração no arquivo `/etc/krb5.conf`.

**nota**  
Essa configuração só se aplica a hosts de clientes que executam Unix, não Windows.

**Para evitar o armazenamento em cache do TGT**
+ Adicione uma seção `[appdefaults]` a `/etc/krb5.conf` da seguinte forma:

  ```
  [appdefaults]
    mysql = {
      destroy_tickets = true
    }
  ```

## Registro em log da autenticação Kerberos
<a name="aurora-mysql-kerberos.logging"></a>

A variável de ambiente `AUTHENTICATION_KERBEROS_CLIENT_LOG` define o nível de registro em log para a autenticação Kerberos. Você pode usar os logs para depuração do lado do cliente.

Os valores permitidos são 1 a 5. As mensagens de log são gravadas na saída de erro padrão. A tabela a seguir descreve cada nível de registro em log.


| Nível de registro | Descrição | 
| --- | --- | 
| 1 ou não definido | Sem registro em log | 
| 2 | Mensagens de erro | 
| 3 | Mensagens de erro e aviso | 
| 4 | Mensagens de erro, aviso e informação | 
| 5 | Mensagens de erro, aviso, informação e depuração | 

# Gerenciar um cluster de banco de dados em um domínio
<a name="aurora-mysql-kerberos-managing"></a>

É possível utilizar a AWS CLI ou a API do RDS para gerenciar o cluster de banco de dados e as respectivas relações com o Active Directory gerenciado. Por exemplo, você pode associar um Active Directory para autenticação Kerberos e desassociar um Active Directory para desativar a autenticação Kerberos. Também é possível mover um cluster de banco de dados para ser autenticado externamente por um Active Directory para outro.

Por exemplo, usando a API do Amazon RDS, você pode fazer o seguinte:
+ Para tentar ativar novamente a autenticação Kerberos para uma associação com falha, utilize 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 desativar a autenticação Kerberos em um cluster de banco de dados, utilize a operação `ModifyDBInstance` da API e especifique `none` como o parâmetro de domínio.
+ Para mover um cluster de banco de dados de um domínio para outro, utilize a operação `ModifyDBInstance` da API e especifique o identificador do novo domínio como o parâmetro do domínio.
+ Para listar as associações de cada cluster de banco de dados, utilize a operação `DescribeDBInstances` da API.

## Compreensão da associação de domínio
<a name="aurora-mysql-kerberos-managing.understanding"></a>

Depois que você cria ou modifica o cluster de banco de dados, ele se torna membro do domínio. É possível visualizar o status da associação do domínio do cluster de banco de dados executando o comando [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) da CLI. O status do cluster de banco de dados pode ser um dos seguintes:
+ `kerberos-enabled`: o cluster de banco de dados tem a autenticação Kerberos ativada.
+  `enabling-kerberos`: a AWS está no processo de ativar a autenticação Kerberos nesse cluster de bancos de dados.
+ `pending-enable-kerberos`: a ativação da autenticação Kerberos está pendente nesse cluster de bancos de dados.
+ `pending-maintenance-enable-kerberos`: a AWS tentará ativar a autenticação Kerberos no cluster de banco de dados durante a próxima janela de manutenção programada.
+ `pending-disable-kerberos`: a desativação da autenticação Kerberos está pendente nesse cluster de bancos de dados.
+ `pending-maintenance-disable-kerberos`: a AWS tentará desativar a autenticação Kerberos no cluster de banco de dados durante a próxima janela de manutenção programada.
+ `enable-kerberos-failed`: um problema de configuração impediu que a AWS ativasse a autenticação Kerberos no cluster de banco de dados. Confira e corrija sua configuração antes de emitir novamente o comando modify do cluster de banco de dados.
+ `disabling-kerberos`: a AWS está no processo de desativar a autenticação Kerberos nesse cluster de bancos de dados.

Uma solicitação para ativar a autenticação Kerberos pode falhar por conta de um problema de conectividade de rede ou de um perfil do IAM incorreto. Por exemplo, suponha que você crie um cluster de banco de dados ou modifique um existente e ocorra uma falha na tentativa de ativar a autenticação Kerberos. Se esse for o caso, emita o comando modify novamente ou modifique o cluster de banco de dados recém-criado para ingressar no domínio.