Wie konfiguriere ich meine Lambda-Funktion, um Amazon-RDS-Proxy für die Herstellung einer Verbindung zu einer Amazon RDS-Datenbank zu verwenden?

Lesedauer: 4 Minute
0

Ich möchte meine AWS Lambda-Funktion so konfigurieren, dass sie den Amazon Relational Database Service (Amazon RDS)-Proxy verwendet, um eine Verbindung zu einer Amazon RDS-Datenbank herzustellen.

Behebung

Voraussetzungen: Amazon-RDS-Proxy muss sich in derselben Amazon Virtual Private Cloud (Amazon VPC) wie die Amazon RDS-Datenbank befinden.

Gehe wie folgt vor, um die Lambda-Funktion so zu konfigurieren, dass Amazon-RDS-Proxy verwendet wird, um eine Verbindung zu einer Amazon RDS-Datenbank herzustellen.

Erstellen der Datenbank-Anmeldeinformationen in Secrets Manager

Führe die folgenden Schritte aus:

  1. Öffne die AWS Secrets Manager-Konsole.
  2. Wähle Ein neues Secret speichern aus.
  3. Wähle als Secret-Typ die Option Anmeldeinformationen für die RDS-Datenbank aus.
  4. Gib den Benutzernamen und das Passwort für deine RDS-DB-Instance ein.
  5. Wähle als Verschlüsselungsschlüssel den AWS Key Management Service (AWS KMS)-Schlüssel aus, den Secrets Manager zum Verschlüsseln des Secret-Werts verwendet.
  6. Wähle als Datenbank deine Datenbank aus, und klicke dann auf Weiter.
  7. Gib als Secret-Namen einen Namen ein, und wähle dann Weiter aus.
  8. Wähle Weiter und dann Speichern.
  9. Wähle unter Secrets das Secrets Manager-Secret aus.
  10. Notiere dir in Secret ARN den Secret-ARN.

Weitere Informationen findest du unter AWS-Secrets-Manager-Secrets erstellen.

Eine IAM-Richtlinie und -Rolle für Amazon-RDS-Proxy erstellen

Erstelle eine AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Rolle mit Berechtigungen zur Verwendung des Secrets. Beispiel:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:GetResourcePolicy",
        "secretsmanager:GetSecretValue",
        "secretsmanager:DescribeSecret",
        "secretsmanager:ListSecretVersionIds"
      ],
      "Resource": [
        "[Secret_ARN]"
      ]
    },
    {
      "Sid": "VisualEditor1",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:GetRandomPassword",
        "secretsmanager:ListSecrets"
      ],
      "Resource": "*"
    }
  ]
}

Hinweis: Ersetze Secret_ARN durch deinen Secret-ARN.

Erstelle dann eine Vertrauensrichtlinie, die es Amazon RDS ermöglicht, die Rolle zu übernehmen. Beispiel:

{
 "Version": "2012-10-17",
 "Statement": [
  {
   "Sid": "",
   "Effect": "Allow",
   "Principal": {
    "Service": "rds.amazonaws.com"
   },
   "Action": "sts:AssumeRole"
  }
 ]
}

Einen Proxy erstellen und an eine Lambda-Funktion anhängen

Erstelle zunächst einen RDS-Proxy. Führe dann die folgenden Schritte aus, um die Funktion so zu konfigurieren, dass sie eine Verbindung zum Proxy-Endpunkt statt zum Datenbankendpunkt herstellt:

  1. Öffne die Lambda-Konsole.
  2. Wähle Funktionen und dann deine Lambda-Funktion aus.
  3. Wähle Konfiguration und dann RDS-Datenbanken aus.
  4. Wähle Verbindung zur RDS-Datenbank herstellen.
  5. Wähle deine RDS-Datenbank aus. Oder wähle Eine neue Datenbank erstellen aus und konfiguriere dann die folgenden Einstellungen:
    Wähle als Engine-Typ den Engine-Typ aus.
    Gib als DB-Instance-ID einen Namen für deine DB-Instance ein.
    Gib als Hauptbenutzernamen die Anmelde-ID des primären Benutzers ein.
    Verwende für VPC die Standardeinstellung. Standardmäßig richtet Lambda die RDS-Datenbank in derselben VPC wie die Funktion ein.
  6. Wähle die Datenbankverbindung und dann Add Proxy (Proxy hinzufügen) aus.
  7. Wähle für Vorhandene Proxys deinen RDS-Proxy aus.
  8. Wähle Hinzufügen aus.

Die Herstellung der Proxy-Verbindung dauert einige Minuten. Weitere Informationen zur Konfiguration einer RDS-DB-Instance für die Verwendung mit Lambda findest du unter Konfigurierung deiner Funktion für die Arbeit mit RDS-Ressourcen.

(Optional) Sicherstellen, dass der Amazon-RDS-Proxy die IAM-Authentifizierung verwendet

Wenn du die Lambda-Ausführungsrolle verwendest, um dich bei Amazon-RDS-Proxy zu authentifizieren, führe die folgenden Schritte aus:

  1. Öffne die Amazon-RDS-Konsole.
  2. Wähle im Navigationsbereich Proxys und dann deinen Proxy aus.
  3. Wähle Aktionen und dann Ändern.
  4. Vergewissere dich, dass unter Authentifizierung die IAM-Authentifizierung auf Erforderlich gesetzt ist.

Wenn du Verbindungsprobleme hast, findest du weitere Informationen unter Warum kann ich mit Amazon-RDS-Proxy keine Verbindung zu meiner Amazon RDS DB- oder Amazon Aurora-DB-Instance herstellen?

Weitere Informationen findest du unter Verwendung von Amazon-RDS-Proxy mit AWS Lambda.

Ähnliche Informationen

Wie behebe ich Verbindungs-Timeout-Fehler von Lambda, wenn ich versuche, auf eine Amazon-RDS-DB-Instance zuzugreifen?

Wie konfiguriere ich eine Lambda-Funktion, um eine Verbindung zu einer RDS-Instance herzustellen?

Wie behebe ich den Fehler „Lambda could not update the function's execution role“ beim Anhängen von Amazon-RDS-Proxy an eine Lambda-Funktion?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 5 Monaten