

# Configurar a autenticação do banco de dados e o acesso a recursos manualmente
<a name="limitless-load.manual"></a>

O processo manual para configurar a autenticação do banco de dados e o acesso aos recursos tem as seguintes etapas:

1. [Criar a AWS KMS key gerenciada pelo cliente](#limitless-load.auth.create-kms)

1. [Adicionar as políticas de permissão do perfil do IAM](#limitless-load.auth.iam-policy)

1. [Criar os segredos do banco de dados](#limitless-load.auth.secrets)

1. [Criar o perfil do IAM](#limitless-load.auth.iam-role)

1. [Atualizar a AWS KMS key gerenciada pelo cliente](#limitless-load.auth.update-kms)

Esse processo é opcional e executa as mesmas tarefas que em [Configurar a autenticação do banco de dados e o acesso a recursos usando um script](limitless-load.script.md). Recomendamos usar o script.

## Criar a AWS KMS key gerenciada pelo cliente
<a name="limitless-load.auth.create-kms"></a>

Siga os procedimentos em [Creating symmetric encryption keys](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) para criar uma chave do KMS gerenciada pelo cliente. Também é possível usar uma chave existente se ela atender a estes requisitos.

**Como criar uma chave do KMS gerenciada pelo cliente**

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS KMS em [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms).

1. Navegue até a página **Chaves gerenciadas pelo cliente**.

1. Escolha **Criar chave**.

1. Na página **Configurar chave**:

   1. Em **Tipo de chave**, selecione **Simétrico**.

   1. Em **Uso da chave**, selecione **Criptografar e descriptografar**.

   1. Escolha **Próximo**.

1. Na página **Adicionar rótulos**, insira um **Alias**, como **limitless**, e escolha **Próximo**.

1. Na página **Definir permissões administrativas da chave**, verifique se a caixa de seleção **Permitir que administradores de chaves excluam esta chave** está marcada e escolha **Próximo**.

1. Na página **Definir permissões de uso da chave**, escolha **Próximo**.

1. Na página **Review (Rever)**, escolha **Finish (Concluir)**.

   Você atualizará a política de chaves posteriormente.

Registre os nomes do recurso da Amazon (ARN) da chave do KMS a ser utilizada em [Adicionar as políticas de permissão do perfil do IAM](#limitless-load.auth.iam-policy).

Para obter informações sobre como usar a AWS CLI para criar a chave do KMS gerenciada pelo cliente, consulte [create-key](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-key.html) e [create-alias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-alias.html).

## Criar os segredos do banco de dados
<a name="limitless-load.auth.secrets"></a>

Para permitir que o utilitário de carregamento de dados acesse as tabelas do banco de dados de origem e destino, crie dois segredos no AWS Secrets Manager: um para o banco de dados de origem e outro para o banco de dados de destino. Esses segredos armazenam os nomes de usuário e senhas para acessar os bancos de dados de origem e destino.

Siga os procedimentos em [Create an AWS Secrets Manager secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) para criar os segredos de par de chave/valor.

**Como criar os segredos do banco de dados**

1. Abra o console Secrets Manager em [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Escolha **Armazenar Novo Segredo**.

1. Na página **Escolher tipo de segredo**:

   1. Em **Tipo de segredo**, selecione **Outro tipo de segredo**.

   1. Em **Pares de chave/valor**, escolha a guia **Texto simples**.

   1. Insira o código JSON a seguir, onde `{{sourcedbreader}}` e `{{sourcedbpassword}}` são as credenciais do usuário do banco de dados de origem de [Criar as credenciais do banco de dados de origem](limitless-load.utility.md#limitless-load.users.source).

      ```
      {
          "username":"{{sourcedbreader}}",
          "password":"{{sourcedbpassword}}"
      }
      ```

   1. Em **Chave de criptografia**, escolha a chave do KMS que você criou em [Criar a AWS KMS key gerenciada pelo cliente](#limitless-load.auth.create-kms), por exemplo `limitless`.

   1. Escolha **Próximo**.

1. Na página **Configurar segredo**, insira um **Nome do segredo**, como **source\_DB\_secret**, e escolha **Próximo**.

1. Na página **Configurar alternância - *opcional***, escolha **Próximo**.

1. Na página **Review** (Análise), escolha **Store** (Armazenar).

1. Repita o procedimento para o segredo do banco de dados de destino:

   1. Insira o código JSON a seguir, onde `{{destinationdbwriter}}` e `{{destinationdbpassword}}` são as credenciais do usuário do banco de dados de destino de [Criar as credenciais do banco de dados de destino](limitless-load.utility.md#limitless-load.users.destination).

      ```
      {
          "username":"{{destinationdbwriter}}",
          "password":"{{destinationdbpassword}}"
      }
      ```

   1. Insira um **Nome do segredo**, como **destination\_DB\_secret**.

Registre os ARNs dos segredos a serem usados em [Adicionar as políticas de permissão do perfil do IAM](#limitless-load.auth.iam-policy).

## Criar o perfil do IAM
<a name="limitless-load.auth.iam-role"></a>

O carregamento de dados exige que você forneça acesso aos recursos da AWS. Para fornecer acesso, você cria o perfil do IAM `aurora-data-loader` seguindo os procedimentos descritos em [Criar um perfil para delegar permissões a um usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html).

**Para criar perfil do IAM**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM, em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Navegue até o página **Perfis**.

1. Selecione **Criar perfil**.

1. Na página **Selecionar entidade confiável**:

   1. Em **Tipo de entidade confiável**, selecione **Política de confiança personalizada**.

   1. Insira o seguinte código JSON para a política de confiança personalizada:

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

****  

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

------

   1. Escolha **Próximo**.

1. Na página **Adicionar permissões**, escolha **Próximo**.

1. Na página **Nomear, revisar e criar**:

   1. Em **Nome do perfil**, insira **aurora-data-loader** ou outro nome que preferir.

   1. Selecione **Adicionar etiqueta** e insira a seguinte etiqueta:
      + **Chave**: **assumer**
      + **Valor**: **aurora\_limitless\_table\_data\_load**
**Importante**  
O Aurora PostgreSQL Limitless Database só pode assumir um perfil do IAM que tenha essa etiqueta.

   1. Selecione **Criar perfil**.

## Atualizar a AWS KMS key gerenciada pelo cliente
<a name="limitless-load.auth.update-kms"></a>

Siga os procedimentos em [Changing a key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html) para adicionar o perfil do IAM `aurora-data-loader` à política de chave padrão.

**Como adicionar o perfil do IAM à política de chave**

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS KMS em [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms).

1. Navegue até a página **Chaves gerenciadas pelo cliente**.

1. Escolha a chave do KMS que você criou em [Criar a AWS KMS key gerenciada pelo cliente](#limitless-load.auth.create-kms), por exemplo `limitless`.

1. Na guia **Política de chaves**, em **Usuários de chaves**, escolha **Adicionar**.

1. Na janela **Adicionar usuários de chaves**, selecione o nome do perfil do IAM que você criou em [Criar o perfil do IAM](#limitless-load.auth.iam-role), por exemplo **aurora-data-loader**.

1. Escolha **Adicionar**.

## Adicionar as políticas de permissão do perfil do IAM
<a name="limitless-load.auth.iam-policy"></a>

É necessário adicionar políticas de permissão ao perfil do IAM que você criou. Isso permite que o utilitário de carregamento de dados do Aurora PostgreSQL Limitless Database acesse os recursos relacionados da AWS para criar conexões de rede e recuperar os segredos das credenciais dos bancos de dados de origem e destino.

Para obter mais informações, consulte [Modificar uma função](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html#roles-modify_gen-policy).

**Como adicionar as políticas de permissão**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM, em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Navegue até o página **Perfis**.

1. Escolha o perfil do IAM que você criou em [Criar o perfil do IAM](#limitless-load.auth.iam-role), por exemplo **aurora-data-loader**.

1. Na guia **Permissões**, em **Políticas de permissões**, escolha **Adicionar permissões** e, em seguida, **Criar política em linha**.

1. Na página **Especifique permissões**, escolha o editor **JSON**.

1. Copie e cole o modelo a seguir no editor JSON, substituindo os espaços reservados pelos ARNs dos segredos do banco de dados e da chave do KMS.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Ec2Permission",
               "Effect": "Allow",
               "Action": [
                   "ec2:DescribeNetworkInterfaces",
                   "ec2:CreateNetworkInterface",
                   "ec2:DeleteNetworkInterface",
                   "ec2:CreateNetworkInterfacePermission",
                   "ec2:DeleteNetworkInterfacePermission",
                   "ec2:DescribeNetworkInterfacePermissions",
                   "ec2:ModifyNetworkInterfaceAttribute",
                   "ec2:DescribeNetworkInterfaceAttribute",
                   "ec2:DescribeAvailabilityZones",
                   "ec2:DescribeRegions",
                   "ec2:DescribeVpcs",
                   "ec2:DescribeSubnets",
                   "ec2:DescribeSecurityGroups",
                   "ec2:DescribeNetworkAcls"
               ],
               "Resource": "*"
           },
           {
               "Sid": "SecretsManagerPermissions",
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetSecretValue",
                   "secretsmanager:DescribeSecret"
               ],
               "Resource": [
                   "arn:aws:secretsmanager:us-east-1:{{123456789012}}:secret:{{source_DB_secret-ABC123}}",
                   "arn:aws:secretsmanager:us-east-1:{{123456789012}}:secret:{{destination_DB_secret-456DEF}}"
               ]
           },        {
               "Sid": "KmsPermissions",
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:DescribeKey",
                   "kms:GenerateDataKey"
               ],
               "Resource": "arn:aws:kms:us-east-1:{{123456789012}}:key/{{aa11bb22-####-####-####-fedcba123456}}"
           },
           {
               "Sid": "RdsPermissions",
               "Effect": "Allow",
               "Action": [
                   "rds:DescribeDBClusters",
                   "rds:DescribeDBInstances"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Verifique se há erros e corrija-os.

1. Escolha **Próximo**.

1. Na página **Revisar e criar**, insira um **Nome da política**, como **data\_loading\_policy**, e escolha **Criar política**.