

# Configurar a autenticação do IAM para o RDS Proxy
<a name="rds-proxy-iam-setup"></a>

Para configurar a autenticação do AWS Identity and Access Management (IAM) para o RDS Proxy no Amazon RDS, crie e configure uma política do IAM que conceda as permissões necessárias. 

Este tópico apresenta as etapas para configurar a autenticação do IAM para o RDS Proxy, bem como para criar a política do IAM necessária e anexá-la a um perfil do IAM. 

**dica**  
Este procedimento só é necessário se você quiser criar seu próprio perfil do IAM. Caso contrário, o RDS pode criar automaticamente o perfil necessário ao configurar o proxy, para que você possa pular essas etapas.

## Pré-requisitos
<a name="rds-proxy-iam-setup-prereqs"></a>

Antes de configurar a autenticação do IAM para o RDS Proxy, você deve ter o seguinte:
+ **AWS Secrets Manager**: pelo menos um segredo armazenado que contenha as credenciais do banco de dados. Para obter instruções sobre como criar esses segredos, consulte [Configurar credenciais de banco de dados para RDS Proxy](rds-proxy-secrets-arns.md).

  Isso não será necessário se você estiver usando a autenticação de ponta a ponta do IAM.
+ **Permissões do IAM**: um perfil ou usuário do IAM com permissões para criar e gerenciar políticas, perfis e segredos do IAM no AWS Secrets Manager.

## Criar uma política do IAM para a autenticação de ponta a ponta do IAM
<a name="rds-proxy-iam-setup-e2e-steps"></a>

Ao usar a autenticação de ponta a ponta do IAM, o RDS Proxy se conecta ao seu banco de dados usando a autenticação do IAM em vez de recuperar as credenciais do Secrets Manager. Isso requer configurar seu perfil do IAM com permissões `rds-db:connect` para as contas de banco de dados que você deseja usar com o proxy.

Para autenticar o RDS Proxy no banco de dados usando o IAM, crie um perfil do IAM com uma política que conceda as permissões de conexão com o banco de dados.

### Console
<a name="rds-proxy-iam-e2e-console"></a>

**Como criar um perfil para autenticação de ponta a ponta do IAM com seu proxy**

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. Crie uma política de permissões para o perfil. Para ver as etapas gerais, consulte [Criar políticas do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html).

   Cole essa política no editor de JSON e faça as seguintes alterações:
   + Substitua o ID da sua própria conta.
   + Substitua `us-east-2` pela região onde o proxy deverá residir.
   + Substitua os IDs de recursos do banco de dados e os nomes de usuário pelos que você deseja usar. O formato dos IDs de recursos difere entre as instâncias do RDS e Aurora clusters.

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "rds-db:connect",
               "Resource": [
                   "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_1",
                   "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_2"
               ]
           }
       ]
   }
   ```

1. Crie o perfil e anexe a política de permissões a ele. Para ver as etapas gerais, consulte [Criar um perfil para delegar permissões a um serviço da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). 

   Em **Tipo de entidade confiável**, escolha **Serviço da AWS**. Em **Caso de uso**, selecione **RDS** e escolha **RDS - Adicionar perfil ao banco de dados** para o caso de uso.

1. Em **Políticas de permissões**, escolha a política que você criou.

1. Em **Selecionar entidades confiáveis**, insira a seguinte política de confiança para o perfil:

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

### AWS CLI
<a name="rds-proxy-iam-e2e-cli"></a>

Para criar o perfil usando a AWS CLI, envie a seguinte solicitação:

```
aws iam create-role \
  --role-name my_e2e_iam_role_name \

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

Depois, anexe a política ao perfil:

```
aws iam put-role-policy \
  --role-name my_e2e_iam_role_name \
  --policy-name e2e_iam_db_connect_policy \
  --policy-document '{

    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "rds-db:connect",
            "Resource": [
                "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_1",
                "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_2"
            ]
        }
    ]
}'
```

Com as permissões e o perfil do IAM configurados para a autenticação de ponta a ponta do IAM, agora você pode criar um proxy com `DefaultAuthScheme` definido como `IAM_AUTH`. Esse proxy se autentica diretamente no banco de dados usando o IAM sem exigir segredos do Secrets Manager. Para instruções, consulte [Criar um proxy para o Amazon RDS](rds-proxy-creating.md).

Ao usar a autenticação de ponta a ponta do IAM, garanta que os usuários do banco de dados estejam configurados para a autenticação do IAM, conforme descrito em [Criar uma conta de banco de dados usando autenticação do IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md).

## Criar uma política do IAM para acesso ao Secrets Manager
<a name="rds-proxy-iam-setup-steps"></a>

Para permitir que o RDS Proxy recupere as credenciais do banco de dados do Secrets Manager, crie um perfil do IAM com uma política que conceda as permissões necessárias.

## Console
<a name="rds-proxy-iam-console"></a>

**Como criar um perfil para acessar segredos e usá-los com o proxy**

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. Crie uma política de permissões para o perfil. Para ver as etapas gerais, consulte [Criar políticas do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html).

   Cole essa política no editor de JSON e faça as seguintes alterações:
   + Substitua o ID da sua própria conta.
   + Substitua `us-east-2` pela região onde o proxy residirá.
   + Substitua os nomes dos segredos pelos que você criou. Para ter mais informações, consulte [Specifying KMS keys in IAM policy statements](https://docs.aws.amazon.com/kms/latest/developerguide/cmks-in-iam-policies.html).
   + Substitua o ID da chave do KMS pelo que você usou para criptografar os segredos do Secrets Manager, seja a chave padrão ou sua própria chave.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": [
                   "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret_name_1",
                   "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret_name_2"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "kms:Decrypt",
               "Resource": "arn:aws:kms:us-east-2:111122223333:key/key_id",
               "Condition": {
                   "StringEquals": {
                       "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. Crie o perfil e anexe a política de permissões a ele. Para ver as etapas gerais, consulte [Criar um perfil para delegar permissões a um serviço da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). 

   Em **Tipo de entidade confiável**, escolha **Serviço da AWS**. Em **Caso de uso**, selecione **RDS** e escolha **RDS - Adicionar perfil ao banco de dados** para o caso de uso.

1. Em **Políticas de permissões**, escolha a política que você criou.

1. Em **Selecionar entidades confiáveis**, insira a seguinte política de confiança para o perfil:

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

****  

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

------

## AWS CLI
<a name="rds-proxy-iam-cli"></a>

Para criar o perfil usando a AWS CLI, envie a seguinte solicitação:

```
aws iam create-role \
  --role-name my_role_name \
  --assume-role-policy-document '{"Version": "2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":["rds.amazonaws.com"]},"Action":"sts:AssumeRole"}]}'
```

Depois, anexe a política ao perfil:

```
aws iam put-role-policy \
  --role-name my_role_name \
  --policy-name secret_reader_policy \
  --policy-document '{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "secretsmanager:GetSecretValue",
            "Resource": [
                "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_1",
                "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_2"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "kms:Decrypt",
            "Resource": "arn:aws:kms:us-east-2:account_id:key/key_id",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com"
                }
            }
        }
    ]
}'
```

Com o perfil e as permissões do IAM configurados, agora você pode criar um proxy e associá-lo a esse perfil. Isso permite que o proxy recupere seguramente as credenciais do banco de dados por meio do AWS Secrets Manager e habilite a autenticação do IAM para suas aplicações. Para instruções, consulte [Criar um proxy para o Amazon RDS](rds-proxy-creating.md).