Criar e usar uma política do IAM para acesso do banco de dados do IAM - Amazon Relational Database Service

Criar e usar uma política do IAM para acesso do banco de dados do IAM

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.

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.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:us-east-2:1234567890: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 AWS Management Console 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 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 proxy usando autenticação do 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.

{ "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 "*" 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.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:us-east-2:1234567890: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.

{ "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.

Anexar uma política do IAM a um conjunto de permissões ou perfil

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 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.