Certificats SSL Snowflake Postgres

Snowflake Postgres fonctionne avec des connexions SSL sécurisées aux clusters. Lors de la connexion des clients et des applications à un cluster, incluez SSLMODE=require dans vos paramètres, ou le paramètre équivalent pour les pilotes non basés sur libpq. Pour plus de détails et des conseils de dépannage de connexion, voir Connexion à Snowflake Postgres.

Pour renforcer la sécurité, les administrateurs et les propriétaires d’instances peuvent récupérer la partie publique du certificat CA (autorité de certification) de certification racine ainsi que la paire de clés publique-privée utilisée pour signer le certificat de chaque serveur Snowflake Postgres. Ces certificats CA racines (et leurs clés privées non partagées) sont uniques à chaque compte Snowflake. Une fois récupéré, le certificat CA racine peut être utilisé pour une vérification supplémentaire des certificats de serveur présentés au moment de la connexion afin de se protéger contre les attaques de l’homme du milieu (MITM).

Récupération du certificat racine SSL public

  1. Dans le menu de navigation, sélectionnez Postgres.

  2. Dans le menu More Options [⋮] en haut à droite, sélectionnez Download Certificate.

  3. Dans la boîte de dialogue de confirmation, sélectionnez Download.

Configuration des clients Postgres pour la vérification de certificat SSL

  1. Placez le texte du certificat CA racine, y compris les lignes « —–BEGIN CERTIFICATE—– » et « —–END CERTIFICATE—– », dans un fichier situé à un emplacement sécurisé sur votre hôte client. Si vous disposez déjà d’un fichier de stockage CA racine dont vous souhaitez réutiliser le contenu, vous pouvez y ajouter le texte du certificat CA racine de Snowflake Postgres.

  2. Dans votre configuration de la connexion :

    1. Spécifiez l’emplacement du certificat public CA racine avec sslrootcert=/path/to/root/certfile dans vos paramètres de connexion.

    2. Spécifiez soit sslmode=verify-ca, soit sslmode=verify-full (au lieu de sslmode=require) dans vos paramètres de connexion.

Note

sslrootcert a une valeur par défaut de $HOME/.postgresql/root.crt pour l’utilisateur du système client qui établit la connexion. Si vous placez votre certificat CA racine à cet emplacement, vous n’avez pas besoin de spécifier le paramètre sslrootcert de votre connexion.

Voici comment ces deux valeurs sslmode fonctionnent :

  • verify-ca : Vérifie que le serveur est fiable en s’assurant qu’il a été signé par la paire de certificats CA racine à l’aide du certificat public CA racine actuel.

  • verify-full : Effectue la vérification verify-ca et vérifie en outre que le nom d’hôte du serveur correspond à un nom stocké dans le certificat du serveur. Snowflake garantit que cela fonctionnera pour tous les certificats de serveur signés avec la CA racine de votre compte.

La connexion SSL échoue si le certificat du serveur ne peut pas être vérifié selon le paramètre sslmode spécifié. Snowflake recommande verify-full dans la plupart des environnements sensibles à la sécurité.

Avertissement

S’il existe un certificat CA racine, alors sslmode=require effectue la même vérification que sslmode=verify-ca. La présence d’un certificat CA racine sur $HOME/.postgresql/root.crt pour un serveur avec un certificat signé par une CA différente est une source courante d’erreurs de connexion SSL. Si cela se produit, vous pouvez simplement ajouter le texte de votre certificat CA racine Snowflake dans ce fichier, ou le placer à un autre endroit spécifié par le paramètre sslrootcert de a connexion.

Note

Pour une explication complète de la manière dont ces différents niveaux de configuration sslmode permettent de se prémunir contre les attaques MITM, consultez le chapitre PostgreSQL sur la protection fournie dans différents paramètres sslmode.