Autenticación de bases de datos de IAM para MariaDB, MySQL, and PostgreSQL - Amazon Relational Database Service

Autenticación de bases de datos de IAM para MariaDB, MySQL, and PostgreSQL

Puede autenticar en su instancia 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 MariaDB, MySQL y PostgreSQL. Con este método de autenticación, no es necesario usar una contraseña al conectarse a una instancia. En su lugar, puede usar un token de autenticación.

Un token de autenticación es una cadena única de caracteres que genera Amazon RDS 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 RDS, consulte Uso de SSL/TLS para cifrar una conexión a una instancia o 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 instancia.

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

AWS JDBC Driver for MySQL admite la autenticación de base de datos de IAM. Para obtener más información, consulte Autenticación de base de IAM de AWS en el repositorio de GitHub de AWS JDBC Driver for MySQL.

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 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 Amazon RDS, consulte Autenticación de bases de datos de IAM.

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:

  • El número máximo de conexiones por segundo de la instancia puede limitarse en función de la clase de la instancia de base de datos y de la carga de trabajo. La autenticación de IAM puede fallar en caso de que se agoten los recursos durante los picos de carga de la base de datos.

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

  • Para PostgreSQL, Amazon RDS no admite habilitar los métodos de autenticación de IAM y Kerberos al mismo tiempo.

  • En el caso de 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 de la instancia de base de datos para generar el token de autenticación.

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 RDS 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 la instancia. 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.