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.
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.
- Informationen zum Konfigurieren von TLS.