

# Configurar a autenticação Kerberos para instâncias de banco de dados do Amazon RDS para Db2
<a name="db2-kerberos-setting-up"></a>

Você vai usar AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) para configurar a autenticação Kerberos para uma instância de banco de dados do RDS para Db2 Para configurar a autenticação Kerberos, siga estas etapas:

**Topics**
+ [Etapa 1: criar um diretório usando o AWS Managed Microsoft AD](#db2-kerberos-setting-up.create-directory)
+ [Etapa 2: criar uma confiança](#db2-kerberos-setting-up-create-forest-trust)
+ [Etapa 3: criar um perfil do IAM para o Amazon RDS acessar o Directory Service](#db2-kerberos-setting-up-create-iam-role)
+ [Etapa 4: Criar e configurar usuários](#db2-kerberos-setting-up.create-users)
+ [Etapa 5: criar um grupo de administradores do RDS para Db2 no AWS Managed Microsoft AD](#db2-kerberos-setting-up-vpc-peering)
+ [Etapa 6: modificar parâmetro do banco de dados](#db2-kerberos-setting-up-modify-db-parameter)
+ [Etapa 7: criar ou modificar uma instância de banco de dados do RDS para Db2](#db2-kerberos-setting-up-create-modify)
+ [Etapa 8: recuperar o SID do grupo do Active Directory no PowerShell](#db2-kerberos-setting-up-retrieve-ad-group-sid)
+ [Etapa 9: adicionar o SID aos mapeamentos de GroupName para sua instância de banco de dados do RDS para Db2](#db2-kerberos-setting-up-add-sid-group-mapping)
+ [Etapa 10: configurar um cliente Db2](#db2-kerberos-setting-up-create-logins)

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

O Directory Service cria um Active Directory totalmente gerenciado na Nuvem AWS. Quando você cria um diretório AWS Managed Microsoft AD, o Directory Service cria dois controladores de domínio e servidores DNS para você. 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 na 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. 
**Importante**  
Certifique-se de salvar essa senha. O Directory Service não armazena essa senha e não é possível recuperá-la ou redefini-la.
+ Cria um grupo de segurança para os controladores do diretório. O grupo de segurança deve permitir a comunicação com a instância de banco de dados do RDS para Db2.

Ao iniciar o AWS Directory Service for Microsoft Active Directory, a AWS cria uma unidade organizacional (UO) que contém todos os objetos do diretório. Essa UO, que tem o nome de NetBIOS que você digitou ao criar o 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 AWS Managed Microsoft AD, tem permissões para as atividades administrativas mais comuns da UO: 
+ Crie, atualize ou exclua usuários.
+ Adicione recursos ao domínio, como servidores de arquivos ou de impressão, e atribua permissões para esses recursos aos usuários na UO. 
+ Criar OUs adicionais e contêineres. 
+ Delegar autoridade.
+ Restaure objetos excluídos da lixeira do Active Directory. 
+ Execute os módulos Active Directory e Domain Name Service (DNS) para Windows PowerShell noDirectory 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. Selecione **Configurar diretório**.

1. Selecione **AWS Managed Microsoft AD**. O AWS Managed Microsoft AD é a única opção atualmente aceita para uso com o Amazon RDS. 

1. Escolha ******Próximo******.

1. Na página ******Inserir informações do diretório******, forneça as seguintes informações: 
   + **Edição**: selecione a edição que atenda aos requisitos.
   + **Nome do DNS do diretório**** **: o nome totalmente qualificado do diretório, como `corp.example.com`. 
   + **Nome de NetBIOS do diretório**** **: um nome curto opcional do diretório, como `CORP`.
   + **Descrição do diretório**: uma descrição opcional do diretório. 
   + **Senha do administrador**** **: 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. 
**Importante**  
Salve essa senha. O Directory Service não armazena essa senha e não é possível recuperá-la ou redefini-la.

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**: selecione a VPC do diretório. É possível criar a instância de banco de dados do RDS para Db2 nessa mesma VPC ou em outra VPC. 
   + **Sub-redes**: selecione 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)** e faça as alterações. Quando as informações estiverem corretas, escolha **Create directory (Criar diretório)**.   
![A janela Revisar e criar durante a criação do diretório no console do Directory Service.](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/db2-create-ADS-directory.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 ver as informações sobre o diretório, selecione o ID do diretório em **ID do diretório**. Anote o valor do **Directory ID (ID do diretório)**. Esse valor será necessário ao criar ou modificar a instância de banco de dados do RDS para Db2. 

![A seção Detalhes do diretório com ID do diretório no console do Directory Service.](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/db2-ADS-directory-details.png)


## Etapa 2: criar uma confiança
<a name="db2-kerberos-setting-up-create-forest-trust"></a>

Se você planeja usar somente o AWS Managed Microsoft AD, vá para [Etapa 3: criar um perfil do IAM para o Amazon RDS acessar o Directory Service](#db2-kerberos-setting-up-create-iam-role).

Para habilitar a autenticação Kerberos usando seu Active Directory autogerenciado, você deve criar uma relação de confiança de floresta. Uma relação de confiança de floresta é uma relação de confiança entre um Microsoft AD e um Active Directory autogerenciado e o AWS Managed Microsoft AD criado na etapa anterior. 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 de floresta usando o Directory Service, consulte [When to create a trust relationship](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_setup_trust.html) no *Guia de administração do AWS Directory Service*.

## Etapa 3: criar um perfil do IAM para o Amazon RDS acessar o Directory Service
<a name="db2-kerberos-setting-up-create-iam-role"></a>

Para que o Amazon RDS chame o Directory Service para você, a Conta da AWS precisa de um perfil do IAM que use a política gerenciada do IAM `AmazonRDSDirectoryServiceAccess`. Esse perfil permite que o Amazon RDS faça chamadas ao Directory Service.

Quando você cria uma instância de banco de dados usando o Console de gerenciamento da AWS e a conta do usuário do console tiver a permissão `iam:CreateRole`, o console criará o perfil do IAM necessário 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*. 

**nota**  
O perfil do IAM usado para a autenticação Windows para RDS para o Microsoft SQL Server não pode ser usado para o RDS para Db2.

Como alternativa ao uso da política gerenciada pelo `AmazonRDSDirectoryServiceAccess`, você pode criar políticas com as permissões exigidas. Nesse caso, o perfil do IAM deve ter a seguinte política de confiança do IAM:

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

****  

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

------

O perfil também deve ter a seguinte política de perfil do IAM:

------
#### [ 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="db2-kerberos-setting-up.create-users"></a>

É possível criar usuários utilizando a ferramenta Active Directory Users and Computers. Essa é uma das ferramentas Active Directory Domain Services e Active Directory Lightweight Directory Services. Para ter mais informações, consulte [Add Users and Computers to the Active Directory domain](https://learn.microsoft.com/en-us/troubleshoot/windows-server/identity/create-an-active-directory-server#add-users-and-computers-to-the-active-directory-domain) na documentação da Microsoft. Nesse caso, os usuários são indivíduos ou outras entidades, como computadores, que fazem parte do domínio e cujas identidades estão sendo mantidas no diretório. 

Para criar usuários em um diretório do Directory Service, é necessário estar conectado a uma instância do Amazon EC2 baseada no Windows que seja membro do diretório do Directory Service. Ao mesmo tempo, é necessário estar conectado como um usuário que tenha privilégios para criar usuários. Para obter mais informações, consulte [Criar um usuário](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups_create_user.html) no *Guia de administração do AWS Directory Service*.

## Etapa 5: criar um grupo de administradores do RDS para Db2 no AWS Managed Microsoft AD
<a name="db2-kerberos-setting-up-vpc-peering"></a>

O RDS para Db2 não é compatível com a autenticação Kerberos para o usuário principal ou para os dois usuários reservados `rdsdb` e `rdsadmin` do Amazon RDS. Em vez disso, você precisa criar um grupo chamado `masterdba` no AWS Managed Microsoft AD. Para ter mais informações, consulte [Create a Group Account in Active Directory](https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/create-a-group-account-in-active-directory) na documentação da Microsoft. Todos os usuários adicionados a esse grupo terão privilégios de usuário principal.

Depois de habilitar a autenticação Kerberos, o usuário principal perde o perfil `masterdba`. Como resultado, o usuário principal não conseguirá acessar a associação do grupo de usuários local da instância, a menos que você desabilite a autenticação Kerberos. Para continuar utilizando o usuário principal com login por senha, crie um usuário no AWS Managed Microsoft AD com o mesmo nome do usuário principal. Depois, adicione esse usuário ao grupo `masterdba`.

## Etapa 6: modificar parâmetro do banco de dados
<a name="db2-kerberos-setting-up-modify-db-parameter"></a>

Se você planeja usar somente o AWS Managed Microsoft AD, pule para [Etapa 7: criar ou modificar uma instância de banco de dados do RDS para Db2Etapa 7: Criar ou modificar uma instância de banco de dados](#db2-kerberos-setting-up-create-modify).

Para habilitar a autenticação Kerberos usando seu Active Directory autogerenciado, você deve definir o parâmetro `rds.active_directory_configuration` como `AWS_MANAGED_AD_WITH_TRUST` em seu grupo de parâmetros. Por padrão, esse parâmetro é definido como `AWS_MANAGED_AD` para usar somente o AWS Managed Microsoft AD.

Para ter informações sobre como modificar parâmetros de banco de dados, consulte [Modificar os parâmetros no grupo de parâmetros](db2-supported-parameters.md#db2-modifying-parameter-group-parameters).

## Etapa 7: criar ou modificar uma instância de banco de dados do RDS para Db2
<a name="db2-kerberos-setting-up-create-modify"></a>

Crie ou modifique uma instância de banco de dados do RDS para Db2 para ser usada com o diretório. É possível usar o Console de gerenciamento da AWS, a AWS 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 RDS para Db2 usando o console, o comando [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) ou a operação da API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Para 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 do RDS para Db2 existente usando o console, o comando [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) ou a operação da API [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html). Para 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 RDS para Db2 de um snapshot de banco de dados usando o console, o comando [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) ou a operação da API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html). Para instruções, consulte [Restaurar uma instância de banco de dados](USER_RestoreFromSnapshot.md). 
+ Restaure uma instância de banco de dados do RDS para Db2 para um ponto no tempo usando o console, o comando [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) ou a operação da API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html). Para instruções, consulte [Restaurar uma instância de banco de dados para um momento especificado no Amazon RDS](USER_PIT.md). 

A autenticação Kerberos só é compatível com instâncias de banco de dados do RDS para Db2 em uma VPC. A instância de banco de dados pode estar na mesma VPC do diretório ou em uma VPC diferente. A instância de banco de dados deve usar um grupo de segurança que permita a entrada e a saída na VPC do diretório para que a instância de banco de dados possa se comunicar com o diretório.

### Console
<a name="db2-kerberos-setting-up-create-modify-console"></a>

Ao usar o console para criar, modificar ou restaurar uma instância de banco de dados, selecione **Senha e autenticação Kerberos** na seção **Autenticação de banco de dados**. Em seguida, escolha **Browse Directory** (Procurar diretório). Selecione o diretório ou escolha **Criar diretório** para usar o Directory Service.

![A seção Autenticação do banco de dados com Senha e autenticação Kerberos selecionada no console do Amazon RDS.](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/db2-database-authentication-directory.png)


### AWS CLI
<a name="db2-kerberos-setting-up-create-modify-cli"></a>

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

O exemplo a seguir modifica uma instância de banco de dados para usar um diretório. Substitua os seguintes placeholders no exemplo pelos próprios valores:
+ {{db\_instance\_name}}: o nome da instância de banco de dados do RDS para Db2.
+ {{directory\_id}}: o ID do diretório do AWS Directory Service for Microsoft Active Directory que você criou.
+ {{role\_name}}: o nome do perfil do IAM criado.

```
aws rds modify-db-instance --db-instance-identifier {{db_instance_name}} --domain d-{{directory_id}} --domain-iam-role-name {{role_name}} 
```

**Importante**  
Se você modificar uma instância de banco de dados para habilitar a autenticação Kerberos, reinicialize a instância de banco de dados depois de fazer a alteração.

## Etapa 8: recuperar o SID do grupo do Active Directory no PowerShell
<a name="db2-kerberos-setting-up-retrieve-ad-group-sid"></a>

Um ID de segurança (SID) é usado para identificar de forma exclusiva uma entidade principal ou um grupo de segurança. Quando uma conta ou um grupo de segurança é criado no Active Directory, o Active Directory atribui um SID ao grupo. Para recuperar o SID do grupo de segurança do AD do Active Directory, use o cmdlet `Get-ADGroup` em uma máquina cliente Windows que faça parte do domínio do Active Directory. O parâmetro `Identity` especifica o nome do grupo do Active Directory para o qual você deseja o SID.

O exemplo a seguir exibe o SID do grupo `adgroup1` do Active Directory.

```
C:\Users\Admin> Get-ADGroup -Identity adgroup1 | select SID

             SID
-----------------------------------------------
S-1-5-21-3168537779-1985441202-1799118680-1612
```

Você deve gerar esse mapeamento para todos os grupos relevantes ao banco de dados.

## Etapa 9: adicionar o SID aos mapeamentos de GroupName para sua instância de banco de dados do RDS para Db2
<a name="db2-kerberos-setting-up-add-sid-group-mapping"></a>

Você precisa adicionar o SID aos mapeamentos de GroupName criados na etapa anterior à instância de banco de dados do RDS para Db2. Para cada mapeamento, chame o procedimento armazenado a seguir. Substitua o {{SID}} e o {{group\_name}} pelas suas próprias informações. 

```
db2 connect to rdsadmin
db2 "call rdsadmin.set_sid_group_mapping(?, '{{SID}}','{{group_name}}')"
```

Para obter mais informações, consulte [rdsadmin.set\_sid\_group\_mapping](db2-sp-granting-revoking-privileges.md#db2-sp-set-sid-group-mapping). 

Para ter informações sobre como conferir o status da tarefa, consulte [rdsadmin.get\_task\_status](db2-user-defined-functions.md#db2-udf-get-task-status). 

## Etapa 10: configurar um cliente Db2
<a name="db2-kerberos-setting-up-create-logins"></a>

**Como configurar um cliente Db2**

1. Crie um arquivo **/etc/krb5.conf** (ou equivalente) para apontar para o domínio.
**nota**  
Para sistemas operacionais Windows, crie um arquivo **C:\\windows\\krb5.ini**.

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 as seguintes tarefas:

   1. Verifique o tráfego pelo DNS da porta 53.

   1. 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. É possível usar o comando `db2` para conectar e acessar o banco de dados.

O seguinte exemplo é o conteúdo do arquivo /etc/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
```