

# Criar e usar uma política do IAM para acesso do banco de dados do IAM
<a name="UsingWithRDS.IAMDBAuth.IAMPolicy"></a>

Para permitir que um usuário ou um perfil se conecte à instância de banco de dados, você deve criar uma política do IAM. Depois disso, associe a política a um conjunto de permissões ou a um perfil.

**nota**  
Para saber mais sobre as políticas do IAM, consulte [Gerenciamento de identidade e acesso no Amazon RDS](UsingWithRDS.IAM.md).

O exemplo de política a seguir permite que um usuário se conecte a uma instância de banco de dados usando a autenticação de banco de dados do IAM.

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

****  

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

------

**Importante**  
Um usuário com permissões de administrador pode acessar instâncias de banco de dados sem permissões explícitas em uma política do IAM. Se você quiser restringir o acesso do administrador a instâncias de banco de dados, é possível criar um perfil do IAM com as permissões adequadas e menos privilegiadas e atribuí-lo ao administrador.

**nota**  
Não confunda o prefixo `rds-db:` com outros prefixos de operações da API do RDS que começam com `rds:`. Você usa o prefixo `rds-db:` e a ação `rds-db:connect` somente para a autenticação de banco de dados do IAM. Eles não são válidos em nenhum outro contexto. 

Os exemplos de política incluem uma única instrução com os seguintes elementos:
+ `Effect`: especifica `Allow` para conceder acesso à instância de banco de dados. Se você não permitir explicitamente o acesso, o acesso será negado por padrão.
+ `Action`: especifica `rds-db:connect` para permitir conexões com a instância de banco de dados.
+ `Resource`: especifica um nome do recurso da Amazon (ARN) que descreva uma conta de banco de dados em um instância. de banco de dados. O formato do ARN é o seguinte.

  ```
  arn:aws:rds-db:region:account-id:dbuser:DbiResourceId/db-user-name
  ```

  Neste formato, substitua o seguinte:
  + `region` é a região da AWS para a instância de Bancos de Dados . No exemplo de política, a região da AWS é `us-east-2`.
  + `account-id` é o número da conta da AWS para a instância de Bancos de Dados. No exemplo de política, o número da conta é `1234567890`. O usuário deve estar na mesma conta que a conta da instância de banco de dados.

    Para realizar o acesso entre contas, crie um perfil do IAM com a política mostrada acima na conta da instância de banco de dados e permita que sua outra conta assuma o perfil. 
  + `DbiResourceId` é o identificador da instância de banco de dados. Esse identificador é exclusivo para uma região da AWS e nunca muda. Na exemplo de política, o identificador é `db-ABCDEFGHIJKL01234`.

    Para encontrar um ID de recurso de instância de banco de dados no Console de gerenciamento da AWS do Amazon RDS, escolha a instância de banco de dados para ver os respectivos detalhes. Em seguida, escolha a guia **Configuration (Configuração)**. O **Resource ID (ID de recurso)** é exibido na seção **Configuration (Configuração)**.

    Como alternativa, use o comando da AWS CLI para listar os identificadores e os IDs de recurso de todas as suas instâncias de Bancos de Dados na região atual da AWS, conforme mostrado a seguir.

    ```
    aws rds describe-db-instances --query "DBInstances[*].[DBInstanceIdentifier,DbiResourceId]"
    ```

    Se você estiver usando o Amazon Aurora, especifique um `DbClusterResourceId` em vez de um `DbiResourceId`. Para obter mais informações, consulte [Criar e usar uma política do IAM para acesso do banco de dados do IAM](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.IAMPolicy.html) no *Guia do usuário do Amazon Aurora*.
**nota**  
Se você estiver se conectando a um banco de dados por meio do RDS Proxy, especifique o ID do recurso de proxy, como `prx-ABCDEFGHIJKL01234`. Para obter informações sobre como usar a autenticação de banco de dados do IAM com RDS Proxy, consulte [Conectar-se a um banco de dados usando autenticação do IAM](rds-proxy-connecting.md#rds-proxy-connecting-iam).
  + `db-user-name` é o nome da conta de banco de dados para associar à autenticação do IAM. No exemplo de política, a conta de banco de dados é `db_user`.

Você pode criar outros ARNs que sejam compatíveis com vários padrões de acesso. A política a seguir permite o acesso a duas contas de banco de dados diferentes em uma instância de banco de dados.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
             "rds-db:connect"
         ],
         "Resource": [
             "arn:aws:rds-db:us-east-2:123456789012:dbuser:db-ABCDEFGHIJKL01234/jane_doe",
             "arn:aws:rds-db:us-east-2:123456789012:dbuser:db-ABCDEFGHIJKL01234/mary_roe"
         ]
      }
   ]
}
```

------

A política a seguir usa o caractere "\$1" para comparar todas as instâncias de Bancos de Dados e todas as contas de banco de dados para uma conta daAWS e uma região específicas da AWS. 

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

****  

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

------

A política a seguir compara todas as instâncias de Bancos de Dados de uma conta da AWS e uma região da AWS específicas. Contudo, a política concede acesso somente às instâncias de banco de dados que têm uma conta de banco de dados `jane_doe`.

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

****  

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

------

O usuário ou perfil tem acesso apenas aos bancos de dados que o usuário do banco de dados tem. Por exemplo, suponha que sua instância de banco de dados tenha um banco de dados chamado *dev* e outro chamado *test*. Se a usuária do banco de dados `jane_doe` tiver acesso apenas a *dev*, os usuários ou perfis que acessarem essa instância de banco de dados com a usuária `jane_doe` também terão acesso apenas a *dev*. Essa restrição de acesso também é válida para outros objetos de banco de dados, como tabelas, visualizações e assim por diante.

Um administrador deve criar políticas do IAM que concedam às entidades permissões para executar operações de API específicas nos recursos especificados de que precisam. Depois, o administrador deve anexar essas políticas aos conjuntos de permissões e perfis que exigem essas permissões. Para obter exemplos de políticas, consulte [Exemplos de políticas baseadas em identidade do Amazon RDS](security_iam_id-based-policy-examples.md).

## Anexar uma política do IAM a um conjunto de permissões ou perfil
<a name="UsingWithRDS.IAMDBAuth.IAMPolicy.Attaching"></a>

Depois de criar uma política do IAM para permitir a autenticação de banco de dados, você precisa anexar a política a um conjunto de permissões ou a um perfil. Para obter um tutorial sobre esse tópico, consulte [ Criar e anexar sua primeira política gerenciada pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_managed-policies.html) no *Guia do usuário do IAM*.

À medida que avança pelo tutorial, você pode usar um dos exemplos de política mostrados nessa seção como um ponto de partida e adequá-lo às suas necessidades. No fim do tutorial, você terá um conjunto de permissões com uma política anexada que pode usar a ação `rds-db:connect`.

**nota**  
Você pode mapear vários conjuntos de permissões ou perfis para a mesma conta de usuário do banco de dados. Por exemplo, suponha que a sua política do IAM especificou o seguinte recurso do ARN.  

```
arn:aws:rds-db:us-east-2:123456789012:dbuser:db-12ABC34DEFG5HIJ6KLMNOP78QR/jane_doe
```
Se você anexar a política a *Jane*, *Bob* e *Diego*, todos eles poderão se conectar à instância de banco de dados em questão usando a conta de banco de dados `jane_doe`.