Réseau Snowflake Postgres¶
Par défaut, Snowflake Postgres provisionnera chaque nouvelle instance à l’intérieur d’un nouveau réseau privé dans la région Cloud que vous avez sélectionnée. Chaque réseau est distinct et privé des autres réseaux de la même région Cloud.
Par défaut, les instances Snowflake Postgres n’autorisent pas les connexions entrantes. Le trafic vers/depuis vos instances Snowflake Postgres peut être activé de l’une ou l’autre de ces deux manières :
Joignez une politique réseau contenant des règles réseau d’entrée et/ou de sortie Postgres. Cette option est disponible pour tous les comptes.
Configurez les connexions Private Link de/vers les réseaux privés des fournisseurs Cloud. Cette option est disponible pour les comptes de l’édition Business Critical ou supérieurs.
Politiques et règles réseau de Snowflake Postgres¶
Les politiques et règles réseau pour les instances de Snowflake Postgres fonctionnent de la même manière que pour les autres ressources de Snowflake, à quelques différences près :
Les politiques réseau n’ont pas besoin d’être activées pour être utilisées avec les instances Snowflake Postgres de la même manière qu’avec les comptes Snowflake, les utilisateurs et les autres intégrations de sécurité. Les politiques réseau pour les instances Snowflake Postgres sont rattachées aux instances directement au moment de la création de l’instance. Les politiques réseau des instances existantes peuvent être modifiées.
Les instances Snowflake Postgres n’utilisent que les propriétés ALLOWED_NETWORK_RULE_LIST et BLOCKED_NETWORK_RULE_LIST des politiques réseau. Le propriétés BLOCKED_IP_LIST et ALLOWED_IP_LIST sont ignorées.
Les règles de réseau pour les instances Snowflake Postgres doivent utiliser les modes Postgres Ingress (entrée) ou Postgres Egress (sortie). Les règles utilisant ces modes sont actuellement limitées au type IPv4.
Les règles de réseau utilisant des modes autres que Postgres Ingress ou Postgres Egress dans une politique réseau sont ignorées par les instances Snowflake Postgres qui les utilisent.
Privilèges¶
Pour créer de nouvelles politiques réseau, les utilisateurs Snowflake doivent disposer du privilège CREATE NETWORK POLICY ON ACCOUNT.
Pour créer de nouvelles règles réseau, les utilisateurs Snowflake doivent disposer du privilège CREATE NETWORK RULE ON SCHEMA.
Pour associer une stratégie réseau existante à une instance Snowflake, les utilisateurs Snowflake doivent être propriétaires de la politique réseau ou le propriétaire de la politique doit GRANT l’utilisation de celle-ci.
Exemple de politique et de règles réseau Snowflake Postgres¶
Disons que :
Vous souhaitez autoriser le trafic entrant vers une nouvelle instance Postgres à partir de votre bureau, et l’adresse IP publique du routeur du réseau de votre bureau est
23.206.171.35.Vous souhaitez également autoriser le trafic sortant de la nouvelle instance Postgres vers le serveur Postgres de votre bureau via une connexion wrapper de données privées Postgres.
Pour cela, nous allons créer une nouvelle politique avec à la fois une règle réseau Postgres Ingress et une règle réseau Postgres Egress.
Créer deux nouvelles règles réseau. Utilisez
23.206.171.35/32comme seul identificateur réseau pour les deux et utilisez « Postgres Ingress » comme Mode pour un et « sortie Postgres » pour Mode de l’autre.Créez une nouvelle politique réseau. avec les deux nouvelles règles incluses dans sa liste Allowed.
Dans le menu de navigation, sélectionnez Postgres.
Sélectionnez + Create.
Lorsque vous sélectionnez les détails de configuration de votre instance souhaités, sélectionnez votre nouvelle politique dans le menu de sélection Network policy. Dans l’image ci-dessous, nous avons sélectionné la politique que nous avons nommée
OFFICE POLICY EXAMPLE.
-- Create the ingress rule
CREATE NETWORK RULE PG_INGRESS_FROM_OFFICE
TYPE = IPV4
VALUE_LIST = ('23.206.171.35/32')
MODE = POSTGRES_INGRESS;
-- Create the egress rule
CREATE NETWORK RULE PG_EGRESS_TO_OFFICE
TYPE = IPV4
VALUE_LIST = ('23.206.171.35/32')
MODE = POSTGRES_EGRESS;
-- Create a new policy using both rules in its allowed list
CREATE NETWORK POLICY "OFFICE POLICY EXAMPLE"
ALLOWED_NETWORK_RULE_LIST = ('PG_INGRESS_FROM_OFFICE', 'PG_EGRESS_TO_OFFICE')
COMMENT = 'Traffic to/from the office.';
-- Create a new Snowflake Postgres instance that uses the new policy
CREATE POSTGRES INSTANCE SNOWFLAKE_POSTGRES_DEMO
COMPUTE_FAMILY = 'STANDARD_L'
STORAGE_SIZE_GB = 50
AUTHENTICATION_AUTHORITY = POSTGRES
POSTGRES_VERSION = 17
NETWORK_POLICY = '"OFFICE POLICY EXAMPLE"';
Création de règles d’entrée lors de la création de l’instance¶
Au lieu de créer votre politique réseau et vos règles avant de créer votre instance Snowflake Postgres, vous pouvez créer une politique avec des règles d’entrée Postgres lors de la création d’instances Snowflake Postgres via Snowsight.
Dans le menu de navigation, sélectionnez Postgres.
Dans la page Postgres Instances, sélectionnez le bouton Create en haut à droite.
Choisissez votre configuration d’instance, mais laissez le choix Network policy vide.
Après avoir sélectionné Create, une nouvelle boîte de dialogue affiche les identifiants de connexion</user-guide/snowflake-postgres/connecting-to-snowflakepg> de l’utilisateur ``snowflake_admin` ` Postgres`. Après avoir enregistré ces identifiants de connexion dans un endroit sûr, sélectionnez. Continue to network settings.
Dans la boîte de dialogue Network Settings (illustrée ci-dessous) entrez l’adresse IP et/ou les valeurs CIDR pour lesquelles vous souhaitez créer des règles d’entrée Postgres. Pour cela, appuyez sur la touche Entrée pour ajouter chacune d’entre elles à la liste.
Développez la section Details pour modifier les noms de vos nouvelles règles et/ou politiques réseau, si nécessaire.
Sélectionnez Save pour créer votre nouvelle politique réseau d’entrée Postgres et la rattacher automatiquement à votre instance une fois qu’elle est active.
Private Link de Snowflake Postgres¶
Private Link pour les instances Snowflake Postgres est disponible pour les comptes de l’édition Business Critical et les éditions supérieures.
Pour activer Private Link pour une instance Snowflake Postgres, commencez par suivre les instructions pour l’activer entre le compte du fournisseur Cloud et votre compte Snowflake :
Privilèges¶
Pour activer Private Link pour les instances Snowflake Postgres, les utilisateurs Snowflake doivent disposer des privilèges suivants
MANAGE POSTGRES PRIVATE CONNECTIVITY ON ACCOUNT
OWNERSHIP ou MANAGE pour chaque instance Snowflake Postgres donnée.
Configuration de Private Link pour les instances Snowflake Postgres¶
Une fois que vous avez activé Private Link entre le compte de fournisseur Cloud et votre compte Snowflake et que vous avez les privilèges requis, vous pouvez activer Private Link pour les instances Snowflake Postgres par instance comme suit.
Si vous n’avez pas l’intention de configurer de règles de politique réseau pour votre instance en plus de votre connexion Private Link, sélectionnez Private Link pour l’Network Security option dans la boîte de dialogue New instance. Si vous souhaitez configurer ou utiliser une politique réseau, sélectionnez Network policy et suivez les instructions précédentes sur les politiques réseau.
Une fois qu’une instance est active, vous pouvez activer Private Link pour celle-ci :
Dans le menu de navigation, sélectionnez Postgres, puis sélectionnez votre instance.
Dans le volet Instance details de l’instance, sélectionnez l’icône de modification dans la section Private Link.
Une boîte de dialogue de confirmation s’affiche pour vous demander de confirmer la configuration de Private Link pour votre fournisseur de services Cloud. Sélectionnez Enable. Notez que cette étape peut prendre jusqu’à 10 minutes.
Une fois Private Link actif pour votre instance Snowflake Postgres, vous pouvez établir de nouvelles connexions Private Link pour celle-ci :
Dans le menu de navigation, sélectionnez Postgres et sélectionnez votre instance pour voir sa page de détails.
Sélectionnez l’icône de modification dans la section Private Link à droite pour développer le volet Private Link (illustré ci-dessous).
Utiliser les affichés Service address pour effectuer une demande de connexion Private Link à partir du réseau privé sur le compte de fournisseur cloud.
Actualisez la page de détails de votre instance Snowflake Postgres. Le volet Private Link aura maintenant une nouvelle entrée de connexion pour votre demande, check mark (accepter) et x mark (rejeter), les options n’étant pas sélectionnées. Sélectionnez l’option check mark pour accepter.
Vous ne pouvez pas vous connecter à votre instance Snowflake Postgres à partir d’hôtes dans le réseau privé du fournisseur de services Cloud.
Vous pouvez activer Private Link pour une instance active avec Snowflake SQL comme suit :
ALTER POSTGRES INSTANCE <name> ENABLE PRIVATELINK;
Cette opération asynchrone peut prendre jusqu’à 10 minutes. Pour suivre son statut, vérifiez la valeur de l’privatelink_service_identifier renvoyé par DESCRIBE POSTGRES INSTANCE:
DESCRIBE POSTGRES INSTANCE <name>;
Le même privatelink_service_identifier est affiché pour l’entrée des instances dans la sortie de SHOW POSTGRES INSTANCES :
SHOW POSTGRES INSTANCES;
Quand cette colonne privatelink_service_identifier affiche une valeur nonNULL, vous pouvez utiliser cet identificateur pour effectuer une demande de connexion Private Link à partir du réseau privé sur le compte de fournisseur de services Cloud que vous avez activé pour les connexions Private Link à votre compte Snowflake.
Après avoir effectué cette demande de connexion à partir du réseau privé du compte de votre fournisseur Cloud, recherchez la demande pour l’instance Snowflake Postgres :
SHOW PRIVATELINK CONNECTIONS IN POSTGRES INSTANCE <name>;
La commande renvoie les colonnes suivantes :
endpointconnection_idstatus
Votre demande de connexion sera une entrée avec le Private Link du réseau privé de votre fournisseur Cloud ayant la valeur endpoint et la valeur status indiquant pending.
Vous pouvez accepter des demandes de connexion Private Link en attente en exécutant une commande ALTER POSTGRES INSTANCE :
ALTER POSTGRES INSTANCE [IF EXISTS] <name> AUTHORIZE PRIVATELINK CONNECTIONS = ('<connection_id' [ , ... ]);
Vous pouvez révoquer des demandes de connexion Private Link en attente ou précédemment approuvées en exécutant cette commande :
ALTER POSTGRES INSTANCE [IF EXISTS] <name> REVOKE PRIVATELINK CONNECTIONS = ('<connection_id' [ , ... ]);