TLS-Serverzertifikatüberprüfung

Lakeflow Connect-Datenbankkonnektorpipelines verschlüsseln alle Daten während der Übertragung mithilfe von TLS. Ab neu erstellten Pipelines überprüft Lakeflow Connect auch das TLS-Zertifikat des Quelldatenbankservers. Diese Zertifikatsvalidierung überprüft, ob die Pipeline eine Verbindung mit dem beabsichtigten Server und nicht mit einem Imitator herstellt und verhindert Man-in-the-Middle-Angriffe (PITM).

Diese Seite bezieht sich auf die MySQL-, PostgreSQL- und SQL Server Lakeflow Connect-Connectors.

Funktionsweise der Zertifikatüberprüfung

Wenn eine neue Pipeline eine Verbindung mit einer Quelldatenbank herstellt, überprüft Lakeflow Connect das TLS-Zertifikat des Servers anhand eines Zertifikats einer vertrauenswürdigen Zertifizierungsstelle. Die Pipeline kann keine Verbindung herstellen, wenn das Zertifikat nicht überprüft werden kann.

Änderungen an der Zertifikatüberprüfung wirken sich nicht auf vorhandene Pipelines aus. Neu erstellte Pipelines haben standardmäßig die Zertifikatüberprüfung aktiviert.

Das Standardüberprüfungsverhalten unterscheidet sich je nach Connector:

Konnektor Standardverhalten, wenn kein Zertifizierungsstellenzertifikat bereitgestellt wird
MySQL Die Pipeline kann keine Verbindung herstellen. MySQL erfordert ein explizites Zertifizierungsstellenzertifikat, da das MySQL-Binlog-Replikationsprogramm den JVM-Truststore nicht verwendet. Sie müssen entweder ein Zertifizierungsstellenzertifikat in der Verbindung bereitstellen oder die Überprüfung deaktivieren.
PostgreSQL Die Pipeline stellt eine Verbindung mit dem JVM-Standardvertrauensspeicher her, der bekannte öffentliche Zertifizierungsstellen (z. B. DigiCert und Let's Encrypt) umfasst. Wenn Ihr PostgreSQL-Server ein Zertifikat von einer erkannten öffentlichen Zertifizierungsstelle verwendet, ist keine Aktion erforderlich. Wenn Ihr Server eine private oder interne Zertifizierungsstelle verwendet, müssen Sie ein benutzerdefiniertes Zertifizierungsstellenzertifikat bereitstellen.
SQL Server Die Pipeline stellt eine Verbindung mit dem JVM-Standardvertrauensspeicher her, der bekannte öffentliche Zertifizierungsstellen umfasst. Wenn Ihr SQL Server ein Zertifikat von einer erkannten öffentlichen Zertifizierungsstelle verwendet, ist keine Aktion erforderlich. Wenn Ihr Server eine private oder interne Zertifizierungsstelle verwendet, müssen Sie ein benutzerdefiniertes Zertifizierungsstellenzertifikat bereitstellen.

Bereitstellen eines Zertifizierungsstellenzertifikats

Wenn Ihr Datenbankserver ein Zertifikat von einer privaten oder internen Zertifizierungsstelle verwendet oder Wenn Sie MySQL verwenden, fügen Sie Ihr Zertifizierungsstellenzertifikat zur Unity-Katalogverbindung hinzu, die von der Pipeline verwendet wird.

Erstellen oder Aktualisieren einer Verbindung mit einem CA-Zertifikat

Databricks UI

So fügen Sie beim Erstellen einer neuen Verbindung ein Zertifizierungsstellenzertifikat hinzu:

  1. Klicken Sie im Azure Databricks Arbeitsbereich auf Datensymbol.Katalog.
  2. Klicken Sie auf "Erstellen ", und wählen Sie " Verbindung erstellen" aus.
  3. Geben Sie einen Verbindungsnamen ein, und wählen Sie den Verbindungstyp für Ihre Datenbank aus.
  4. Klicke auf Weiter.
  5. Geben Sie auf der Seite "Authentifizierung " den Host, den Port und die Anmeldeinformationen ein.
  6. Fügen Sie im Feld SSL-Zertifikat den Inhalt Der Zertifikatdatei ihrer Zertifizierungsstelle (PEM-Format) ein.
  7. Klicken Sie auf Verbindung herstellen.

So aktualisieren Sie eine bestehende Verbindung, um ein CA-Zertifikat hinzuzufügen:

  1. Klicken Sie im Azure Databricks Arbeitsbereich auf Datensymbol.Katalog.
  2. Wechseln Sie im Katalog-Explorer zur Verbindung.
  3. Klicken Sie auf Bearbeiten.
  4. Fügen Sie im Feld SSL-Zertifikat den Inhalt Der Zertifikatdatei ihrer Zertifizierungsstelle (PEM-Format) ein.
  5. Speichere deine Änderungen.

Databricks-Befehlszeilenschnittstelle

Fügen Sie das Zertifikat der Zertifizierungsstelle in das options Objekt ein, wenn Sie eine Verbindung erstellen. Die folgenden Beispiele zeigen die CA-Zertifikat-Option für jeden Connector.

Mysql:

databricks connections create --json '{
  "name": "my_mysql_connection",
  "connection_type": "MYSQL",
  "options": {
    "host": "<host>",
    "port": "3306",
    "user": "<username>",
    "password": "<password>",
    "ssl_ca": "<CA certificate content in PEM format>"
  }
}'

Postgresql:

databricks connections create --json '{
  "name": "my_postgresql_connection",
  "connection_type": "POSTGRESQL",
  "options": {
    "host": "<host>",
    "port": "5432",
    "database": "<database>",
    "user": "<username>",
    "password": "<password>",
    "ssl_ca": "<CA certificate content in PEM format>"
  }
}'

SQL Server:

databricks connections create --json '{
  "name": "my_sqlserver_connection",
  "connection_type": "SQLSERVER",
  "options": {
    "host": "<host>",
    "port": "1433",
    "user": "<username>",
    "password": "<password>",
    "ssl_ca": "<CA certificate content in PEM format>"
  }
}'

Deaktivieren der Zertifikatsvalidierung (nicht empfohlen)

Warning

Durch das Deaktivieren der Zertifikatüberprüfung werden Ihre Pipelines für PitM-Angriffe (Person-in-the-Middle) verfügbar gemacht und dürfen nicht in Produktionsumgebungen verwendet werden. Databricks empfiehlt stattdessen, ein Zertifizierungsstellenzertifikat bereitzustellen.

Wenn Ihre Umgebung die Zertifikatüberprüfung nicht unterstützt, können Sie die Verbindung so konfigurieren, dass dem Serverzertifikat vertraut wird, ohne es anhand einer Zertifizierungsstelle zu überprüfen. Setze trustServerCertificate auf true in den Verbindungsoptionen.

Databricks UI

Wenn Sie eine Verbindung im Katalog-Explorer erstellen oder bearbeiten, wählen Sie "Vertrauenserverzertifikat " aus, um die Zertifikatüberprüfung zu überspringen.

Databricks-Befehlszeilenschnittstelle

databricks connections create --json '{
  "name": "my_connection",
  "connection_type": "POSTGRESQL",
  "options": {
    "host": "<host>",
    "port": "5432",
    "database": "<database>",
    "user": "<username>",
    "password": "<password>",
    "trustServerCertificate": "true"
  }
}'

HIPAA- und FedRAMP-Arbeitsbereiche

In Arbeitsbereichen mit den HIPAA- oder FedRAMP-Compliance-Konfigurationen erzwingt Lakeflow Connect für alle Verbindungen von Datenbank-Connectors TLS-Version 1.2 oder 1.3. Diese Anforderung kann nicht deaktiviert werden.

Beheben von TLS-Zertifikatfehlern

Wenn eine Pipeline aufgrund eines TLS-Zertifikatfehlers fehlschlägt, überprüfen Sie das Pipelineereignisprotokoll für die Aufnahmegatewaypipeline. Das Ereignisprotokoll zeichnet Verbindungsfehler, einschließlich Zertifikatüberprüfungsfehlern, mit Details auf, um das Problem zu diagnostizieren.

Häufige Ursachen und Lösungen

Fehler Wahrscheinliche Ursache Resolution
PKIX path building failed oder unable to find valid certification path Das Zertifizierungsstellenzertifikat des Servers befindet sich nicht im JVM Truststore, und es wurde kein benutzerdefiniertes Zertifizierungsstellenzertifikat bereitgestellt. Geben Sie das CA-Zertifikat in der Unity-Katalogverbindung an.
SSL connection has been closed unexpectedly Der Server unterstützt TLS nicht oder erfordert eine andere TLS-Version. Stellen Sie sicher, dass TLS auf Ihrem Datenbankserver aktiviert ist. In HIPAA- und FedRAMP-Arbeitsbereichen ist TLS 1.2 oder 1.3 erforderlich.
Connection refused oder die Pipeline schlägt unmittelbar auf MySQL fehl Es wurde kein Zertifizierungsstellenzertifikat bereitgestellt und trustServerCertificate nicht festgelegt. Geben Sie das Zertifizierungsstellenzertifikat für MySQL an, oder deaktivieren Sie die Überprüfung , wenn Sie kein Zertifikat bereitstellen können.

Für eine detailliertere Fehlersuche zu Steckverbindern, siehe: