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