¿Por qué falló mi función de rotación Lambda de Secrets Manager con el error «El motor de base de datos debe configurarse en 'postgres'/'mysql'»?

3 minutos de lectura
0

Mi función de rotación de AWS Lambda falló para AWS Secrets Manager con el error «El motor de base de datos debe configurarse en 'postgres'/'mysql'».

Descripción breve

Es posible que reciba este error si utiliza una función de rotación de AWS Lambda multiusuario para las credenciales de usuario.

Nota: Este error solo se aplica a dos tipos de bases de datos de Amazon Relational Database Service (Amazon RDS), que son Amazon Aurora PostgreSQL y Amazon Aurora MySQL Compatible Edition.

El error se produce en el paso setSecret de la función de rotación de Lambda para las credenciales de la base de datos de Amazon RDS.

Resolución

Edite la función de rotación Lambda si ha realizado cambios en el código de la función, o cree una nueva rotación si no ha realizado cambios.

Opción 1: Editar el código de la función de rotación

  1. Abra la consola de Lambda.

  2. En el panel de navegación, elija Funciones y, a continuación, elija el nombre de la función Lambda.

  3. Elija la lista desplegable Acciones, elija la función Exportar y, a continuación, elija Descargar el paquete de despliegue.

  4. Extraiga los archivos del archivo .zip descargado.

  5. En el IDE de Visual Studio Code, abra el archivo lambda\ _function.py.

  6. En la función auxiliar get\ _secret\ _dict(), reemplace if secret\ _dict\ ['engine']! = 'mysql': por el siguiente código:

    supported_engines = ["mysql", "aurora-mysql"]
    if secret_dict['engine'] not in supported_engines:
  7. Comprima el contenido de la carpeta .zip con el archivo lambda\ _function.py actualizado.

  8. En la consola de Lambda, en la pestaña Código, seleccione cargar de la lista desplegable, elija un archivo.zip y, a continuación, elija la nueva carpeta .zip en el paso 7.

Opción 2: Crear una nueva función de rotación

  1. Abra la consola de Secrets Manager.
  2. En la página Secretos, elija su nombre secreto.
  3. En la página de Detalles secretos, en la sección Configuración de rotación, seleccione Editar rotación.
  4. En el cuadro de diálogo Editar configuración de rotación, siga las instrucciones del paso 3e. para configurar el secreto de rotación.
  5. En Usar credenciales independientes para rotar este secreto, seleccione .
  6. En ** Secretos**, elija el secreto de las credenciales de la base de datos principal de Amazon RDS o Amazon Aurora.
  7. Elija Guardar.
  8. (Opcional) Si la función de rotación Lambda anterior está asociada a varios secretos, puede usar la nueva función para esos secretos.
    Para cada secreto, abra la página de Detalles del secreto y, a continuación, en la sección Configuración de rotación, seleccione Editar rotación. En el cuadro de diálogo Editar configuración de rotación, para la función de rotación Lambda, elija la nueva función de rotación y, a continuación, elija Guardar.
  9. Después de cambiar todos los secretos a la nueva función de rotación de Lambda, en la consola de Lambda, elimine la función de rotación Lambda anterior.

Información relacionada

¿Cómo creo una función de rotación con un secreto de AWS Secrets Manager para una base de datos no compatible?

Mejore la seguridad de las credenciales de la base de datos principal de Amazon RDS con AWS Secrets Manager

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 8 meses