Creación y uso de una política de IAM para el acceso a bases de datos de IAM
Para permitir a un usuario o rol conectarse a su instancia de base de datos, debe crear una política de IAM. Después de eso, puede asociar la política a un conjunto de permisos o un rol.
nota
Para obtener más información acerca de las políticas de IAM, consulte Administración de la identidad y el acceso en Amazon RDS.
La siguiente política de ejemplo permite a un usuario conectarse a una instancia de base de datos mediante la autenticación de bases de datos de 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
Un usuario con permisos de administrador puede acceder a las instancias de base de datos sin permiso explícito en una política de IAM. Si desea restringir el acceso del administrador a los de instancias de base de datos, puede crear un rol de IAM con los permisos privilegiados menores y asignarlo al administrador.
nota
No confunda el prefijo rds-db:
con otros prefijos de operación de la API de RDS que empiezan por rds:
. Puede usar el prefijo rds-db:
y la acción rds-db:connect
solo para la autenticación de bases de datos de IAM. No son válidos en ningún otro contexto.
La política de ejemplo incluye una sola instrucción con los siguientes elementos:
-
Effect
: especifiqueAllow
para conceder acceso a la instancia. Si no permite el acceso de forma explícita, el acceso se deniega de forma predeterminada. -
Action
: especifiquerds-db:connect
para permitir las conexiones a la instancia. -
Resource
: especifique un nombre de recurso de Amazon (ARN) que describa una cuenta de base de datos en una instancia. El formato del ARN es el siguiente.arn:aws:rds-db:
region
:account-id
:dbuser:DbiResourceId
/db-user-name
En este formato, reemplace lo siguiente:
-
es la región de AWS para la instancia y . En la política de ejemplo, la región de AWS esregion
us-east-2
. -
es el número de cuenta de AWS para la instancia y . En la política de ejemplo, el número de cuenta esaccount-id
1234567890
. El usuario debe estar en la misma cuenta que la cuenta de la instancia de base de datos.Para realizar el acceso entre cuentas, cree un rol de IAM con la política que se muestra arriba en la cuenta para la instancia de base de datos y permita que su otra cuenta asuma el rol.
-
es el identificador de la instancia. Este identificador es único para una región de AWS y nunca cambia. En la política de ejemplo, el identificador esDbiResourceId
db-ABCDEFGHIJKL01234
.Para buscar un ID de recurso de instancia en la AWS Management Console de Amazon RDS, elija la instancia para ver los detalles. A continuación, elija la pestaña Configuration (Configuración). El Resource ID (ID de recurso) se muestra en la sección Configuration (Configuración).
También puede usar el comando de la AWS CLI para enumerar los identificadores e ID de recurso para todas sus instancias y de base de datos en la región de AWS actual, como se muestra a continuación.
aws rds describe-db-instances --query "DBInstances[*].[DBInstanceIdentifier,DbiResourceId]"
Si utiliza Amazon Aurora, especifique un
DbClusterResourceId
en lugar de unDbiResourceId
. Para obtener más información, consulte Creación y uso de una política de IAM para el acceso a bases de datos de IAM en la Guía del usuario de Amazon Aurora.nota
Si se está conectando a una base de datos a través del proxy de RDS, especifique el ID del recurso proxy; por ejemplo,
prx-ABCDEFGHIJKL01234
. Para obtener información sobre el uso de la autenticación de bases de datos de IAM con el proxy de RDS, consulte Conexión a un proxy mediante autenticación de IAM. -
es el nombre de la cuenta de base de datos que se asociará a la autenticación de IAM. En la política de ejemplo, la cuenta de base de datos esdb-user-name
db_user
.
-
Puede crear otros ARN que admitan diversos patrones de acceso. La siguiente política permite el acceso a dos cuentas de base de datos diferentes en una instancia de base de datos.
{ "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" ] } ] }
La siguiente política usa el carácter "*" a fin de buscar coincidencias con todas las instancias y de base de datos y cuentas de base de datos para una cuenta de AWS y una región de AWS determinadas.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:us-east-2:1234567890:dbuser:*/*" ] } ] }
La siguiente política busca coincidencias con todas las instancias y de base de datos para una cuenta de AWS y una región de AWS determinadas. Sin embargo, la política solo concede acceso a instancias de base de datos que tienen una cuenta de base de datos 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" ] } ] }
El usuario o el rol solo tiene acceso a las mismas bases de datos que el usuario de la base de datos. Por ejemplo, suponga que su instancia tiene una base de datos denominada dev y otra llamada test. Si el usuario de base de datos jane_doe
solo tiene acceso a dev, cualquier usuario o rol que obtenga acceso a esa instancia de base de datos con el usuario jane_doe
también tendrá acceso únicamente a dev. Esta restricción del acceso también se aplica a otros objetos de la base de datos tales como tablas, vistas, etc.
Un administrador debe crear políticas de IAM que concedan permisos a las entidades para realizar operaciones de la API concretas en los recursos especificados que necesiten. El administrador debe asociar esas políticas a los conjuntos de permisos o roles que necesiten esos permisos. Para ver algunos ejemplos de políticas, consulte Ejemplos de políticas basadas en identidad para Amazon RDS.
Asociación de una política de IAM a un conjunto de permisos o un rol
Tras crear una política de IAM que permita la autenticación de bases de datos, es necesario asociar la política a un conjunto de permisos o un rol. Para ver un tutorial acerca de este tema, consulte Crear y asociar su primera política administrada por el cliente en la Guía del usuario de IAM.
Mientras realiza el tutorial, puede usar uno de los ejemplos de política mostrados en esta sección como punto de partida y adaptarlo a sus necesidades. Al final del tutorial, tiene un conjunto de permisos con una política asociada que puede utilizar la acción rds-db:connect
.
nota
Puede asignar varios conjuntos de permisos o roles a la misma cuenta de usuario de base de datos. Por ejemplo, suponga que su política de IAM ha especificado el siguiente ARN del recurso.
arn:aws:rds-db:us-east-2:123456789012:dbuser:db-12ABC34DEFG5HIJ6KLMNOP78QR/jane_doe
Si adjunta la política a los usuarios Jane, Bob y Diego, cada uno de esos usuarios puede conectarse a la instancia de base de datos especificado por medio de la cuenta de la base de datos de jane_doe
.