AWS Germany – Amazon Web Services in Deutschland

Sichere Speicherung Ihrer Amazon RDS Datenbankszugangsdaten mit AWS Secrets Manager

von Vinod Santhanam und Adithya Solai, übersetzt von David Maul

Amazon Relational Database Service (Amazon RDS) ist ein vollständig verwalteter Service zum einfachen Einrichten, Betreiben und Skalieren einer relationalen Datenbank in der AWS Cloud. AWS Secrets Manager ermöglicht Ihnen ein müheloses Rotieren, Verwalten und Abfragen von Datenbankanmeldeinformationen, API-Schlüsseln und anderen Secrets.

Amazon RDS unterstützt jetzt die Integration mit AWS Secrets Manager, um die Verwaltung Ihres Master-Benutzerpassworts für Ihre RDS-Datenbank-Instanzen zu optimieren. Sie ersparen sich dadurch komplexe Aktivitäten zur Verwaltung von Anmeldeinformationen, wie beispielsweise die Einrichtung benutzerdefinierter AWS Lambda-Funktionen zur Verwaltung von Passwortwechseln.

In diesem Blog Artikel werden Sie lernen wie Sie eine Amazon RDS Datenbank aufsetzen und Secrets Manager integrieren können, um Ihre Datenbankanmeldeinformationen zu verwalten. Zusätzlich dazu werden Sie erfahren, wie Sie für wechselnde Benutzer eine automatische Rotation für deren Geheimnis einrichten können mit Hilfe von Secrets Manager.

Vorteile der Integration

Die Verwaltung Ihrer Amazon RDS Datenbankanmeldeinformationen mit AWS Secrets Manager bietet folgende Vorteile:

  • Amazon RDS generiert und sichert das Master-Benutzerpasswort Ihrer Datenbank automatisch, somit müssen Sie sich nicht mehr um die aufwendige Verwaltung Ihres Datenbankpassworts kümmern.
  • Amazon RDS rotiert die Datenbankanmeldeinformationen regelmäßig, ohne dass es Änderungen in Ihrer Anwendung benötigt.
  • Secrets Manger unterstützt Sie dabei Ihre Datenbank-Passwörter vor Dritten zu schützen.
  • Secrets Manager erlaubt es Ihnen, Ihre Datenbankanmeldeinformationen mit einer API oder der Konsole abzurufen.
  • Mit Secrets Manager haben Sie fein-granulare Kontrolle über den Zugriff auf Ihre Datenbankpasswörter mit Hilfe von AWS Identity and Access Management (IAM).
  • Sie können die Verschlüsselung von Ihrer Datenbank und die Verschlüsselung der Anmeldeinformationen mit verschiedenen AWS Key Management Service (AWS KMS) Schlüsseln separieren.
  • Sie können den Zugriff auf Ihre Datenbankzugangsdaten mit Hilfe von AWS CloudTrail und Amazon CloudWatch überwachen.

Schritt-für-Schritt-Anleitung

In dem folgenden Artikel werden wir Ihnen zeigen wie Sie die Konsole verwenden können, um die folgenden Dinge zu erreichen:

  • Verwalten von Datenbankanmeldeinformationen für neue Amazon RDS Instanzen mit Secrets Manager. Wir verwenden hier die MySQL Datenbank-Engine, allerdings können Sie auch eine andere Engine verwenden.
  • Verwenden von dem Geheimnis der Master-Datenbank, um die automatische Rotation von Geheimnissen für wechselnden Benutzern zu aktivieren.

Verwalten von Amazon RDS Datenbankanmeldeinformationen mit Secrets Manager

In diesem Abschnitt werden wir eine Datenbank Instanz erstellen und Secrets Manager integrieren.

  1. Öffnen Sie die Amazon RDS Konsole und klicken Sie auf Datenbank erstellen.
  2. Für Auswahl einer Datenbank-Erstellungsmethode, wählen Sie Standard-Erstellung.
  3. Unter Engine-Optionen, wählen Sie MySQL als Engine-Typ aus.
  4. In Einstellungen, unter Einstellungen für Anmeldeinformationen, wählen Sie Master-Anmeldeinformationen in AWS Secrets Manager verwalten aus.
Auswählen der Secrets Manager Integration

Abbildung 1: Auswählen der Secrets Manager Integration

  1. Sie haben die Möglichkeit die Datenbankanmeldeinformationen zu verschlüsseln, indem Sie einen AWS KMS Schlüssel auswählen. Für unseren Fall werden wir den default KMS Schlüssel verwenden.
Auswählen des KMS Schlüssels

Abbildung 2: Auswählen des KMS Schlüssels

  1. (Optional) Nun können Sie weitere Einstellungen anpassen, um Ihre Anforderungen zu erfüllen. Weitere Informationen finden Sie auf Einstellungen für DB-Instanzen.
  2. Wählen Sie nun Datenbank erstellen und warten Sie ein paar Minuten bis Ihre Datenbank erstellt wurde.
  3. Nachdem die Datenbank erstellt wurde, navigieren Sie zu Ihrer neuen Datenbank. Diese finden Sie unter Datenbanken in der Amazon RDS Konsole.
  4. Klicken Sie nun auf den Konfigurations-Tab und unter ARN der Master-Anmeldeinformationen befindet sich Ihr Secret, dass die Master-Anmeldeinformationen beinhaltet.

Erstellen eines neuen Datenbankbenutzers mit den Master-Anmeldeinformationen

In dem folgenden Abschnitt zeigen wir Ihnen wie Sie einen neuen Datenbankbenutzer erstellen und sein Passwort sichern können, um dieses in Ihrer Applikation zu verwenden. Außerdem zeigen wir Ihnen wie Sie mit Hilfe des Secrets Managers auf Ihre Datenbank Zugangsdaten zugreifen können.

  1. Um die Datenbankanmeldeinformationen einzusehen, gehen Sie wie folgt vor:
    1. Wählen sie den Konfigurations-Tab von Ihrer Datenbank Instanz aus und unter ARN der Master-Anmeldeinformationen, klicken Sie auf In Secrets Manager verwalten, um zu Ihren Master-Anmeldeinformationen in Secrets Manager zu gelangen.
Datenbankanmeldeinformationen einsehen

Abbildung 3: Datenbankanmeldeinformationen einsehen

    1. Auf dem Dashboard von Ihrem Geheimnis bei Secrets Manager sehen Sie nun, dass Amazon RDS automatisch ein paar System Tags hinzugefügt hat. Zusätzlich ist die automatische Rotation von Ihrem Geheimnis aktiviert.
Geheimnis Details einsehen

Abbildung 4: Geheimnis Details einsehen

    1. Um das Passwort einzusehen, müssen Sie in der Geheimniswert Sektion auf Secret-Wert abrufen.

Notiz: Ihre Applikation kann das Geheimnis auch mit dem AWS CLI oder dem SDK abrufen, falls die Applikation die nötigen AWS IAM Berechtigungen besitzt, um das Geheimnis lesen zu dürfen.

  1. Mit Hilfe von MySQL Workbench oder anderer Software können Sie sich mit Ihrer Amazon RDS Datenbank verbinden. Verwenden Sie hierfür die Anmeldeinformationen, die Sie gerade abgerufen haben. Weitere Informationen finden Sie bei Verbinden mit einer DB-Instance, auf der die MySQL-Datenbank-Engine ausgeführt wird.
  2. Für die Master-Datenbank erstellen Sie einen neuen Benutzer, indem Sie folgenden SQL Befehl ausführen. Vergessen Sie nicht <password> mit einem sicheren Passwort Ihrer Wahl zu ersetzen.

CREATE USER 'child'@'%' IDENTIFIED by <password>;

Weitere Informationen über das Erstellen von Benutzern finden Sie in der MySQL Dokumentation.

Aufsetzen von automatischer Secrets Rotation für neue Datenbank Nutzer

In dem nächsten Abschnitt lernen Sie, wie Sie das Master-Benutzerpasswort verwenden, um neue Geheimnisse automatisch in einer Multi-User Umgebung zu rotieren.

  1. In der Secrets Manager Konsole, unter Secrets, klicken Sie auf Ein neues Secret speichern.
  2. Als Geheimnistyp, wählen Sie Anmeldeinformationen für eine Amazon-RDS-Datenbank.
  3. Schreiben Sie Benutzername und Passwort für Ihren neuen Datenbanknutzer in die Anmeldeinformationen.
  4. In dem Datenbank Abschnitt, wählen Sie Ihre Amazon RDS Instanz und klicken Sie dann auf Weiter, wie in Abbildung 5 zu sehen ist.
Auswählen der RDS Instanz

Abbildung 5: Auswählen der RDS Instanz

  1. In dem nächsten Schritt, auf der Geheimnis konfigurieren Seite, geben Sie Ihrem Geheimnis einen Namen und eine Beschreibung. Klicken Sie nun auf Weiter.
  2. In dem Drehung konfigurieren – optional Schritt können Sie nun Automatische Drehung.
Automatische Drehung aktivieren

Abbildung 6: Automatische Drehung aktivieren

  1. In dem Abschnitt Drehungsplan können Sie einen Drehungsplan auswählen der Ihren Anforderungen gerecht wird.
  2. In dem Abschnitt Drehungsfunktion gehen Sie wie folgt vor:
    1. Geben Sie der Lambda Funktion einen aussagekräftigen Namen.
    2. Klicken Sie auf Ja bei Verwenden Sie separate Anmeldeinformationen, um dieses Geheimnis zu drehen.
    3. Als Secret, wählen Sie das Secret aus, das von Amazon RDS erstellt wurde.

Notiz: Um den Namen von Ihrem Datenbank Secret herauszufinden gehen Sie zur Amazon RDS Konsole. Klicken Sie nun auf Ihre Amazon RDS Instanz und wählen Sie den Konfigurations-Tab aus. Hier sehen Sie nun Ihren ARN der Master-Anmeldeinformationen.

Seperate Anmeldeinformationen auswählen um das Geheimnis zu drehen

Abbildung 7: Separate Anmeldeinformationen auswählen um das Geheimnis zu drehen

  1. Klicken Sie auf Weiter und auf der Überprüfen Seite klicken Sie auf Speichern.

Es dauert nun ein paar Minuten bis Secrets Manager die Lambda Rotationsfunktion aufgesetzt hat und bis das neue Datenbankbenutzer Secret bereit ist rotiert zu werden.

Überprüfen, ob die automatische Geheimnis Rotation aktiviert ist

  1. In der Secrets Manager Konsole, klicken Sie auf Ihr neues Datenbank Secret.
Child Secret einsehen

Abbildung 8: Child Secret einsehen

  1. In dem Drehungskonfiguration Abschnitt können Sie nun verifizieren, dass der Drehungsstatus Aktiviert ist.
Drehungsstatus verifizieren

Abbildung 9: Drehungsstatus verifizieren

Weitere Informationen finden Sie auf Einrichten der Drehung wechselnder Benutzer für Secrets Manager.

Bereinigen von Ressourcen

Wenn Sie die Amazon RDS Instanz löschen, dann wird damit automatisch die Master-Datenbankanmeldeinformation von Secrets Manager gelöscht.

Die Amazon RDS Instanz löschen

  1. Öffnen Sie die Amazon RDS Konsole.
  2. Wählen Sie Datenbanken aus und klicken Sie auf Ihre Datenbank, die Sie löschen möchten.
  3. Klicken Sie auf Modifizieren.
  4. Deaktivieren Sie nun den Haken bei Löschschutz aktivieren, unter Schutz löschen, in dem Zusätzliche Konfiguration.
  5. Klicken Sie auf Weiter.
  6. Klicken Sie auf Sofort anwenden, in dem Planen von Änderungen.
  7. Wählen Sie Aktionen aus und in dem Dropdown Menü klicken Sie auf Löschen.
  8. (Optional) Benutzen Sie das Menü, um einen finalen Snapshot zu erstellen oder um automatische Backups von Ihrer Amazon RDS Instanz aufzubewahren.
Snapshots und Backups erstellen

Abbildung 10: Snapshots und Backups erstellen

  1. Schreiben sie delete me in das vorgegebene Feld und klicken Sie auf Löschen.

Weitere Informationen hierzu finden Sie auf Löschen einer DB-Instance.

Die automatische Secrets Rotation für neue Datenbanknutzer löschen

  1. In der Secrets Manager Konsole öffnen Sie Ihr neues Datenbank Geheimnis.
Child Secret einsehen

Abbildung 11: Child Secret einsehen

  1. In dem Drehungskonfigurations-Abschnitt wählen Sie Ihre Lambda Funktion aus.
Drehungsfunktion einsehen

Abbildung 12: Drehungsfunktion einsehen

  1. In der Lambda Konsole, unter Anwendung, klicken Sie auf die Anwendung.
Anwendung öffnen

Abbildung 13: Anwendung öffnen

  1. In dem Bereitstellungs-Tab klicken Sie auf den CloudFormation.
  2. Wählen Sie nun Löschen und befolgen Sie die Schritte im neuen Fenster. Eventuell müssen Sie zum Root Stack wechseln und dann erneut auf Löschen klicken. Zusätzlich dazu müssen Sie vielleicht auch den Beendigungsschutz des Stacks deaktivieren. Die Konsole wird Sie aber durch die nötigen Schritte navigieren.
Stack löschen

Abbildung 14: Stack löschen

  1. Nachdem Sie die Rotations-Funktion gelöscht haben, können Sie nun das Child Secret löschen. Navigieren Sie hierfür zu der Secrets Manager Konsole und klicken Sie auf das Secret, dass Sie löschen wollen.
  2. Im Aktionen Dropdown Menü, klicken Sie auf Secret löschen, um das Secret zu löschen.
Child Secret löschen

Abbildung 15: Child Secret löschen

Zusammenfassung

Amazon RDS Integration mit Secrets Manager hilft Ihnen Ihre Master-Datenbankzugangsdaten besser zu sichern und zu verwalten. Diese Integration speichert automatisch die Zugangsdaten in Secrets Manager und eliminiert somit den Aufwand der benötigt wird, um die Zugangsdaten zu sichern und zu rotieren.

In dem Artikel haben Sie folgende Sachen gelernt:

  1. Wie Sie eine Amazon RDS Instanz aufsetzen können, die Secrets Manager verwendet, um die Master-Anmeldeinformationen zu speichern.
  2. Wie Sie die Zugangsdaten in Secrets Manager einsehen können und validieren können, dass automatische Rotation der Zugangsdaten aktiviert ist.
  3. Wie Sie die Master-Datenbankzugangsdaten verwenden können, um neue Datenbankbenutzer anzulegen.
  4. Wie Sie automatische Geheimnis Rotation für neue Datenbankbenutzer aktivieren können.

Zusätzliche Informationen

Weitere Informationen und wie man Datenbankbenutzer für andere Amazon RDS Engine Typen erstellen kann finden Sie in den folgenden Ressourcen.