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
: especificaAllow
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
: especificards-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:
-
é a região da AWS para a instância de Bancos de Dados . No exemplo de política, a região da AWS éregion
us-east-2
. -
é 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 éaccount-id
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.
-
é 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 éDbiResourceId
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 umDbiResourceId
. 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. -
é 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-name
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
.