Uso de la autenticación de IAM para el punto final de Amazon RDS en AWS DMS - AWS Database Migration Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de la autenticación de IAM para el punto final de Amazon RDS en AWS DMS

AWS La autenticación de bases de datos Identity and Access Management (IAM) proporciona una seguridad mejorada para sus bases de datos de Amazon RDS al administrar el acceso a las bases de datos mediante credenciales de IAM. AWS En lugar de utilizar las contraseñas de bases de datos tradicionales, la autenticación de IAM genera tokens de autenticación de corta duración, válidos durante 15 minutos, con credenciales. AWS Este enfoque mejora considerablemente la seguridad al eliminar la necesidad de almacenar las contraseñas de las bases de datos en el código de la aplicación, reducir el riesgo de exposición de las credenciales y proporcionar una gestión de acceso centralizada mediante la IAM. También simplifica la administración del acceso al aprovechar las funciones y políticas de AWS IAM existentes, lo que le permite controlar el acceso a las bases de datos mediante el mismo marco de IAM que utiliza para otros servicios. AWS

AWS DMS ahora admite la autenticación de IAM para instancias de replicación que ejecutan la versión 3.6.1 o posterior de DMS cuando se conectan a puntos de conexión MySQL, PostgreSQL, Aurora PostgreSQL, Aurora MySQL o MariaDB en Amazon RDS. Al crear un nuevo punto final para estos motores, puede seleccionar la autenticación de IAM y especificar una función de IAM en lugar de proporcionar las credenciales de la base de datos. Esta integración mejora la seguridad al eliminar la necesidad de administrar y almacenar las contraseñas de las bases de datos para las tareas de migración.

Configuración de la autenticación de IAM para el punto final de Amazon RDS en AWS DMS

Al crear un punto de conexión, puede configurar la autenticación de IAM para su base de datos de Amazon RDS. Para configurar la autenticación de IAM, haga lo siguiente:

AWS CLI

  1. Asegúrese de que Amazon RDS y el usuario de la base de datos tengan habilitada la autenticación de IAM. Para obtener más información, consulte Habilitar y deshabilitar la autenticación de bases de datos de IAM en la guía del usuario de Amazon Relational Database Service.

  2. Navegue hasta la AWS CLI, cree una función de IAM y permita que DMS la asuma:

    Política:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:<region>:<account-id>:dbuser:<db-identifier>/<username>" ] } ] }

    Política de confianza:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "dms.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  3. Ejecute el siguiente comando para importar el certificado y descargar el archivo PEM. Para obtener más información, consulte Descargar paquetes de certificados para Amazon RDS en la guía del usuario de Amazon Relational Database Service.

    aws dms import-certificate --certificate-identifier rdsglobal --certificate-pem file://~/global-bundle.pem
  4. Ejecute los siguientes comandos para crear un punto final de IAM:

    • Para los puntos finales de PostgreSQL/Aurora PostgreSQL (sslmodecuando está establecido en--certificate-arn, no es required necesario marcar):

      aws dms create-endpoint --endpoint-identifier <endpoint-name> --endpoint-type <source/target> --engine-name <postgres/aurora-postgres> --username <db username with iam auth privileges> --server-name <db server name> --port <port number> --ssl-mode <required/verify-ca/verify-full> --postgre-sql-settings "{\"ServiceAccessRoleArn\": \"role arn created from step 2 providing permissions for iam authentication\", \"AuthenticationMethod\": \"iam\", \"DatabaseName\": \"database name\"}" --certificate-arn <if sslmode is verify-ca/verify full use cert arn generated in step 3, otherwise this parameter is not required>
    • Para terminales MySQL, MariaDB o Aurora MySQL:

      aws dms create-endpoint --endpoint-identifier <endpoint-name> --endpoint-type <source/target> --engine-name <mysql/mariadb/aurora> --username <db username with iam auth privileges> --server-name <db server name> --port <port number> --ssl-mode <verify-ca/verify-full> --my-sql-settings "{\"ServiceAccessRoleArn\": \"role arn created from step 2 providing permissions for iam authentication\", \"AuthenticationMethod\": \"iam\", \"DatabaseName\": \"database name\"}" --certificate-arn <cert arn from previously imported cert in step 3>
  5. Ejecute una conexión de prueba con la instancia de replicación que desee para crear la asociación de puntos finales de la instancia y comprobar que todo está configurado correctamente:

    aws dms test-connection --replication-instance-arn <replication instance arn> --endpoint-arn <endpoint arn from previously created endpoint in step 4>
    nota

    Al utilizar la autenticación de IAM, la instancia de replicación proporcionada en test-connection debe estar en la AWS DMS versión 3.6.1 o posterior.

Limitaciones

AWS DMS presenta las siguientes limitaciones al utilizar la autenticación de IAM con el punto de conexión de Amazon RDS:

  • Actualmente, las instancias PostgreSQL de Amazon RDS y PostgreSQL de Amazon Aurora no admiten conexiones CDC con autenticación de IAM. Para obtener más información, consulte Limitaciones de la autenticación de bases de datos de IAM en la Guía del usuario de Amazon Relational Database Service.