OCSP-Konfiguration

Dieses Thema bietet einen Überblick über das OCSP, seine Verwendung in Snowflake und Informationen zur Diagnose von OCSP-Problemen.

Unter diesem Thema:

Übersicht

Snowflake verwendet das Online Certificate Status Protocol (OCSP), um maximale Sicherheit zu bieten und zu ermitteln, ob ein Zertifikat gesperrt ist, wenn Snowflake-Clients versuchen, über HTTPS eine Verbindung zu einem Endpunkt herzustellen.

Snowflake wertet mit OCSP jedes Zertifikat in der Vertrauenskette bis zum Zwischenzertifikat aus, das von der Stammzertifizierungsstelle (CA) ausgestellt wird. Indem sichergestellt wird, dass einzelne Zertifikate nicht gesperrt sind, kann Snowflake bei der Identitätsprüfung sichere Verbindungen zu vertrauenswürdigen Akteuren herstellen.

Abhängig von Ihrer Client- oder Treiberversion und der auf dieser Seite beschriebenen Konfiguration können Sie OCSP deaktivieren und die Aktion anpassen, die ausgeführt wird, wenn OCSP feststellt, dass ein Zertifikat widerrufen wurde.

Fail-open- oder Fail-close-Verhalten

Derzeit können Benutzer zwischen zwei Verhaltensweisen wählen, um festzulegen, wie Snowflake-Clients oder -Treiber bei einem OCSP-Ereignis reagieren.

  1. Fail-open

  2. Fail-close

Fail-open

Snowflake unterstützt bei der Auswertung der OCSP CA-Reaktion standardmäßig einen Fail-open-Ansatz. Der Fail-open-Ansatz weist die folgenden Eigenschaften auf:

  • Eine Antwort, die auf ein widerrufenes Zertifikat hinweist, führt zu einer fehlgeschlagenen Verbindung.

  • Eine Antwort mit anderen Zertifikatfehlern oder -status ermöglicht das Herstellen der Verbindung, bezeichnet jedoch die Nachricht in den Protokollen auf der Ebene WARNING mit den relevanten Details im JSON-Format.

Benutzer können die Protokolle für den bestimmten Treiber oder Konnektor überwachen, um die Häufigkeit von Fail-open-Protokollereignissen zu ermitteln.

Diese Ereignisprotokolle können mit der Snowflake-Statusseite kombiniert werden, um das beste Vorgehen zu bestimmen, z. B. vorübergehendes Beschränken des Clientzugriffs oder Wechseln zum Fail-close-Verhalten.

Derzeit gilt der Fail-open-Standardansatz für die folgenden Client- und Treiberversionen.

Client/Treiber

Version

SnowSQL

v1.1.79 oder höher

Python-Konnektor

v1.8.0 oder höher

JDBC-Treiber

v3.8.0 oder höher

ODBC-Treiber

v2.19.0 oder höher

SQL Alchemy

Aktualisieren Sie Python-Konnektor auf v1.8.0 oder höher

Spark

v2.4.14 oder höher, wenn Sie zum Erstellen der Spark-Anwendung Maven oder SBT verwenden. . JDBC v3.8.0 oder höher, wenn JAR-Dateien an den Spark-Cluster angehängt werden. . Fordern Sie Databricks auf, ihren Spark-Konnektor zu aktualisieren, wenn Sie den integrierten Spark-Konnektor von Databricks verwenden.

Go-Treiber

v1.8.0 oder höher

Node.js

v1.8.0 oder höher

Bemerkung

Snowflake unterstützt keine OCSP-Prüfung des .NET-Treibers. Stattdessen verwendet .NET sein eigenes Framework, um die Gültigkeit des HTTPS-Zertifikats zu überprüfen.

Fail-close

Das Fail-close-Verhalten ist bei der Interpretation der OCSP CA-Antwort restriktiver. Wenn der Client oder Treiber aus irgendeinem Grund keine gültige OCSP CA-Antwort erhält, schlägt die Verbindung fehl.

Da dieses Verhalten bei den im Abschnitt Fail-open aufgeführten Versionen nicht Standard ist, muss Fail-close in jedem Treiber oder Konnektor manuell konfiguriert werden.

Setzen Sie den entsprechenden ocsp_fail_open-Parameter auf false, um das Fail-close-Verhalten beizubehalten.

Client/Treiber

Einstellung

SnowSQL

snowsql -o ocsp_fail_open=false

Python-Konnektor

Weitere Informationen dazu finden Sie in der Dokumentation zum Python-Konnektor unter Auswahl des Fail-open- oder Fail-close-Modus.

JDBC-Treiber

Weitere Informationen dazu finden Sie in der JDBC-Treiberdokumentation unter Auswahl des Fail-open- oder Fail-close-Modus.

ODBC-Treiber

Wählen Sie eine der folgenden Optionen: . Setzen Sie den Verbindungsparameter auf OCSP_FAIL_OPEN=false .. Verwenden Sie die Umgebungsvariable $SIMBAINI, um die entsprechende Datei zu finden. Legen Sie dann OCSPFailOpen=false fest.

SQL Alchemy

Siehe JDBC-Treibereinstellungen

Spark

Der Spark-Konnektor hat keinen ocsp_fail_open-Parameter. . Fail-close kann bei Spark nur beibehalten werden, wenn der JDBC-Treiber verwendet wird.

Go-Treiber

Führen Sie einen der folgenden Schritte aus: . - Setzen Sie den Verbindungsparameter OCSPFailOpen in Config auf ocspFailOpenTrue oder ocspFailOpenFalse. Beispiel: . import ( ... sf "github.com/snowflakedb/gosnowflake ... ") . config: &Config{ Account: "xy12345", ...,  OCSPFailOpen: sf.ocspFailOpenFalse, ... } . - Setzen Sie den ocspFailOpen-Verbindungsparameter in der Verbindungszeichenfolge auf true oder false. Beispiel: . user:pass@account/db/s?ocspFailOpen=false. . Beachten Sie die Unterschiede zwischen Groß- und Kleinschreibung. . Weitere Informationen zu Go-Verbindungsparametern finden Sie in der GoDoc gosnowflake-Dokumentation.

Node.js

Legen Sie den globalen Parameter ocspFailOpen=false fest. Weitere Details dazu finden Sie unter Übersicht der Node.js-Optionen.

Ältere Client- und Treiberversionen

Wenn Ihre Client- oder Treiberversion älter ist als die im Abschnitt Fail-open angegebene, stellt das Fail-open-Verhalten keine Option dar. Daher ist das Fail-close-Verhalten Standard.

Für Snowflake-Umgebungen mit älteren Client- und Treiberversionen in Bezug auf OCSP stehen drei Optionen zur Verfügung:

  1. Aktualisieren von Client oder Treiber auf die neueste Version (beste Option).

  2. Weiteres Verwenden des Fail-close-Verhaltens.

  3. Deaktivieren Sie die OCSP-Überwachung (d. h. den unsicheren Modus), wie in diesem Knowledge Base-Artikel (in der Snowflake-Community) aus.

Best Practices

Um Risiken zu minimieren und für eine sichere Kommunikation zu sorgen, empfiehlt Snowflake folgende bewährte Methoden.

  1. Verwenden Sie private Konnektivität zum Snowflake-Dienst, und blockieren Sie den öffentlichen Zugang zu Snowflake.

  2. Sorgen Sie dafür, dass Clienttreiber nur auf verwalteten Desktops und Servern ausgeführt werden dürfen.

  3. Senden Sie Protokolle von Clienttreibern an ein Verwaltungssystem, oder laden Sie sie in Snowflake hoch. Überwachen Sie die Verbindungen, die ohne OCSP-Prüfung hergestellt werden.

Bemerkung

Für private Konnektivität zum Snowflake-Dienst ist die Business Critical Edition (oder höher) erforderlich. Wenden Sie sich für ein Upgrade direkt an den Snowflake-Support.

CA-Website und OCSP-Responder-Hosts, die von Snowflake verwendet werden (von Cloudplattform und Region)

Snowflake verwendet die folgenden Hosts für OCSP-Zertifizierungsprüfungen. Beachten Sie, dass sich die Hosts einer Cloudplattform je nach Region unterscheiden können.

Wichtig

Dies sind Beispiele für die am häufigsten verwendeten Hosts. Für jede Region (oder jedes einzelne Konto) kann Snowflake ein Zertifikat verwenden, das von einem anderen CA ausgestellt wurde, was zu unterschiedlichen Hosts und URLs führt. Beispiel:

  • Für die meisten Konten in US West (auf AWS) verwendet Snowflake derzeit Digicert-signierte Zertifikate von Network Solutions.

  • Für andere Regionen (auf AWS) verwendet Snowflake hauptsächlich Zertifikate von Amazon CA.

Darüber hinaus kann Snowflake Zertifikate ändern, wenn diese ablaufen sind oder erweitert werden müssen, was zu unterschiedlichen Hosts und URLs führt.

Eine vollständige Liste der Hosts und URLs für Ihr Konto erhalten Sie vom Snowflake-Support.

Snowflake auf AWS

Host

US West

Andere Regionen

Anmerkungen

ocsp.snowflakecomputing.com:80

OCSP-Antwort-Cacheserver von Snowflake. Beachten Sie, dass der Hostname anders ist, wenn AWS PrivateLink aktiviert ist.

*.amazontrust.com:80

*.digicert.com:80

*.netsolssl.com:80

*.ss2.us:80

*.usertrust.com:80

Snowflake auf Microsoft Azure

Host

East US 2

Anmerkungen

ocsp.snowflakecomputing.com:80

OCSP-Antwort-Cacheserver von Snowflake. Beachten Sie, dass der Hostname anders ist, wenn Azure Private Link aktiviert ist.

*.digicert.com:80

*.msocsp.com:80

Snowflake auf Google Cloud Platform

Host

us-central1

Anmerkungen

ocsp.snowflakecomputing.com:80

OCSP-Antwort-Cacheserver von Snowflake.

ocsp.digicert.com:80

ocsp.pki.goog:80

OCSP-Zertifizierungsprüfungen erfordern Port 80

Die gesamte Kommunikation mit Snowflake erfolgt über Port 443. Allerdings werden OCSP-Zertifizierungsprüfungen über Port 80 übertragen. Wenn sich Ihre Workstation hinter einer Firewall befindet, stellen Sie sicher, dass der Netzwerkadministrator Ihres Unternehmens die Firewall für den Datenverkehr an Port 443 und Port 80 geöffnet hat.

JDBC- und ODBC-Treiber verwenden keine CRL mehr

Eine CRL (Zertifikatssperrliste) gibt die Zertifikate an, die von einer bestimmten CA explizit gesperrt wurden. Ältere Versionen der JDBC- und ODBC-Treiber verwendeten entweder CRL oder OCSP zur Überprüfung von TLS-Zertifikaten. Ab den folgenden Versionen verwenden die Treiber für die gesamte Zertifikatsprüfung nur noch OCSP:

  • JDBC 3.5.0 (oder höher)

  • ODBC 2.15.0 (oder höher)