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 – Flexibler 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.

Wichtig

SSL-Zwischenzertifikate werden ab dem 31. Januar 2024 (01.31.2024) aktualisiert. Bei einem Zwischenzertifikat handelt es sich um ein untergeordnetes Zertifikat, das von einem vertrauenswürdigen Stamm ausgestellt wurde, speziell für die Ausgabe von Endentitätszertifikaten. Das Ergebnis ist eine Zertifikatkette, die mit der vertrauenswürdigen Stammzertifizierungsstelle beginnt, über die Zwischenzertifizierungsstelle (oder -stellen) geht und mit dem für Sie ausgestellten SSL-Zertifikat endet. Das Anheften von Zertifikaten ist eine Sicherheitstechnik, bei der beim Einrichten einer sicheren Sitzung nur autorisierte oder angeheftete Zertifikate akzeptiert werden. Jeder Versuch, eine sichere Sitzung mithilfe eines anderen Zertifikats einzurichten, wird abgelehnt. Im Gegensatz zur vertrauenswürdigen Stammzertifizierungsstelle, die wir bereits im aktuellen Jahr vollständig aktualisiert haben und wo das Zertifikat mithilfe der verify-ca- oder verify-full-Verbindungszeichenfolgenclientdirektive angeheftet werden kann, gibt es keine standardmäßige, gut etablierte Möglichkeit zum Anheften von Zwischenzertifizierungsstellen. Es gibt jedoch eine theoretische Möglichkeit zum Erstellen eines benutzerdefinierten Verbindungsstapels, der Zwischenzertifikate in einer Vielzahl von Programmiersprachen an den Client anheften kann. Wie oben erläutert, können Sie in dem unwahrscheinlichen Szenario, dass Sie die Zwischenzertifikate mit benutzerdefiniertem Code anheften, von dieser Änderung betroffen sein. Um festzustellen, ob Sie CAs anheften, lesen Sie bitte Anheften von Zertifikaten und Azure-Diensten

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, Microsoft Azure, betrieben von 21Vianet 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.