Warum ist meine Secrets Manager Lambda-Rotationsfunktion mit dem Fehler „Database engine must be set to 'postgres'/'mysql“ fehlgeschlagen?

Lesedauer: 3 Minute
0

Meine AWS-Lambda-Rotationsfunktion ist für AWS Secrets Manager mit dem Fehler „Database engine must be set to 'postgres'/'mysql“ fehlgeschlagen.

Kurzbeschreibung

Dieser Fehler wird möglicherweise angezeigt, wenn Sie eine AWS-Lambda-Rotationsfunktion für mehrere Benutzer für Benutzeranmeldeinformationen verwenden.

**Hinweis:**Dieser Fehler betrifft nur zwei Datenbanktypen für Amazon Relationaler Datenbankdienst (Relational Database Service) (Amazon RDS), nämlich die Amazon Aurora PostgreSQL-Compatible Edition und die Amazon Aurora MySQL-Compatible Edition.

Der Fehler tritt im setSecret-Schritt der Lambda-Rotationsfunktion für die Amazon RDS-Datenbankanmeldeinformationen auf.

Behebung

Bearbeiten Sie die Lambda-Rotationsfunktion, wenn Sie Änderungen am Funktionscode vorgenommen haben, oder erstellen Sie eine neue Rotation, wenn Sie keine Änderungen vorgenommen haben.

Option 1: Bearbeiten Sie den Rotationsfunktionscode

  1. Öffnen Sie die Lambda-Konsole.

  2. Wählen Sie im Navigationsbereich Funktionen und anschließend den Namen der Lambda-Funktion aus.

  3. Wählen Sie die Aktionen-Dropdownliste aus, wählen Sie Export-Funktion und anschließend Herunterladen Bereitstellungspaket aus.

  4. Extrahieren Sie die Dateien aus der heruntergeladenen .zip-Datei.

  5. Öffnen Sie in Ihrer Visual Studio Code-IDE die Datei lambda_function.py.

  6. Ersetzen Sie in der Hilfsfunktion get_secret_dict () if secret_dict\ ['engine'] ! = 'mysql': mit dem folgenden Code:

    supported_engines = ["mysql", "aurora-mysql"]
    if secret_dict['engine'] not in supported_engines:
  7. Komprimieren Sie den Inhalt des .zip-Ordners mit der aktualisierten Dateilambda_function.py.

  8. Wählen Sie in der Lambda-Konsole auf der Registerkarte Code die Dropdownliste Hochladen von, wählen Sie .zip-Datei aus und wählen Sie dann den neuen .zip-Ordner aus Schritt 7.

Option 2: Erstellen Sie eine neue Rotationsfunktion

  1. Öffnen Sie die Secrets-Manager-Konsole.
  2. Wählen Sie auf der Geheimnisse-Seite Ihren geheimen Namen aus.
  3. Wählen Sie auf der Geheime Details-Seite im Abschnitt Konfiguration der Rotation, Bearbeiten Rotation aus.
  4. Folgen Sie im Dialogfeld Bearbeiten der Rotationskonfiguration den Anweisungen in Schritt 3e. um das Geheimnis für die Rotation zu konfigurieren.
  5. Für Verwenden Sie separate Anmeldeinformationen, um dieses Geheimnis zu rotieren, wählen Sie Ja.
  6. Wählen Sie unter Geheimnisse das Geheimnis für die primären Datenbankanmeldeinformationen von Amazon RDS oder Amazon Aurora aus.
  7. Wählen Sie Speichern.
  8. (Optional) Wenn die vorherige Lambda-Rotationsfunktion an mehrere Geheimnisse angehängt ist, können Sie die neue Funktion für diese Geheimnisse verwenden.
    Öffnen Sie für jedes Geheimnis die Geheime Details-Seite und wählen Sie dann im Abschnitt Konfiguration der Rotation Bearbeiten Rotation aus. Wählen Sie im Dialogfeld Bearbeiten der Rotationskonfiguration für Lambda-Rotation-Funktion die neue Rotationsfunktion aus, und wählen Sie dann Speichern aus.
  9. Nachdem Sie alle Secrets auf die neue Lambda-Rotationsfunktion umgestellt haben, löschen Sie in der Lambda-Konsole die vorherige Rotations-Lambda-Funktion.

Verwandte Informationen

Wie erstelle ich eine Rotationsfunktion mit einem AWS Secrets Manager-Geheimnis für eine nicht unterstützte Datenbank?

Verbessern Sie die Sicherheit der primären Amazon RDS-Datenbankanmeldeinformationen mit AWS Secrets Manager

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 10 Monaten