Pourquoi ma fonction de rotation Lambda de Secrets Manager a-t-elle échoué avec l'erreur « Le moteur de base de données doit être réglé sur 'postgres'/'mysql' » ?

Lecture de 3 minute(s)
0

Échec de ma fonction de rotation AWS Lambda pour AWS Secrets Manager affichant l’erreur « Le moteur de base de données doit être réglé sur 'postgres'/'mysql'. »

Brève description

Cette erreur peut se produire si vous utilisez une fonction de rotation AWS Lambda multi-utilisateurs pour les informations d'identification utilisateur.

Remarque : Cette erreur s'applique uniquement à deux types de bases de données pour Amazon Relational Database Service (Amazon RDS), à savoir l'édition compatible avec Amazon Aurora PostgreSQL et l'édition compatible avec Amazon Aurora MySQL.

L'erreur se produit lors de l'étape setSecret de la fonction de rotation Lambda pour les informations d'identification de la base de données Amazon RDS.

Résolution

Modifiez la fonction de rotation Lambda si vous avez apporté modification au code de la fonction, ou créez une nouvelle rotation si vous n'avez apporté aucune modification.

Option 1 : Modifier le code de la fonction de rotation

  1. Ouvrez la console Lambda.

  2. Dans le volet de navigation, choisissez Fonctions, puis choisissez le nom de la fonction Lambda.

  3. Choisissez la liste déroulante Actions, choisissez Fonction d'exportation, puis choisissez Télécharger le package de déploiement.

  4. Extrayez les fichiers du fichier .zip téléchargé.

  5. Dans votre le IDE Visual Studio, ouvrez le fichier lambda_function.py.

  6. Dans la fonction d'assistance get_secret_dict(), remplacez if secret_dict['engine'] != 'mysql': par le code suivant :

    supported_engines = ["mysql", "aurora-mysql"]
    if secret_dict['engine'] not in supported_engines:
  7. Compressez le contenu du dossier .zip avec le fichier à jourlambda_function.py.

  8. Dans la console Lambda, dans l'onglet Code, choisissez la liste déroulante Télécharger depuis, choisissez le fichier .zip, puis choisissez le nouveau dossier .zip de l'étape 7.

Option 2 : Créer une nouvelle fonction de rotation

  1. Ouvrez la console Secrets Manager.
  2. Sur la page Secrets, choisissez votre nom secret.
  3. Sur la page Détails du secret, dans la section Configuration de la rotation, choisissez Modifier la rotation.
  4. Dans la boîte de dialogue Modifier la configuration de rotation, suivez les instructions de l'étape 3e. pour configurer le secret pour la rotation.
  5. Pour Utiliser des informations d'identification distinctes pour la rotation de ce secret, choisissez Oui.
  6. Dans Secrets, choisissez le secret pour les informations d'identification de la base de données principale Amazon RDS ou Amazon Aurora.
  7. Choisissez sur Enregistrer.
  8. (Facultatif) Si la fonction de rotation Lambda précédente est associée à plusieurs secrets, vous pouvez utiliser la nouvelle fonction pour ces secrets.
    Pour chaque secret, ouvrez la page Détails du secret, puis dans la section Configuration de la rotation, choisissez Modifier la rotation. Dans la boîte de dialogue Modifier la configuration de la rotation, pour la Fonction de rotation Lambda, choisissez la nouvelle fonction de rotation, puis choisissez Enregistrer.
  9. Après avoir transmis tous les secrets à la nouvelle fonction de rotation Lambda, supprimez la fonction de rotation Lambda précédente dans la console Lambda.

Informations connexes

Comment créer une fonction de rotation avec un secret AWS Secrets Manager pour une base de données non prise en charge ?

Améliorer la sécurité des informations d'identification de la base de données principale Amazon RDS à l'aide d'AWS Secrets Manager

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 8 mois