Vue d’ensemble de l’authentification Snowflake

Les sections suivantes décrivent les méthodes d’authentification que les utilisateurs et les applications peuvent utiliser pour accéder à Snowflake. Elles fournissent également des considérations clés pour vous aider à sélectionner la meilleure méthode d’authentification pour votre cas d’utilisation.

Choix de l’authentification pour Snowsight

Snowsight est l’interface utilisateur de Snowflake. Cette section donne un aperçu des méthodes d’authentification que les utilisateurs peuvent utiliser pour se connecter à Snowsight, suivi d’une comparaison des méthodes.

Note

Lorsque vous créez un objet utilisateur Snowflake pour une personne qui s’authentifie auprès de Snowsight, spécifiez TYPE = PERSON. Pour plus d’informations sur les types d’utilisateurs, voir Types d’utilisateurs.

Connexion unique (SSO)

Avec la SSO pour Snowsight, les utilisateurs s’authentifient auprès d’un fournisseur d’identité tiers (IdP) plutôt que de s’authentifier directement auprès de Snowflake. Lorsqu’un utilisateur accède à Snowsight, la page de connexion comprend une option pour s’authentifier auprès du IdP au lieu d’un mot de passe géré par Snowflake. Le IdP confirme l’identité de l’utilisateur, puis envoie un Security Assertion Markup Language (SAML) vers Snowflake. Parce que Snowflake et le IdP ont une relation de confiance préalablement établie, Snowflake accepte l’assertion comme preuve de l’identité de l’utilisateur et permet à l’utilisateur d’accéder à Snowsight.

Certaines organisations utilisent le même IdP pour fournir une expérience SSO pour toutes les applications de l’organisation. Ces organisations peuvent simplement ajouter Snowflake comme nouveau fournisseur de services (SP) pour permettre à ses employés d’utiliser le IdP pour accéder à Snowsight.

Nom d’utilisateur et mot de passe avec authentification multifactorielle (MFA)

L’authentification par mot de passe permet aux utilisateurs d’accéder à Snowsight en saisissant une chaîne de caractères conforme aux exigences appliquées par une politique de mot de passe. Pour renforcer la sécurité de cette méthode d’authentification, Snowflake nécessite la MFA pour tous les utilisateurs de mots de passe. Avec la MFA, l’utilisateur saisit un mot de passe, puis utilise un deuxième facteur d’authentification pour confirmer son identité. Par exemple, un utilisateur peut utiliser une clé d’accès stockée sur son ordinateur comme deuxième facteur d’authentification.

Le tableau suivant compare les méthodes d’authentification que les utilisateurs peuvent utiliser pour se connecter à Snowsight :

Méthode

Avantages

Défis

Connexion unique . Option préférée

Permet à une organisation de gérer de manière centralisée l’authentification. Un utilisateur s’authentifie avec le même IdP pour toutes les applications de l’organisation, pas seulement Snowflake.

Idéal pour les organisations qui utilisent déjà un IdP pour fournir la SSO aux applications.

Nécessite la configuration d’un IdP tiers.

Mot de passe avec MFA

Mise en œuvre simple.

Si les mots de passe sont gérés par Snowflake, une organisation doit répéter la configuration de l’authentification pour toutes ses applications.

Aperçu des méthodes d’authentification pour les applications

Dans ce chapitre, le terme application fait référence à tout ce qui accède aux données Snowflake de manière programmatique plutôt que via l’interface utilisateur Snowsight. Cette définition comprend les applications Web personnalisées, les applications multi-locataires tierces, les applications pour bureau, les scripts locaux et les charges de travail dans le Cloud.

Lorsque l’on examine les méthodes d’authentification disponibles, cette rubrique fait la distinction entre deux types d’applications :

  • Une application interactive qui interagit avec une personne et s’authentifie auprès de Snowflake au nom de cette personne ; par exemple, un outil de Business Intelligence (BI) qui interagit avec les analystes.

  • Une application de service à service qui n’interagit pas avec une personne et qui possède une méthode d’authentification dédiée au service ; par exemple, un pipeline CI/CD.

Fédération d’identité de charge de travail (WIF)

La fédération d’identité de charge de travail est une forme d’authentification sans secret et est hautement sécurisée car elle exploite les identifiants à courte durée de vie qui sont déjà disponibles pour les charges de travail Cloud. Cela élimine le besoin de gérer et de faire pivoter les secrets.

Lorsqu’une charge de travail s’exécute sur un fournisseur Cloud comme AWS EC2, les VMs Microsoft Azure, ou les VMs Google Cloud, la fédération d’identité de charge de travail permet à la charge de travail de s’authentifier auprès de Snowflake en utilisant le mécanisme d’identité natif du fournisseur Cloud. Par exemple, une charge de travail s’exécutant sur AWS EC2 peut obtenir une attestation, c’est-à-dire une preuve de son identité, auprès d’un rôle de Gestion des identités et des accès (IAM) AWS associé à la charge de travail. Le pilote de la charge de travail obtient l’attestation auprès du mécanisme d’identité natif, puis l’envoie à Snowflake pour authentifier la charge de travail.

La fédération d’identité de charge de travail permet également des charges de travail tierces telles que les actions GitHub et les charges de travail s’exécutant dans Kubernetes de s’authentifier auprès d’un fournisseur d’identité (IdP) prenant en charge OpenID Connect, dans un processus appelé fédération OIDC. Snowflake accepte les jetons ID générés par le IdP comme preuve de l’identité de la charge de travail.

Adapté pour :

  • Les applications de service à service

OAuth utilisant Snowflake comme serveur d’autorisation (Snowflake OAuth)

Snowflake OAuth assure la sécurité du OAuth Authorization Framework 2.0. Avec Snowflake OAuth, Snowflake est à la fois le serveur d’autorisation qui authentifie un utilisateur Snowflake et le serveur de ressources qui accepte un jeton d’accès du client pour accéder aux données de cet utilisateur. Snowflake OAuth permet au client d’utiliser le type d’accord de code d’autorisation.

Comme Snowflake est le serveur d’autorisation, l’utilisateur qui interagit avec l’application utilise l’interface utilisateur de Snowflake pour s’authentifier. Vous pouvez configurer Snowflake pour authentifier l’utilisateur avec une authentification unique (SSO) ou un mot de passe. Pour plus d’informations sur les avantages et les inconvénients de la SSO et de l’authentification par mot de passe, voir Choix de l’authentification pour Snowsight.

Adapté pour :

  • Applications interactives

OAuth utilisant un serveur d’autorisation tiers (External OAuth)

External OAuth offre également la sécurité de OAuth 2.0, mais un IdP tiers, et non Snowflake, agit en tant que serveur d’autorisation. Une application obtient un jeton d’accès du IdP tiers, puis utilise le jeton pour accéder à Snowflake en tant que ressource.

Une application de service à service pourrait utiliser le type d’accord d’informations de connexion du client pour accéder à ses propres données Snowflake. Une application interactive pourrait utiliser le type d’accord de code d’autorisation pour accéder aux données Snowflake d’une personne qui utilise l’application.

Adapté pour :

  • Applications interactives

  • Les applications de service à service

Authentification par paire de clés

L’authentification par paire de clés s’appuie sur une paire de clés cryptographiques : une clé privée et une clé publique. La clé privée est un secret détenu par l’application, tandis que la clé publique est associée à un objet utilisateur Snowflake. Lors de l’authentification, l’application envoie la preuve qu’elle possède la clé privée, et Snowflake répond en vérifiant que la clé privée correspond à la clé publique associée à l’utilisateur Snowflake. Cette méthode d’authentification élimine la nécessité de transmettre ou de stocker des mots de passe, réduisant ainsi le risque de vol d’identifiants.

Adapté pour :

  • Les applications de service à service

Bien que cela ne soit pas le cas d’utilisation standard, l’authentification par paire de clés peut également être utilisée pour les applications interactives.

Jeton d’accès programmatiques (PATs)

Un PAT est un identifiant limité dans le temps qui permet aux applications de s’authentifier sans mot de passe. Un PAT peut être utilisé comme remplacement direct d’un mot de passe à facteur unique dans les scénarios où la MFA ou les méthodes d’authentification plus sécurisées ne fonctionneront pas. Un PAT est plus sûr qu’un mot de passe, car il s’agit d’un identifiant de courte durée, qui nécessite que vous mettiez en œuvre des mesures de sécurité supplémentaires et qui peut être limité à un rôle de contrôle d’accès spécifique.

Adapté pour :

  • Applications interactives

  • Les applications de service à service

Choix de l’authentification pour les applications interactives

Une application interactive est une application qui interagit avec une personne et s’authentifie auprès de Snowflake au nom de cette personne. Le tableau suivant présente les avantages et les inconvénients associés aux méthodes d’authentification que vous pouvez utiliser pour les applications interactives. Pour un aperçu de ces méthodes d’authentification, voir Aperçu des méthodes d’authentification pour les applications.

Note

Lorsque vous créez des objets utilisateur Snowflake pour les personnes qui utilisent une application interactive, spécifiez TYPE = PERSON. Pour plus d’informations sur les types d’utilisateurs, voir Types d’utilisateurs.

Méthode

Avantages

Défis

Snowflake OAuth . Option forte

  • Peut être plus simple à mettre en œuvre qu’External OAuth.

  • Les applications locales, comme un script s’exécutant dans VS Code, peuvent utiliser une implémentation intégrée de Snowflake OAuth, qui offre la sécurité de OAuth sans configuration administrative. En savoir plus

  • Évite les limitations du pilote.

  • L’utilisateur peut autoriser l’accès avec une authentification unique (SSO), ce qui leur permet d’utiliser les méthodes d’authentification sécurisées d’un IdP tiers.

Aucun.

External OAuth . Option forte

  • Si le IdP prend en charge cette option, la personne utilisant l’application peut utiliser une forme d’authentification sans secret.

  • Idéal pour les organisations qui utilisent déjà un IdP tiers comme serveur d’autorisation pour leurs applications.

Nécessite une expertise dans la configuration d’un IdP tiers en tant que serveur d’autorisation.

Jeton d’accès programmatique (PAT)

  • Remplacement facile des mots de passe à un seul facteur.

  • Identifiants générés par Snowflake, de sorte qu’ils ne puissent pas être réutilisés en dehors de Snowflake.

  • Peuvent être associés à un rôle de contrôle d’accès spécifique pour limiter les dommages s’il sont compromis.

  • Snowflake exige que vous mettiez en œuvre des mesures de sécurité supplémentaires pour atténuer les risques liés à l’utilisation de secrets à longue durée de vie.

  • Le programme d’analyse des secrets GitHub détecte automatiquement les fuites de PATs Snowflake dans les référentiels publics, les désactive et notifie les administrateurs de Snowflake.

  • Contrairement à la paire de clés, le secret doit être sécurisé à la fois sur le client et sur le serveur.

  • Contrairement à la paire de clés, le secret doit être envoyé dans la requête à Snowflake, ce qui augmente l’exposition.

  • En cas de compromis, toute personne en ayant possession peut se faire passer pour l’application.

  • Les risques de sécurité associés aux identifiants de longue durée doivent être atténués par d’autres mesures de sécurité telles qu’une stratégie de stockage et de rotation robuste.

  • Parce que des politiques réseau sont nécessaires, si vous avez une application Cloud multi-locataire, vous devez fournir à vos clients vos adresses IP afin qu’elles puissent créer une politique réseau qui autorise ces plages d’adresses.

  • Le champ d’entrée qui accepte les PATs doit comporter au minimum 256 caractères.

Paire de clés

  • Méthode d’authentification flexible.

  • Les identifiants sans mot de passe qui ne sont pas exposés dans une requête.

  • Non utilisés généralement pour les applications interactives.

  • Les risques de sécurité associés aux identifiants de longue durée doivent être atténués par d’autres mesures de sécurité telles que les politiques réseau et une stratégie de stockage et de rotation robuste. Contrairement aux jetons d’accès programmatiques, la paire de clés ne nécessite pas de mesures supplémentaires, ce qui peut entraîner une authentification moins sécurisée.

Choix de l’authentification pour les applications de service à service

Une application de service à service n’interagit pas avec une personne et possède une méthode d’authentification dédiée pour le service. Le tableau suivant présente les avantages et les inconvénients associés aux méthodes d’authentification que vous pouvez utiliser pour les applications de service à service. Pour un aperçu de ces méthodes d’authentification, voir Aperçu des méthodes d’authentification pour les applications.

Note

Lorsque vous créez un objet utilisateur Snowflake pour une application de service à service, spécifiez TYPE = SERVICE. Pour plus d’informations sur les types d’utilisateurs, voir Types d’utilisateurs.

Méthode

Avantages

Défis

Fédération d’identité de charge de travail . Option préférée

  • Authentification sans secret.

  • Les administrateurs n’ont pas besoin de sécuriser en permanence les clients et de faire pivoter les IDs et secrets clients.

Aucun.

External OAuth . Option forte

  • Si le IdP la prend en charge, l’application peut utiliser une forme d’authentification sans secret.

  • Idéal pour les organisations qui utilisent déjà un IdP tiers comme serveur d’autorisation pour leurs applications.

Nécessite une expertise dans la configuration d’un IdP tiers en tant que serveur d’autorisation.

Paire de clés

  • Méthode d’authentification flexible.

  • Les identifiants sans mot de passe qui ne sont pas exposés dans une requête.

Les risques de sécurité associés aux identifiants de longue durée doivent être atténués par d’autres mesures de sécurité telles que les politiques réseau et une stratégie de stockage et de rotation robuste. Contrairement aux jetons d’accès programmatiques, la paire de clés ne nécessite pas de mesures supplémentaires, ce qui peut entraîner une authentification moins sécurisée.

Jeton d’accès programmatique (PAT)

  • Remplacement facile des mots de passe à un seul facteur.

  • Identifiants générés par Snowflake, de sorte qu’ils ne puissent pas être réutilisés en dehors de Snowflake.

  • Peuvent être associés à un rôle de contrôle d’accès spécifique pour limiter les dommages s’il sont compromis.

  • Snowflake exige que vous mettiez en œuvre des mesures de sécurité supplémentaires pour atténuer les risques liés à l’utilisation de secrets à longue durée de vie.

  • Le programme d’analyse des secrets GitHub détecte automatiquement les fuites de PATs Snowflake dans les référentiels publics, les désactive et notifie les administrateurs de Snowflake.

  • Contrairement à la paire de clés, le secret doit être sécurisé à la fois sur le client et sur le serveur.

  • Contrairement à la paire de clés, le secret doit être envoyé dans la requête à Snowflake, ce qui augmente l’exposition.

  • En cas de compromis, toute personne en ayant possession peut se faire passer pour l’application.

  • Les risques de sécurité associés aux identifiants de longue durée doivent être atténués par d’autres mesures de sécurité telles qu’une stratégie de stockage et de rotation robuste.