

# Usar perfis de banco de dados e autenticação do IAM
<a name="using-database-and-iam-roles"></a>

O Aurora DSQL permite autenticação usando perfis do IAM e usuários do IAM. Você pode usar qualquer um dos métodos para autenticar e acessar bancos de dados do Aurora DSQL.

## Perfis do IAM
<a name="dsql-iam-roles"></a>

Um perfil do IAM é uma identidade dentro da sua Conta da AWS que tem permissões específicas, mas não está associada a uma pessoa específica. Ao usar perfis do IAM, você tem acesso a credenciais de segurança temporárias. Você pode assumir temporariamente um perfil do IAM de várias maneiras:
+ Trocando de perfil no Console de gerenciamento da AWS.
+ Chamando uma operação da AWS CLI ou da API da AWS.
+ Usando um URL personalizado.

Depois de assumir um perfil, você pode acessar o Aurora DSQL usando as respectivas credenciais temporárias. Para ter mais informações sobre métodos para o uso de perfis, consulte [Identidades do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) no *Guia do usuário do IAM*.

## Usuários do IAM
<a name="dsql-iam-users"></a>

Um usuário do IAM é uma identidade dentro da sua Conta da AWS que tem permissões específicas e está associada a uma única pessoa ou aplicação. Os usuários do IAM têm credenciais de longo prazo, como senhas e chaves de acesso, que podem ser usadas para acessar o Aurora DSQL. 

**nota**  
Para executar comandos SQL com a autenticação do IAM, você pode usar ARNs de perfil do IAM ou ARNs de usuário do IAM nos exemplos abaixo.

## Autorizar perfis de banco de dados a se conectarem ao cluster
<a name="using-database-and-iam-roles-custom-database-roles"></a>

Crie um perfil do IAM e conceda autorização de conexão com a seguinte ação de política do IAM: `dsql:DbConnect`.

A política do IAM também deve conceder permissão de acesso aos recursos do cluster. Use um curinga (`*`) ou siga as instruções em [Usar chaves de condição do IAM com o Amazon Aurora DSQL](using-iam-condition-keys.md#using-iam-condition-keys-create-cluster).

## Autorizar perfis de banco de dados a usar SQL no banco de dados
<a name="using-database-and-iam-roles-custom-database-roles-sql"></a>

Você deve usar um perfil do IAM com autorização para se conectar ao seu cluster.

1. Conecte-se ao seu cluster do Aurora DSQL usando um utilitário do SQL.

   Use um perfil de banco de dados `admin` com uma identidade do IAM autorizada para a ação `dsql:DbConnectAdmin` do IAM para se conectar ao cluster. 

1. Crie um perfil de banco de dados, certificando-se de especificar a opção `WITH LOGIN`.

   ```
   CREATE ROLE example WITH LOGIN;
   ```

1. Associe o perfil de banco de dados ao ARN do perfil do IAM.

   ```
   AWS IAM GRANT example TO 'arn:aws:iam::{{012345678912}}:role/{{example}}'; 
   ```

1. Conceder permissões em nível de banco de dados ao perfil de banco de dados

   Os exemplos a seguir usam o comando `GRANT` para fornecer autorização no banco de dados.

   ```
   GRANT USAGE ON SCHEMA myschema TO example;
   GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA myschema TO example;
   ```

Para ter mais informações, consulte [PostgreSQL `GRANT`](https://www.postgresql.org/docs/current/sql-grant.html) e os [PostgreSQL Privileges](https://www.postgresql.org/docs/current/ddl-priv.html) na documentação do PostgreSQL. 

## Visualizando mapeamentos de perfis do IAM para o banco de dados
<a name="using-database-and-iam-roles-view-mappings"></a>

Para visualizar os mapeamentos entre as perfis do IAM e as funções do banco de dados, consulte a tabela do sistema `sys.iam_pg_role_mappings`.

```
SELECT * FROM sys.iam_pg_role_mappings;
```

Resultado do exemplo:

```
 iam_oid |                  arn                   | pg_role_oid | pg_role_name | grantor_pg_role_oid | grantor_pg_role_name
---------+----------------------------------------+-------------+--------------+---------------------+----------------------
   {{26398}} | arn:aws:iam::{{012345678912}}:role/{{example}} |       {{26396}} | {{example}}      |               {{15579}} | admin
(1 row)
```

Esta tabela mostra todos os mapeamentos entre os perfis do IAM (identificados pelo ARN) e as funções do banco de dados PostgreSQL.

## Revogar a autorização do banco de dados de um perfil do IAM
<a name="using-database-and-iam-roles-revoke"></a>

Para revogar a autorização do banco de dados, use a operação `AWS IAM REVOKE`.

```
AWS IAM REVOKE example FROM 'arn:aws:iam::{{012345678912}}:role/{{example}}';
```

Para saber mais sobre como revogar a autorização, consulte [Revogar a autorização usando o IAM e o PostgreSQL](authentication-authorization.md#authentication-authorization-revoke).