Konfigurieren der TLS-Konnektivität in Azure Database for PostgreSQL (Einzelserver)

GILT FÜR: Azure Database for PostgreSQL – Single Server

Wichtig

Azure Database for PostgreSQL – Single Server wird eingestellt. Es wird dringend empfohlen, ein Upgrade auf Azure Database for PostgreSQL – Flexible Server auszuführen. Weitere Informationen zum Migrieren zu Azure Database for PostgreSQL – Flexible Server finden Sie unter Was geschieht mit Azure Database for PostgreSQL – Single Server?

Azure Database for PostgreSQL bevorzugt das Herstellen einer Verbindung zwischen Ihren Clientanwendungen und dem PostgreSQL-Dienst über TLS (Transport Layer Security), ehemals als SSL (Secure Sockets Layer) bezeichnet. Durch das Erzwingen von TLS-Verbindungen zwischen Ihrem Datenbankserver und Ihren Clientanwendungen können Sie sich vor Man-in-the-Middle-Angriffen schützen, indem Sie den Datenstrom zwischen dem Server und Ihrer Anwendung verschlüsseln.

Standardmäßig ist der PostgreSQL-Datenbankdienst so konfiguriert, dass TLS-Verbindungen erforderlich sind. Sie können das Erfordern von TLS deaktivieren, wenn Ihre Clientanwendung keine TLS-Verbindungen unterstützt.

Hinweis

Basierend auf dem Feedback von Kunden haben wir die eingestellte Unterstützung des Stammzertifikats für unsere vorhandene Baltimore-Stammzertifizierungsstelle bis zum 30. November 2022 (30.11.2022) verlängert.

Wichtig

Das SSL-Stammzertifikat wird ab Dezember 2022 (12/2022) auslaufen. Aktualisieren Sie Ihre Anwendung bitte mithilfe des neuen Zertifikats. Weitere Informationen finden Sie unter Geplante Zertifikatupdates

Erzwingen von TLS-Verbindungen

Bei allen Azure Database for PostgreSQL-Servern, die über das Azure-Portal und die CLI bereitgestellt werden, ist die Erzwingung von TLS-Verbindungen standardmäßig aktiviert.

Entsprechend enthalten Verbindungszeichenfolgen, die im Azure-Portal unter dem Server in den Verbindungszeichenfolgen-Einstellungen vorab definiert sind, die erforderlichen Parameter für gängige Sprachen für die Verbindung mit dem Datenbankserver mithilfe von TLS. Der TLS-Parameter variiert je nach Connector, z. B. „ssl=true“ oder „sslmode=require“ oder „sslmode=required“ und weitere Variationen.

Konfigurieren der Erzwingung von TLS

Sie können die Erzwingung von TLS-Verbindungen optional deaktivieren. Microsoft Azure empfiehlt, die Einstellung SSL-Verbindung erzwingen immer zu aktivieren, um die Sicherheit zu erhöhen.

Verwenden des Azure-Portals

Rufen Sie Ihren Azure Database for PostgreSQL-Server auf, und wählen Sie Verbindungssicherheit aus. Verwenden Sie die Umschaltfläche, um die Einstellung SSL-Verbindung erzwingen zu aktivieren/deaktivieren. Wählen Sie anschließend Speichern aus.

Verbindungssicherheit: Erzwingung von TLS/SSL deaktivieren

Bestätigen Sie die Einstellung auf der Seite Übersicht, indem Sie den Indikator für den SSL-Erzwingungsstatus anzeigen.

Verwenden der Azure-Befehlszeilenschnittstelle

Sie können den Parameter ssl-enforcement in der Azure CLI mit den Werten Enabled bzw. Disabled aktivieren oder deaktivieren.

az postgres server update --resource-group myresourcegroup --name mydemoserver --ssl-enforcement Enabled

Ermitteln des Status von SSL-Verbindungen

Sie können auch alle Informationen zur SSL-Nutzung Ihrer Azure Database for PostgreSQL-Einzelserverinstanz nach Prozess, Client und Anwendung sammeln, indem Sie die folgende Abfrage verwenden:

SELECT datname as "Database name", usename as "User name", ssl, client_addr, application_name, backend_type
   FROM pg_stat_ssl
   JOIN pg_stat_activity
   ON pg_stat_ssl.pid = pg_stat_activity.pid
   ORDER BY ssl;

Sicherstellen, dass die Anwendung oder das Framework TLS-Verbindungen unterstützt

Einige Anwendungsframeworks, die PostgreSQL für ihre Datenbankdienste verwenden, aktivieren TLS nicht standardmäßig während der Installation. Wenn Ihr PostgreSQL-Server TLS-Verbindungen erzwingt, die Anwendung aber nicht für TLS konfiguriert wurde, kann die Anwendung unter Umständen keine Verbindung mit dem Datenbankserver herstellen. Lesen Sie in der Dokumentation Ihrer Anwendung nach, wie TLS-Verbindungen aktiviert werden.

Anwendungen, die eine Zertifikatüberprüfung für TLS-Verbindungen erfordern

In einigen Fällen erfordern Anwendungen eine lokale Zertifikatdatei, die auf der Grundlage der Zertifikatdatei einer vertrauenswürdigen Zertifizierungsstelle (Certificate Authority, CA) generiert wurde, um eine sichere Verbindung herzustellen. Das Zertifikat für die Verbindungsherstellung mit einem Azure Database for PostgreSQL-Server befindet sich unter https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem. Laden Sie die Zertifikatdatei herunter, und speichern Sie sie am gewünschten Ort.

Zertifikate für Server in Sovereign Clouds finden Sie unter den folgenden Links: Azure Government, Azure China und Azure Deutschland.

Herstellen einer Verbindung mit psql

Das folgende Beispiel zeigt, wie Sie einen PostgreSQL-Server mithilfe des psql-Befehlszeilen-Hilfsprogramms verbinden können. Verwenden Sie die Einstellung sslmode=verify-full für die Verbindungszeichenfolge, um die Überprüfung des TLS-/SSL-Zertifikats zu erzwingen. Übergeben Sie den Pfad der lokalen Zertifikatdatei an den Parameter sslrootcert.

Der folgende Befehl ist ein Beispiel für die psql-Verbindungszeichenfolge:

psql "sslmode=verify-full sslrootcert=BaltimoreCyberTrustRoot.crt host=mydemoserver.postgres.database.azure.com dbname=postgres user=myusern@mydemoserver"

Tipp

Vergewissern Sie sich, dass der Wert, den Sie an sslrootcert übergeben haben, mit dem Dateipfad für das von Ihnen gespeicherte Zertifikat übereinstimmt.

Durchsetzung von TLS in Azure Database for PostgreSQL (Einzelserver)

Azure Database for PostgreSQL (Einzelserver) unterstützt Verschlüsselung für Clients, die eine Verbindung mit dem Datenbankserver mithilfe von Transport Layer Security (TLS) herstellen. TLS ist ein Standardprotokoll der Branche, das sichere Netzwerkverbindungen zwischen dem Datenbankserver und Clientanwendungen gewährleistet, sodass Sie Konformitätsanforderungen einhalten können.

TLS-Einstellungen

Azure Database for PostgreSQL (Einzelserver) bietet die Möglichkeit, die TLS-Version für die Clientverbindungen vorzuschreiben. Um die TLS-Version zu erzwingen, verwenden Sie die Optionseinstellung TLS-Mindestversion. Für diese Optionseinstellung sind die folgenden Werte zulässig:

TLS-Mindesteinstellung Unterstützte Client-TLS-Version
TLSEnforcementDisabled (Standardwert) Kein TLS erforderlich
TLS1_0 TLS 1.0, TLS 1.1, TLS 1.2 und höher
TLS1_1 TLS 1.1, TLS 1.2 und höher
TLS1_2 TLS-Version 1.2 und höher

Wenn Sie diese Mindesteinstellung für die TLS-Version beispielsweise auf TLS 1.0 festlegen, bedeutet das, dass Ihr Server Verbindungen von Clients mithilfe von TLS 1.0, 1.1 und 1.2+ zulässt. Alternativ bedeutet die Festlegung auf 1.2, dass Sie nur Verbindungen von Clients mithilfe von TLS 1.2+ zulassen und alle Verbindungen mit TLS 1.0 und TLS 1.1 abgewiesen werden.

Hinweis

Von Azure Database for PostgreSQL wird standardmäßig keine TLS-Mindestversion erzwungen (Einstellung TLSEnforcementDisabled).

Wenn Sie eine TLS-Mindestversion erzwingen, kann diese Erzwingung später nicht mehr deaktiviert werden.

Informationen zum Festlegen der TLS-Einstellung für Ihren Azure Database for PostgreSQL (Einzelserver) finden Sie unter Konfigurieren der TLS-Einstellung.

Unterstützung für Verschlüsselungsverfahren durch Azure Database for PostgreSQL – Einzelserver

Im Rahmen der SSL/TLS-Kommunikation werden die Verschlüsselungssammlungen überprüft. Nur Sammlungen, die mit dem Datenbankserver kommunizieren dürfen, werden zugelassen. Die Überprüfung der Verschlüsselungssammlungen wird in der Gatewayschicht gesteuert, nicht explizit im Knoten selbst. Wenn die Sammlungen keiner der unten aufgeführten Sammlungen entsprechen, werden eingehende Clientverbindungen abgelehnt.

Unterstützte Verschlüsselungssammlungen

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

Nächste Schritte

Überprüfen verschiedener Anwendungskonnektivitätsoptionen gemäß Datenverbindungsbibliotheken für Azure Database for PostgreSQL.