Autenticación de bases de datos de IAM - Amazon Aurora

Autenticación de bases de datos de IAM

Puede autenticar en su clúster de bases de datos mediante la autenticación de base de datos de AWS Identity and Access Management (IAM). La autenticación de base de datos de IAM funciona con Aurora MySQL y Aurora PostgreSQL. Con este método de autenticación, no es necesario usar una contraseña al conectarse a un clúster de bases de datos. En su lugar, puede usar un token de autenticación.

Un token de autenticación es una cadena única de caracteres que genera Amazon Aurora bajo demanda. Los tokens de autenticación se generan mediante AWS Signature versión 4. Cada token tiene una vida útil de 15 minutos. No es necesario almacenar credenciales de usuario en la base de datos, ya que la autenticación se administra de forma externa mediante IAM. También puede seguir utilizando la autenticación de base de datos estándar. El token solo se utiliza para la autenticación y no afecta a la sesión después de establecerse.

La autenticación de bases de datos de IAM proporciona los siguientes beneficios:

  • El tráfico de red hacia y desde la base de datos se cifra mediante Secure Socket Layer (SSL) o Transport Layer Security (TLS). Para obtener más información sobre el uso de SSL/TLS con Amazon Aurora, consulte Uso de SSL/TLS para cifrar una conexión a un clúster de base de datos.

  • Puede usar IAM para administrar de forma centralizada el acceso a sus recursos de base de datos, en lugar de administrar el acceso individualmente en cada clúster de bases de datos.

  • Para las aplicaciones que se ejecutan en Amazon EC2, puede usar las credenciales del perfil específicas de la instancia de EC2 para obtener acceso a su base de datos en lugar de una contraseña, para mayor seguridad.

En general, considere la posibilidad de utilizar la autenticación de base de datos de IAM cuando sus aplicaciones creen menos de 200 conexiones por segundo y no desee administrar los nombres de usuario y las contraseñas directamente en el código de la aplicación.

El controlador JDBC de Amazon Web Services (AWS) admite la autenticación de base de datos de IAM. Para obtener más información, consulte AWS IAM Authentication Plugin en el repositorio GitHub del controlador JDBC de Amazon Web Services (AWS).

El controlador de Python de Amazon Web Services (AWS) admite la autenticación de base de datos de IAM. Para obtener más información, consulte AWS IAM Authentication Plugin en el repositorio GitHub del controlador de Python de Amazon Web Services (AWS).

Disponibilidad en regiones y versiones

La disponibilidad de las características varía según las versiones específicas de cada motor de base de datos de Aurora y entre Regiones de AWS. Para obtener más información sobre la disponibilidad en las versiones y las regiones de la autenticación de base de datos de IAM y Aurora, consulte Regiones y motores de base de datos Aurora admitidos para autenticación de bases de datos IAM.

Respecto de Aurora MySQL, todas las clases de instancia de base de datos admitidas son compatibles con la autenticación de bases de datos de IAM, excepto db.t2.small y db.t3.small. Para obtener más información sobre las clases de instancias de bases de datos admitidas, consulte Motores de base de datos compatibles para clases de instancia de base de datos.

Soporte de CLI y SDK

La autenticación de bases de datos de IAM está disponible para la AWS CLI y para los siguientes SDK de AWS específicos de idioma:

Restricciones a la autenticación de bases de datos de IAM

Si utiliza la autenticación de base de datos de IAM, se aplicarán las siguientes limitaciones:

  • La autenticación de bases de datos de IAM limita las conexiones en los siguientes escenarios:

    • Se superan las 20 conexiones por segundo mediante tokens de autenticación, cada uno firmado por una identidad de IAM diferente.

    • Se superan las 200 conexiones por segundo mediante tokens de autenticación diferentes.

    Las conexiones que utilizan el mismo token de autenticación no se limitan. Se recomienda reutilizar los tokens de autenticación siempre que sea posible.

  • Actualmente, la autenticación de base de datos de IAM no admite todas las claves de contexto de condición global.

    Para obtener más información sobre las claves de condición globales, consulte Claves de contexto de condición globales de AWS en la Guía del usuario de IAM.

  • Para PostgreSQL, si se agrega el rol de IAM (rds_iam) a un usuario (incluido el usuario maestro de RDS), la autenticación de IAM tiene prioridad sobre la autenticación de la contraseña, por lo que el usuario debe iniciar sesión como un usuario de IAM.

  • En el caso de Aurora PostgreSQL, no puede utilizar la autenticación de IAM para establecer una conexión de replicación.

  • No puede utilizar un registro DNS personalizado de Route 53 en lugar del punto de conexión del clúster de base de datos para generar el token de autenticación.

  • CloudWatch y CloudTrail no registran la autenticación de IAM. Estos servicios no rastrean las llamadas a la API generate-db-auth-token que autorizan a la función de IAM a habilitar la conexión a la base de datos.

Recomendaciones para la autenticación de base de datos de IAM

Recomendamos lo siguiente cuando se utiliza la autenticación de base de datos de IAM:

  • Utilice la autenticación de base de datos de IAM cuando la aplicación necesite menos de 200 conexiones nuevas por segundo para la autenticación de bases de datos de IAM.

    Los motores de base de datos que funcionan con Amazon Aurora no imponen ninguna restricción a los intentos de autenticación por segundo. Sin embargo, al usar la autenticación de bases de datos de IAM, su aplicación debe generar un token de autenticación. A continuación, su aplicación usa ese token para conectarse a el clúster de bases de datos. Si supera el límite máximo de nuevas conexiones por segundo, la sobrecarga adicional de la autenticación de bases de datos de IAM puede dar lugar a la limitación controlada de las conexiones.

    Considere la posibilidad de utilizar la agrupación de conexiones en sus aplicaciones para mitigar la creación constante de conexiones. Esto puede reducir la sobrecarga de la autenticación de bases de datos de IAM y permitir que las aplicaciones reutilicen las conexiones existentes. De forma alternativa, también puede utilizar RDS Proxy para estos casos de uso. RDS Proxy tiene costos adicionales. Consulte los precios de RDS Proxy.

  • El tamaño de un token de autenticación de base de datos de IAM depende de muchos factores, como la cantidad de etiquetas de IAM, las políticas de servicio de IAM, las longitudes del ARN y otras propiedades de IAM y de la base de datos. El tamaño mínimo de este token suele ser de aproximadamente 1 KB, pero puede ser mayor. Dado que este token se utiliza como contraseña en la cadena de conexión a la base de datos mediante la autenticación de IAM, debe asegurarse de que ni el controlador de la base de datos (por ejemplo, ODBC) ni ninguna herramienta limiten ni trunquen de otro modo este token debido a su tamaño. Un token truncado provocará un error en la validación de autenticación que realiza la base de datos e IAM.

  • Si utiliza credenciales temporales al crear un token de autenticación de base de datos de IAM, las credenciales temporales deben seguir siendo válidas cuando utilice el token de autenticación de base de datos de IAM para realizar una solicitud de conexión.

Claves de contexto de condición globales de AWS admitidas

La autenticación de base de datos de IAM no admite el siguiente subconjunto de claves de contexto de condición globales de AWS.

  • aws:Referer

  • aws:SourceIp

  • aws:SourceVpc

  • aws:SourceVpce

  • aws:UserAgent

  • aws:VpcSourceIp

Para obtener más información, consulte Claves de contexto de condición globales de AWS en la Guía del usuario de IAM.