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 zu OCSP¶
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.
Fail-open
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 |
|
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 |
SQL Alchemy |
Siehe JDBC-Treibereinstellungen |
Spark |
Der Spark-Konnektor hat keinen |
Go-Treiber |
Führen Sie einen der folgenden Schritte aus: . - Setzen Sie den Verbindungsparameter |
Node.js |
Legen Sie den globalen Parameter |
Ä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:
Aktualisieren von Client oder Treiber auf die neueste Version (beste Option).
Weiteres Verwenden des Fail-close-Verhaltens.
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.
Verwenden Sie AWS PrivateLink oder Azure Private Link, und blockieren Sie den öffentlichen Zugriff auf Snowflake.
Sorgen Sie dafür, dass Clienttreiber nur auf verwalteten Desktops und Servern ausgeführt werden dürfen.
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
Unterstützung von AWS PrivateLink und Azure Private Link erfordert Business Critical (oder höher). Wenden Sie sich für ein Upgrade direkt an den Snowflake-Support.
Überprüfen der Kommunikation mit Ihrer CA-Website oder Ihrem OCSP-Responder¶
So prüfen Sie, ob die Kommunikation blockiert ist:
Schritt 1: URL für Ihr Zertifikat abrufen¶
Rufen Sie die von Snowflake für OCSP-Prüfungen auf Ihrem signierten Snowflake-Zertifikat verwendete URL ab:
Melden Sie sich in Google Chrome bei der Snowflake-Weboberfläche an.
Klicken Sie auf das Symbol in der rechten oberen Ecke des Browserfensters („Google Chrome anpassen und steuern“). Klicken Sie dann auf More Tools » Developer Tools.
Der Rahmen für Developer Tools wird angezeigt. Klicken Sie im Rahmen auf die Registerkarte Security.
Klicken Sie auf die Schaltfläche View certificate, und erweitern Sie dann den Abschnitt Details.
Scrollen Sie durch die Details, bis Sie die passende Erweiterung gefunden haben, und notieren Sie sich die URL für:
Online Certificate Status Protocol (z. B.
http://ocsp.netsolssl.com
)Beispiel:
Als Nächstes testen Sie, ob Sie auf die URL zuzugreifen können (siehe Schritt 2). Verschiedene Netzwerkprobleme könnten den Zugriff des Snowflake-Clients auf die URL verhindern. So kann beispielsweise Ihre Firewall den Zugriff auf die von Snowflake genutzten Websites blockieren.
Schritt 2: URL testen¶
Führen Sie die Betriebssystem-spezifischen Schritte durch, um zu überprüfen, ob Sie die URL (<OCSP-URL>
) erreichen können, die Sie in Schritt 1 abgerufen haben:
- Windows
Öffnen Sie ein PowerShell-Fenster auf dem Host, auf dem das Konnektivitätsproblem weiterhin besteht.
Führen Sie den folgenden Befehl aus:
Invoke-WebRequest <ocsp_url>
Der Befehl
Invoke-WebRequest
sendet eine HTTP-Anfrage an eine Webseite oder einen Webservice und gibt eine Antwort zurück.
- Linux/macOS
Öffnen Sie ein Terminalfenster auf dem Host, auf dem das Konnektivitätsproblem fortbesteht.
Führen Sie den folgenden Befehl aus:
curl -I <ocsp_url>
Wenn erfolgreich, gibt der Befehl etwa folgende Ergebnisse zurück:
HTTP/1.1 200 OK Server: Apache X-OCSP-Responder-ID: dwdccaocsp27 Content-Length: 5 Content-Type: application/ocsp-response Date: Thu, 09 Aug 2018 19:19:20 GMT Connection: keep-alive
Wenn der Befehl einen Fehler zurückgibt, melden Sie das Problem an Ihren Netzwerkadministrator zur weiteren Diagnose. Möglicherweise muss der OCSP-Host, der zur Überprüfung Ihres Zertifikats verwendet wird, explizit auf die Zulassungsliste gesetzt werden.
Wenn der Befehl einen anderen Statuscode als 200
zurückgibt, wenden Sie sich 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 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-Antwort-Cacheserver von Snowflake. Beachten Sie, dass der Hostname anders ist, wenn AWS PrivateLink aktiviert ist. |
|
✔ |
✔ |
|
|
✔ |
✔ |
|
|
✔ |
||
|
✔ |
✔ |
|
|
✔ |
Snowflake auf Microsoft Azure¶
Host |
East US 2 |
Anmerkungen |
---|---|---|
|
✔ |
OCSP-Antwort-Cacheserver von Snowflake. Beachten Sie, dass der Hostname anders ist, wenn Azure Private Link aktiviert ist. |
|
✔ |
|
|
✔ |
Snowflake auf Google Cloud Platform¶
Host |
us-central1 |
Anmerkungen |
---|---|---|
|
✔ |
OCSP-Antwort-Cacheserver von Snowflake. |
|
✔ |
|
|
✔ |
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 explizit von einer bestimmten CA gesperrt wurden. Ältere Versionen der JDBC- und ODBC-Treiber verwendeten entweder CRL oder OCSP zur Überprüfung von TLS/SSL-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)