Authentification par jeton Snowflake pour Snowflake Postgres

Snowflake permet aux utilisateurs de générer des jetons d’accès à courte durée de vie à utiliser pour se connecter aux instances Snowflake Postgres. Au niveau de l’instance, cela est appelé autorisation Snowflake et se fait à l’aide des trois étapes décrites ci-dessous :

  1. Activez l’autorisation Snowflake pour l’instance Snowflake Postgres.

  2. Sur l’instance Snowflake Postgres, créez des mappages entre les utilisateurs Postgres et les utilisateurs Snowflake.

  3. Les utilisateurs Snowflake mappés génèrent ensuite des jetons d’accès à courte durée de vie à utiliser lors de la connexion à l’instance Postgres de Snowflake.

Note

L’authentification par jeton Snowflake pour Snowflake Postgres est une fonctionnalité distincte des méthodes d’authentification Snowflake OAuth Snowflake et jetons d’accès programmatiques.

Activation et désactivation de l’autorisation Snowflake sur les instances Snowflake Postgres

Pour activer l’autorisation Snowflake au moment de la création de l’instance, activez l’option Snowflake auth dans la boîte de dialogue Snowflake Postgres New instance lors de la création d’une nouvelle instance.

Pour activer ou désactiver l’autorisation Snowflake pour une instance existante :

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

  2. Sélectionnez votre instance.

  3. Dans le menu en haut à droite Manage, sélectionnez l’option Enable Snowflake auth ou Disable Snowflake auth dans le menu déroulant Manage de l’instance sur sa page de détails dans le tableau de bord.

  4. Sélectionnez Enable ou Disable sur la boîte de dialogue de confirmation qui s’affiche.

Important

La désactivation de l’autorisation Snowflake sur une instance empêche uniquement les utilisateurs Snowflake de créer de nouveaux jetons d’accès à courte durée de vie. Les utilisateurs ayant des jetons valides peuvent toujours établir de nouvelles connexions jusqu’à l’expiration des jetons, et les connexions existantes persisteront.

Après avoir désactivé l’autorisation Snowflake, les utilisateurs Postgres mappés aux utilisateurs Snowflake ne pourront pas utiliser l’authentification Postgres standard tant que leurs mappages n’auront pas été supprimés comme décrit dans la section Création de mappages entre les utilisateurs Postgres et les utilisateurs Snowflake ci-dessous.

Création de mappages entre les utilisateurs Postgres et les utilisateurs Snowflake

Pour créer un mappage entre un utilisateur Postgres et un utilisateur Snowflake, connectez-vous à votre instance Postgres avec l’utilisateur snowflake_admin et exécutez :

ALTER USER {postgres_user} SET snowflake_user = '{snowflake_user}';
Copy

Les noms {postgres_user} et {snowflake_user} fournis dans l’instruction ci-dessus seront lus comme insensibles à la casse. Si la sensibilité à la casse est nécessaire, mettez les noms entre guillemets doubles. Par exemple, pour mapper un utilisateur Postgres nommé Casey à un utilisateur Snowflake du même nom :

ALTER USER "Casey" SET snowflake_user = '"Casey"';
Copy

Pour supprimer un mappage entre un utilisateur Postgres et un utilisateur Snowflake, connectez-vous à votre instance Postgres avec l’utilisateur snowflake_admin et exécutez :

ALTER USER {postgres_user} RESET snowflake_user;
Copy

Pour voir les mappages existants entre les utilisateurs Postgres et les utilisateurs Snowflake, connectez-vous à votre instance Postgres avec l’utilisateur snowflake_admin et interrogez la vue SNOWFLAKE_AUTH.IDENTITY_MAPPING Vue Postgres.

Note

Les utilisateurs Postgres avec des mappages d’utilisateurs Snowflake peuvent uniquement se connecter avec des jetons d’accès à courte durée de vie générés. Ils ne peuvent pas se connecter avec un mot de passe Postgres, et leurs mots de passe Postgres ne peuvent pas être modifiés. Pour réactiver la fonctionnalité de connexion par mot de passe standard pour un utilisateur Postgres donné, vous devez supprimer son mappage vers un utilisateur Snowflake.

Création de jetons d’accès à courte durée de vie pour les utilisateurs Snowflake mappés

Les propriétaires d’instances Snowflake Postgres et les utilisateurs Snowflake avec le privilège USAGE accordé à une instance donnée peuvent créer eux-mêmes des mots de passe de jetons d’accès à courte durée de vie sur une base par instance pour les instances qui ont l’autorisation Snowflake activée selon les instructions ci-dessus dans Activation et désactivation de l’autorisation Snowflake sur les instances Snowflake Postgres.

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

  2. Sélectionnez votre instance.

  3. Dans le menu Manage en haut à droite, sélectionnez Regenerate token.

  4. Dans la boîte de dialogue Regenerate token qui s’affiche, saisissez le nom d’un utilisateur Postgres qui a été mappé à votre utilisateur Snowflake, puis sélectionnez Acknowledge & continue.

  5. Copiez le jeton d’accès à courte durée de vie ou l’URI Postgres à utiliser pour établir de nouvelles connexions à l’instance Snowflake Postgres dans les 15 prochaines minutes.

SNOWFLAKE_AUTH.IDENTITY_MAPPING Vue Postgres

Cette vue Snowflake Postgres peut être utilisée pour interroger une liste de tous les mappages entre les utilisateurs Postgres et les utilisateurs Snowflake sur l’instance.

Note

Cette vue ne peut être interrogée qu’à l’intérieur des instances Snowflake Postgres et ne peut pas être interrogée directement à partir de Snowflake.

Colonnes

Nom de la colonne

Type de données

Description

postgres_role

name

Nom de l’utilisateur Postgres mappé

snowflake_identity

text

Identité de l’utilisateur Snowflake sous la forme USER:#, où # est la valeur user_id de l’utilisateur mappé Snowflake dans la vue Vue USERS.