Snowflake Postgres-SSL-Zertifikate¶
Snowflake Postgres wird mit sicheren SSL-Verbindungen zu Clustern ausgeführt. Wenn Sie Clients und Anwendungen mit einem Cluster verbinden, schließen Sie SSLMODE=require in Ihren Einstellungen ein oder die entsprechende Einstellung für nicht libpq-basierte Treiber. Weitere Details und Tipps zur Behebung von Verbindungsproblemen finden Sie unter Verbinden mit Snowflake Postgres.
Für eine zusätzliche Sicherheitsebene können Benutzende mit Administratorrechten und Besitzende von Instanzen den Teil des öffentlichen Zertifikats des Stamm-CA (Zertifizierungsstelle)-Paars aus öffentlichem Zertifikat und privatem Schlüssel abrufen, das zum Signieren des Zertifikats jedes Snowflake Postgres-Servers verwendet wird. Diese Stamm-CA-Zertifikate (und ihre nicht freigegebenen privaten Schlüssel) sind für jedes Snowflake-Konto eindeutig. Nach dem Abrufen kann das Stamm-CA-Zertifikat für eine zusätzliche Überprüfung der Serverzertifikate verwendet werden, die zur Verbindungszeit präsentiert werden, um Schutz vor Man-in-the-Middle (MITM)-Angriffen zu bieten.
Abrufen des öffentlichen SSL-Stammzertifikats¶
Wählen Sie im Navigationsmenü die Option Postgres aus.
Wählen Sie im Menü More Options [⋮] oben rechts die Option Download Certificate aus.
Wählen Sie im Bestätigungsdialogfeld Download aus.
Sie können das Stamm-CA-Zertifikat aus dem Feld certificate abrufen, das vom Befehl DESCRIBE POSTGRES INSTANCE zurückgegeben wird. Dieses Zertifikat ist für alle Instanzen eines bestimmten Kontos gleich.
DESCRIBE POSTGRES INSTANCE my_postgres
->> SELECT "property", "value"
FROM $1
WHERE "property" = 'certificate';
Konfigurieren von Postgres-Clients für die SSL-Zertifikatsprüfung¶
Platzieren Sie den Stamm-CA-Zertifikatstext, einschließlich „—–BEGIN CERTIFICATE—–“ und „—–ENDCERTIFICATE—–“-Zeilen, in einer Datei an einem sicheren Speicherort auf Ihrem Client-Host. Wenn Sie bereits eine Stamm-CA-Speicherdatei mit Inhalten haben, die Sie wiederverwenden möchten, können Sie Ihren Snowflake Postgres-Stamm-CA-Zertifikatstext daran anhängen.
In Ihrer Verbindungskonfiguration:
Geben Sie den öffentlichen Stamm-CA-Zertifikatspeicherort mit
sslrootcert=/path/to/root/certfilein Ihren Verbindungsparametern an.Geben Sie entweder
sslmode=verify-caodersslmode=verify-full(anstelle vonsslmode=require) in Ihren Verbindungsparametern an.
Bemerkung
sslrootcert hat den Standardwert $HOME/.postgresql/root.crt für den Benutzenden des Clientsystems, der die Verbindung herstellt. Wenn Sie Ihr Stamm-CA-Zertifikat an diesem Speicherort platzieren, müssen Sie nicht den sslrootcert-Parameter für Ihre Verbindung angeben.
Hier erfahren Sie, wie diese beiden sslmode-Werte funktionieren:
verify-ca: Überprüft, ob der Server vertrauenswürdig ist, indem überprüft wird, ob er vom Stamm-CA-Zertifikatspaar unter Verwendung des vorhandenen öffentlichen Stamm-CA-Zertifikats signiert wurde.
verify-full: Führt die
verify-ca-Überprüfung aus und prüft zusätzlich, ob der Hostname des Servers mit einem im Serverzertifikat gespeicherten Namen übereinstimmt. Snowflake stellt sicher, dass dies für alle signierten Serverzertifikate funktioniert, die mit der Stamm-CA Ihres Kontos signiert wurden.
Die SSL-Verbindung schlägt fehl, wenn das Serverzertifikat nicht gemäß dem angegebenen Parameter sslmode überprüft werden kann. Snowflake empfiehlt verify-full in den meisten sicherheitsrelevanten Umgebungen.
Warnung
Wenn ein Stamm-CA-Zertifikat vorhanden ist, dann führt sslmode=require die gleiche Überprüfung wie sslmode=verify-ca durch. Das Vorhandensein eines Stamm-CA-Zertifikats unter $HOME/.postgresql/root.crt für einen Server mit einem Zertifikat, das von einer anderen CA signiert wurde, ist eine häufige Quelle für SSL-Verbindungsfehler. Wenn dies geschieht, können Sie einfach den Text Ihres Snowflake-Stamm-CA-Zertifikats an diese Datei anhängen oder an einem anderen Ort platzieren, der durch den sslrootcert-Parameter der Verbindung angegeben ist.
Bemerkung
Eine vollständige Erklärung, wie sich diese verschiedenen sslmode-Einstellungsgrade bezüglich MITM-Angriffen auswirken, finden Sie im PostgreSQL-Kapitel zu Bereitgestellter Schutz in verschiedenen sslmode-Einstellungen .