Aktivieren verschlüsselter Verbindungen für PostgreSQL-DB-Instances in Amazon RDS - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aktivieren verschlüsselter Verbindungen für PostgreSQL-DB-Instances in Amazon RDS

Erstellt von Rohit Kapoor (AWS)

Umgebung: PoC oder Pilotprojekt

Technologien: Datenbanken; Netzwerk; Sicherheit, Identität, Compliance

Workload: Open-Source

AWS-Services: Amazon RDS; Amazon Aurora

Übersicht

Amazon Relational Database Service (Amazon RDS) unterstützt SSL-Verschlüsselung für PostgreSQL-DB-Instances. Mit SSL können Sie eine PostgreSQL-Verbindung zwischen Ihren Anwendungen und Ihren Amazon RDS for PostgreSQL-DB-Instances verschlüsseln. Standardmäßig verwendet Amazon RDS for PostgreSQL SSL/TLS und erwartet, dass alle Clients eine Verbindung mithilfe der SSL/TLS-Verschlüsselung herstellen. Amazon RDS for PostgreSQL unterstützt die TLS-Versionen 1.1 und 1.2.

Dieses Muster beschreibt, wie Sie verschlüsselte Verbindungen für eine DB-Instance von Amazon RDS für PostgreSQL aktivieren können. Sie können denselben Prozess verwenden, um verschlüsselte Verbindungen für Amazon Aurora PostgreSQL – kompatible Edition zu aktivieren.

Voraussetzungen und Einschränkungen

Architektur

Aktivieren verschlüsselter Verbindungen für PostgreSQL-DB-Instances in Amazon RDS

Tools

  • pgAdmin ist eine Open-Source-Verwaltungs- und Entwicklungsplattform für PostgreSQL . Sie können pgAdmin unter Linux, Unix, macOS und Windows verwenden, um Ihre Datenbankobjekte in PostgreSQL 10 und höher zu verwalten.

  • PostgreSQL-Editoren bieten eine benutzerfreundlichere Oberfläche, die Sie beim Erstellen, Entwickeln und Ausführen von Abfragen unterstützt und Code an Ihre Anforderungen anpasst.

Bewährte Methoden

  • Überwachen Sie unsichere Datenbankverbindungen.

  • Prüfen Sie die Zugriffsrechte für Datenbanken.

  • Stellen Sie sicher, dass Backups und Snapshots im Ruhezustand verschlüsselt sind.

  • Überwachen Sie den Datenbankzugriff.

  • Vermeiden Sie uneingeschränkte Zugriffsgruppen.

  • Verbessern Sie Ihre Benachrichtigungen mit Amazon GuardDuty.

  • Überwachen Sie die Einhaltung von Richtlinien regelmäßig.

Polen

AufgabeBeschreibungErforderliche Fähigkeiten

Laden Sie ein vertrauenswürdiges Zertifikat auf Ihren Computer.

Gehen Sie folgendermaßen vor, um Zertifikate zum Speicher der vertrauenswürdigen Stammzertifizierungsstellen für Ihren Computer hinzuzufügen. (Diese Anweisungen verwenden als Beispiel Window Server.)

  1. Wählen Sie unter Windows ServerStart ,Ausführen und geben Sie dannmmc ein.

  2. Wählen Sie in der Konsole Datei , Snap-in hinzufügen/entfernen aus.

  3. Wählen Sie unter Verfügbare Snap-Ins die OptionZertifikate und dann Hinzufügen aus.

  4. Wählen Sie unter Dieses Snap-In verwaltet immer Zertifikate für , Computerkonto , Weiter aus.

  5. Wählen Sie Lokaler Computer, Fertigstellen aus.

  6. Wenn Sie der Konsole keine Snap-Ins mehr hinzufügen möchten, wählen Sie OK aus.

  7. Doppelklicken Sie in der Konsolenstruktur aufCertificates.

  8. Klicken Sie mit der rechten Maustaste auf Vertrauenswürdige Stammzertifizierungsstellen.

  9. Wählen Sie Alle Aufgaben, Importieren, um die heruntergeladenen Zertifikate zu importieren.

  10. Führen Sie die Schritte im Assistenten zum Importieren von Zertifikaten aus.

DevOps Ingenieur, Migrationsingenieur, DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie eine Parametergruppe und legen Sie den Parameter rds.force_ssl fest.

Wenn die PostgreSQL-DB-Instance über eine benutzerdefinierte Parametergruppe verfügt, bearbeiten Sie die Parametergruppe und ändern Sie rds.force_ssl in 1.

Wenn die DB-Instance die Standardparametergruppe verwendet, die nicht rds.force_ssl aktiviert ist, erstellen Sie eine neue Parametergruppe. Sie können die neue Parametergruppe mithilfe der Amazon RDS-API oder manuell ändern, wie in den folgenden Anweisungen gezeigt.

So erstellen Sie eine neue Parametergruppe:

  1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon RDS-Konsole für die AWS-Region, die die DB-Instance hostet.

  2. Wählen Sie im Navigationsbereich Parameter groups (Parametergruppen) aus.

  3. Wählen Sie Parametergruppe erstellen und legen Sie die folgenden Werte fest: 

    • Wählen Sie für Parametergruppenfamilie postgres14 aus.

    • Geben Sie für Gruppenname pgsql-<database_instance>-ssl ein.

    • Geben Sie unter Beschreibung eine Freiformbeschreibung für die Parametergruppe ein, die Sie hinzufügen.

    • Wählen Sie Erstellen.

  4. Wählen Sie die Parametergruppe aus, die Sie erstellt haben.

  5. Wählen Sie für Parameter group actions (Parametergruppenaktionen) die Option Bearbeiten.

  6. Suchen Sie rds.force_ssl und ändern Sie seine Einstellung auf 1.

    Hinweis: Führen Sie clientseitige Tests durch, bevor Sie diesen Parameter ändern.

  7. Wählen Sie Änderungen speichern aus.

So verknüpfen Sie die Parametergruppe mit Ihrer PostgreSQL-DB-Instance:

  1. Wählen Sie in der Amazon-RDS-Konsole im Navigationsbereich Datenbanken und dann die PostgreSQL-DB-Instance aus.

  2. Wählen Sie Ändern aus.

  3. Wählen Sie unter Zusätzliche Konfiguration die neue Parametergruppe und dann Weiter aus.

  4. Wählen Sie unter Änderungen planen die Option Sofort anwenden aus.

  5. Wählen Sie Modify DB Instance (DB-Instance ändern) aus.

Weitere Informationen finden Sie in der Dokumentation zu Amazon RDS.

DevOps Ingenieur, Migrationsingenieur, DBA

SSL-Verbindungen erzwingen.

Stellen Sie eine Verbindung mit der DB-Instance von Amazon RDS für PostgreSQL her. Verbindungsversuche, die SSL nicht verwenden, werden mit einer Fehlermeldung abgelehnt. Weitere Informationen finden Sie in der Dokumentation zu Amazon RDS.

DevOps Ingenieur, Migrationsingenieur, DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Installieren Sie die SSL-Erweiterung.

  1. Starten Sie eine psql- oder pgAdmin-Verbindung als DBA.

  2. Rufen Sie die Funktion ssl_is_used() auf, um festzustellen, ob SSL verwendet wird.

    select ssl_is_used();

    Die Funktion gibt zurückt, wenn die Verbindung SSL verwendet. Andernfalls gibt sie zurückf.

  3. Installieren Sie die SSL-Erweiterung.

    create extension sslinfo; show ssl; select ssl_cipher();

Weitere Informationen finden Sie in der Dokumentation zu Amazon RDS.

DevOps Ingenieur, Migrationsingenieur, DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Konfigurieren Sie einen Client für SSL.

Durch die Verwendung von SSL können Sie den PostgreSQL-Server mit Unterstützung für verschlüsselte Verbindungen starten, die TLS-Protokolle verwenden. Der Server lauscht sowohl auf Standard- als auch auf SSL-Verbindungen auf demselben TCP-Port und verhandelt mit jedem verbindenden Client, ob SSL verwendet werden soll. Standardmäßig ist dies eine Client-Option.

Wenn Sie den psql-Client verwenden:

  1. Stellen Sie sicher, dass das Amazon-RDS-Zertifikat auf Ihren lokalen Computer geladen wurde.

  2. Starten Sie eine SSL-Client-Verbindung, indem Sie Folgendes hinzufügen:

    psql postgres -h SOMEHOST.amazonaws.com -p 8192 -U someuser sslmode=verify-full sslrootcert=rds-ssl-ca-cert.pem select ssl_cipher();

Für andere PostgreSQL-Clients:

  • Ändern Sie den jeweiligen öffentlichen Schlüsselparameter der Anwendung. Dies kann als Option, als Teil Ihrer Verbindungszeichenfolge oder als Eigenschaft auf der Verbindungsseite in GUI-Tools verfügbar sein. 

Sehen Sie sich die folgenden Seiten für diese Clients an:

DevOps Ingenieur, Migrationsingenieur, DBA

Fehlerbehebung

ProblemLösung

Das SSL-Zertifikat kann nicht heruntergeladen werden.

Überprüfen Sie Ihre Verbindung zur Website und versuchen Sie erneut, das Zertifikat auf Ihren lokalen Computer herunterzuladen.

Zugehörige Ressourcen