Creación y uso de una política de IAM para el acceso a bases de datos de IAM - Amazon Aurora

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 clúster 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 Aurora.

La siguiente política de ejemplo permite a un usuario conectarse a un clúster 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:cluster-ABCDEFGHIJKL01234/db_user" ] } ] }
importante

Un usuario con permisos de administrador puede acceder a los clústeres de base de datos sin permiso explícito en una política de IAM. Si desea restringir el acceso del administrador a los clústeres de 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: especifique Allow para conceder acceso al clúster de bases de datos. Si no permite el acceso de forma explícita, el acceso se deniega de forma predeterminada.

  • Action: especifique rds-db:connect para permitir las conexiones al clúster de bases de datos.

  • Resource: especifique un nombre de recurso de Amazon (ARN) que describa una cuenta de base de datos en un clúster de bases de datos. El formato del ARN es el siguiente.

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

    En este formato, reemplace lo siguiente:

    • region es la región de AWS para la y clúster de bases de datos. En la política de ejemplo, la región de AWS es us-east-2.

    • account-id es el número de cuenta de AWS para la y clúster de bases de datos. En la política de ejemplo, el número de cuenta es 1234567890. El usuario debe estar en la misma cuenta que la cuenta de el clúster 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 el clúster de base de datos y permita que su otra cuenta asuma el rol.

    • DbClusterResourceId es el identificador del clúster de bases de datos. Este identificador es único para una región de AWS y nunca cambia. En la política de ejemplo, el identificador es cluster-ABCDEFGHIJKL01234.

      Para buscar un ID de recurso de clúster de bases de datos en la AWS Management Console de Amazon Aurora, elija el clúster de bases de datos 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 y clústeres de base de datos en la región de AWS actual, como se muestra a continuación.

      aws rds describe-db-clusters --query "DBClusters[*].[DBClusterIdentifier,DbClusterResourceId]"
      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.

    • db-user-name 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 es 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 un cluster 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:cluster-ABCDEFGHIJKL01234/jane_doe", "arn:aws:rds-db:us-east-2:123456789012:dbuser:cluster-ABCDEFGHIJKL01234/mary_roe" ] } ] }

La siguiente política usa el carácter "*" a fin de buscar coincidencias con todas las y clústeres 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 y clústeres 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 clústeres 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 clúster de bases de datos 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 ese clúster 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 Aurora.

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:cluster-12ABC34DEFG5HIJ6KLMNOP78QR/jane_doe

Si adjunta la política a los usuarios Jane, Bob y Diego, cada uno de esos usuarios puede conectarse al clúster de base de datos especificado por medio de la cuenta de la base de datos de jane_doe.