Utilisation de mots de passe

Cette rubrique décrit comment un administrateur peut configurer les exigences en matière de mot de passe et réinitialiser les mots de passe des utilisateurs.

Politiques de mots de passe

Une politique de mot de passe spécifie les exigences à respecter pour créer et réinitialiser un mot de passe afin de s’authentifier auprès de Snowflake.

Snowflake fournit deux options pour les politiques de mot de passe :

  • Une politique de mot de passe intégrée pour faciliter le processus de mise en service initial de l’utilisateur.

  • Un objet de politique de mot de passe au niveau du schéma qui peut être défini au niveau du compte Snowflake, d’un utilisateur individuel ou des deux, selon les cas d’utilisation et les besoins de l’administrateur utilisateur.

Bonnes pratiques pour les politiques de mot de passe et les mots de passe

Snowflake recommande les bonnes pratiques suivantes concernant les mots de passe et les politiques de mots de passe :

Créer et appliquer la politique de mot de passe personnalisée

L’objet de politique de mot de passe est appliqué une fois que la politique de mot de passe est définie sur un compte ou un utilisateur.

Définissez ces propriétés sur des valeurs en fonction de vos besoins en matière de sécurité interne. Pour plus de détails, voir Étape 4 : créer une politique de mot de passe (dans ce chapitre) :

  • PASSWORD_HISTORY pour s’assurer que les utilisateurs ne peuvent pas réutiliser les mots de passe trop fréquemment et pour aider à prévenir les attaques par force brute visant à déterminer le mot de passe d’un utilisateur.

  • PASSWORD_MIN_AGE_DAYS pour demander à l’utilisateur d’utiliser le nouveau mot de passe. Une valeur de 0 n’est pas recommandée, car l’utilisateur peut modifier le mot de passe pour épuiser l’historique des mots de passe et réutiliser la valeur du mot de passe d’origine trop tôt.

Pour exiger que l’utilisateur modifie son mot de passe afin de respecter la politique de mot de passe lors de sa première ou prochaine connexion à Snowflake, définissez la propriété MUST_CHANGE_PASSWORD de l’utilisateur sur TRUE en utilisant une commande ALTER USER.

Pour plus de détails, voir Étape 6 : exiger un changement de mot de passe (dans ce chapitre).

Exiger des mots de passe forts

Définissez une politique de mot de passe au niveau du compte pour exiger des mots de passe forts.

Un mot de passe fort comporte au moins 8 caractères et comprend une combinaison de lettres majuscules et minuscules, de caractères spéciaux (par exemple, ! et *) et de chiffres.

MFA

Utilisez l’authentification multifactorielle (MFA) pour plus de sécurité.

Utilisation de SCIM

Vous pouvez définir un mot de passe pour que l’utilisateur puisse accéder à Snowflake dans une demande SCIM API. Les administrateurs et les administrateurs d’utilisateurs SCIM doivent choisir de gérer le mot de passe de l’utilisateur pour accéder à Snowflake dans votre fournisseur d’identité ou en utilisant une politique de mot de passe dans Snowflake.

Actuellement, les utilisateurs mis en service dans Snowflake avec SCIM doivent avoir un mot de passe conforme à la politique de mot de passe Snowflake par défaut. Cette exigence peut être contournée si vous choisissez d’utiliser cette fonction de politique de mot de passe.

Pour contourner l’exigence de la politique de mot de passe par défaut, suivez les instructions de la section Utilisation des politiques de mots de passe (dans cette rubrique).

Surveillance des mots de passe

Pour surveiller les mots de passe :

  • Interrogez la vue USERS de Snowflake Account Usage pour déterminer si la valeur de la colonne HAS_PASSWORD renvoie TRUE pour un utilisateur donné.

  • Interrogez la vue LOGIN_HISTORY Snowflake Account Usage et évaluez la colonne FIRST_AUTHENTICATION_FACTOR. Si un utilisateur n’a pas besoin d’un mot de passe pour accéder à Snowflake, exécutez une commande ALTER USER pour définir la propriété password sur NULL.

Politique de mot de passe fournie par Snowflake

Un mot de passe peut correspondre à n’importe quelle chaîne sensible à la casse jusqu’à 256 caractères, y compris des espaces vides et des caractères spéciaux (c’est-à-dire, non alphanumériques), tels que des points d’exclamation (!), des signes de pourcentage (%) et des astérisques (*).

Lors de la création de l’utilisateur, il est possible de définir un mot de passe faible pour l’utilisateur qui ne répond pas aux exigences minimales décrites ci-dessous (par exemple 'test12345'). Cette fonctionnalité permet aux administrateurs d’utiliser des mots de passe génériques pour l’utilisateur pendant le processus de création. Si ce choix est fait, Snowflake recommande fortement de définir la propriété MUST_CHANGE_PASSWORD sur TRUE pour obliger les utilisateurs à modifier leur mot de passe lors de leur prochaine connexion (y compris lors de la première la connexion) à Snowflake.

De plus, Snowflake permet de créer des utilisateurs sans mot de passe initial pour faciliter les méthodes d’entreprise pour lesquelles les nouveaux utilisateurs ne sont pas autorisés à se connecter au système. Si cela se produit, la valeur de la propriété PASSWORD de l’utilisateur sera NULL. Cependant, en règle générale, Snowflake s’attend à ce que les utilisateurs soient créés avec des mots de passe initiaux.

Dans le cadre de la réinitialisation d’un mot de passe existant (par exemple, remplacer 'test12345' par 'q@-*DaC2yjZoq3Re4JYX'), Snowflake applique la politique de mot de passe suivante comme exigence minimale lors de l’utilisation de la commande ALTER USER et de l’interface Web :

  • Doit comporter au moins huit caractères.

  • Doit contenir au moins un chiffre.

  • Doit contenir au moins une lettre majuscule et une lettre minuscule.

Snowflake recommande fortement de respecter les consignes suivantes pour créer les mots de passe les plus sûrs possible :

  • Créez un mot de passe unique pour Snowflake (autrement dit, ne réutilisez pas les mots de passe d’autres systèmes ou comptes).

  • Utilisez plus de 8 caractères.

  • Incluez plusieurs lettres, chiffres et caractères spéciaux, y compris des espaces vides, en majuscules et en minuscules.

  • N’utilisez pas de mots de passe, de noms, de numéros ou de dates faciles à deviner.

Enfin, pour configurer le plus haut niveau de sécurité pour la connexion des utilisateurs, Snowflake recommande que les utilisateurs s’inscrivent à MFA.

Politique de mot de passe personnalisée pour le compte et les utilisateurs

La politique de mot de passe personnalisée est un objet de niveau schéma qui spécifie les exigences à respecter pour créer et réinitialiser un mot de passe afin de s’authentifier auprès de Snowflake, y compris le nombre de tentatives pour saisir le mot de passe avec succès et le nombre de minutes avant qu’un mot de passe puisse être retenté (c’est-à-dire le temps de « verrouillage »).

Les exigences de la politique de mot de passe pour un mot de passe comprennent des lettres majuscules ou minuscules, des caractères spéciaux, des chiffres et une longueur de mot de passe à respecter afin de répondre aux exigences de sécurité pour que les utilisateurs et les clients s’authentifient auprès de Snowflake. Les politiques de mots de passe qui exigent des mots de passe forts aident à respecter les consignes et les réglementations en matière de sécurité.

Snowflake prend en charge la définition d’une politique de mot de passe pour votre compte Snowflake et pour les utilisateurs individuels. Une seule politique de mot de passe peut être définie à tout moment pour votre compte Snowflake ou pour un utilisateur. Si une politique de mot de passe existe pour le compte Snowflake et qu’une autre politique de mot de passe est définie pour un utilisateur du même compte Snowflake, la politique de mot de passe au niveau de l’utilisateur a la priorité sur la politique de mot de passe au niveau du compte.

La politique de mot de passe s’applique aux nouveaux mots de passe définis dans votre compte Snowflake. Pour s’assurer que les utilisateurs ayant des mots de passe existants répondent aux exigences de la politique de mot de passe, demandez aux utilisateurs de changer leur mot de passe lors de leur prochaine connexion à Snowflake, comme indiqué dans Étape 6 : exiger un changement de mot de passe (dans cette rubrique).

Note

La plupart des modifications de propriété de politique de mot de passe prennent effet la prochaine fois qu’un utilisateur modifie son mot de passe. Par exemple, si vous modifiez la propriété PASSWORD_MAX_LENGTH de 10 à 16 pour obliger l’utilisateur à utiliser un mot de passe plus long, l’utilisateur doit alors se conformer à la modification de politique de mot de passe chaque fois qu’il modifie son mot de passe. Vous pouvez définir la propriété utilisateur MUST_CHANGE_PASSWORD sur TRUE avec une instruction ALTER USER pour demander à l’utilisateur de modifier son mot de passe lors de sa prochaine connexion à Snowflake.

Cependant, certaines modifications de propriété de politique de mot de passe prennent effet lors de la prochaine connexion, car Snowflake n’oblige pas l’utilisateur à modifier son mot de passe dans sa session en cours :

  • PASSWORD_MAX_AGE_DAYS = integer

  • PASSWORD_MAX_RETRIES = integer

  • PASSWORD_LOCKOUT_TIME_MINS = integer

Toute modification apportée à ces propriétés n’affecte pas la session en cours. Par exemple, une modification de la valeur de la propriété PASSWORD_MAX_AGE_DAYS n’entraîne pas l’expiration du mot de passe actuel de l’utilisateur. Cependant, lors de la prochaine connexion à Snowflake, l’utilisateur devra changer son mot de passe.

Considérations

  • Les autorisations futures de privilèges sur les politiques de mots de passe ne sont pas prises en charge.

    Comme solution de contournement, accordez le privilège APPLY PASSWORD POLICY à un rôle personnalisé pour lui permettre d’appliquer des politiques de mots de passe à un utilisateur ou au compte Snowflake.

  • La politique de mot de passe peut être gérée avec SQL en utilisant soit SnowSQL ou un pilote ou connecteur pris en charge, ou dans Worksheets en utilisant l”Classic Console ou Snowsight.

  • Réinitialiser ou changer un mot de passe :

    • Classic Console, SnowSQL et connecteurs et pilotes pris en charge.

      Lors de l’exécution d’une commande ALTER USER ou de l’utilisation de l”Classic Console pour réinitialiser ou modifier un mot de passe, Snowflake évalue la politique de mot de passe pour s’assurer que le nouveau mot de passe créé correspond aux exigences de la politique de mot de passe.

  • Suivi de l’utilisation de la politique de mot de passe :

    • Interrogez la vue PASSWORD_POLICIES Account Usage pour obtenir une ligne pour chaque politique de mot de passe dans votre compte Snowflake.

    • Utilisez la fonction de table Information Schema POLICY_REFERENCES pour renvoyer une ligne pour chaque utilisateur qui est affecté à la politique de mot de passe spécifiée et une ligne pour la politique de mot de passe affectée au compte Snowflake.

      Actuellement, seule la syntaxe suivante est prise en charge pour les politiques de mots de passe :

      POLICY_REFERENCES( POLICY_NAME => '<password_policy_name>' )
      
      Copy

      password_policy_name est le nom entièrement qualifié de la politique de mot de passe.

      Par exemple, exécutez la requête suivante pour renvoyer une ligne pour chaque utilisateur auquel est attribuée la politique de mot de passe nommée password_policy_prod_1, qui est stockée dans la base de données nommée my_db et le schéma nommé my_schema :

      SELECT *
      FROM TABLE(
          my_db.information_schema.policy_references(
            POLICY_NAME => 'my_db.my_schema.password_policy_prod_1'
        )
      );
      
      Copy

Contrôle d’accès pour les politiques de mot de passe

Les privilèges de contrôle d’accès suivants permettent aux utilisateurs de travailler avec les politiques de mot de passe :

Privilège

Type d’objet

Utilisation

CREATE PASSWORD POLICY

Schéma

Permet de créer une nouvelle politique de mot de passe.

APPLY PASSWORD POLICY

Compte, utilisateur

Permet d’appliquer une politique de mot de passe au niveau du compte ou de l’utilisateur.

OWNERSHIP

Politique de mot de passe

Donne un contrôle total de la politique de mot de passe. Nécessaire pour modifier la plupart des propriétés d’une politique de mot de passe.

Le tableau suivant résume la relation entre les opérations DDL de la politique de mot de passe et leurs privilèges nécessaires.

Fonctionnement

Privilège requis

Créer une politique de mot de passe

Un rôle avec le privilège CREATE PASSWORD POLICY sur le schéma pour stocker la politique de mot de passe.

Modifier une politique de mot de passe

Un rôle avec le privilège OWNERSHIP sur la politique de mot de passe.

Supprimer une politique de mot de passe

Un rôle avec le privilège OWNERSHIP sur la politique de mot de passe.

Décrire la politique de mot de passe

Un rôle avec le privilège OWNERSHIP sur la politique de mot de passe ou . le privilège APPLY PASSWORD POLICY sur le compte.

Afficher les politiques de mot de passe

Un rôle avec le privilège OWNERSHIP sur la politique de mot de passe ou . le privilège APPLY PASSWORD POLICY sur le compte.

Définir et annuler une politique de mot de passe

Un rôle avec le privilège APPLY PASSWORD POLICY sur le compte ou l’utilisateur.

Note

Le privilège USAGE relatif à la base de données et au schéma parents est exigé pour effectuer des opérations sur tout objet d’un schéma.

commandes DDL

Snowflake fournit les commandes DDL suivantes pour gérer les objets de politiques de mots de passe :

Utilisation des politiques de mot de passe

Les étapes suivantes constituent un guide représentatif pour définir et paramétrer une politique de mot de passe dans Snowflake.

Ces étapes supposent une approche de gestion centralisée dans laquelle un rôle personnalisé nommé policy_admin possède la politique de mot de passe (c’est-à-dire qu’il dispose du privilège OWNERSHIP sur la politique de mot de passe) et est chargé de définir la politique de mot de passe sur un compte ou un utilisateur (c’est-à-dire qu’il dispose du privilège global APPLY PASSWORD POLICY, comme indiqué dans l’étape 2).

Note

Pour définir une politique sur un compte, le rôle personnalisé policy_admin doit également disposer du privilège USAGE sur la base de données et le schéma qui contiennent la politique de mot de passe.

Pour plus d’informations, voir : Privilèges de contrôle d’accès

Étape 1 : créer le rôle personnalisé

Créez un rôle personnalisé qui permet de créer et de gérer les politiques de mots de passe. Dans cette rubrique, l’exemple de rôle personnalisé est nommé policy_admin, bien que le rôle puisse avoir n’importe quel nom approprié.

Si le rôle personnalisé existe déjà, passez à l’étape suivante.

Sinon, créez le rôle personnalisé policy_admin.

USE ROLE USERADMIN;

CREATE ROLE policy_admin;
Copy

Étape 2 : accorder des privilèges au rôle personnalisé

Si le rôle personnalisé policy_admin ne dispose pas déjà des privilèges suivants, accordez ces privilèges comme indiqué ci-dessous :

  • USAGE sur la base de données et le schéma qui contiendront la politique de mot de passe.

  • CREATE PASSWORD POLICY sur le schéma qui stockera la politique de mot de passe.

  • APPLY PASSWORD POLICY sur le compte.

USE ROLE SECURITYADMIN;

GRANT USAGE ON DATABASE security TO ROLE policy_admin;

GRANT USAGE ON SCHEMA security.policies TO ROLE policy_admin;

GRANT CREATE PASSWORD POLICY ON SCHEMA security.policies TO ROLE policy_admin;

GRANT APPLY PASSWORD POLICY ON ACCOUNT TO ROLE policy_admin;
Copy

Si vous décidez de définir une politique de mot de passe sur un utilisateur, accordez-lui le privilège APPLY PASSWORD POLICY. Par exemple, si le nom d’utilisateur est JSMITH, exécutez la commande suivante.

GRANT APPLY PASSWORD POLICY ON USER jsmith TO ROLE policy_admin;
Copy

Pour plus d’informations, voir Contrôle d’accès pour les politiques de mot de passe.

Étape 3 : accorder le rôle personnalisé à un utilisateur

Accordez le rôle personnalisé policy_admin aux utilisateurs responsables de la gestion des politiques de mot de passe.

USE ROLE SECURITYADMIN;
GRANT ROLE policy_admin TO USER jsmith;
Copy

Pour plus d’informations, voir Configuration du contrôle d’accès

Étape 4 : créer une politique de mot de passe

En utilisant le rôle personnalisé policy_admin, créez une politique de mot de passe nommée password_policy_prod_1. Pour plus d’informations, voir CREATE PASSWORD POLICY.

USE ROLE policy_admin;

USE SCHEMA security.policies;

CREATE PASSWORD POLICY PASSWORD_POLICY_PROD_1
    PASSWORD_MIN_LENGTH = 14
    PASSWORD_MAX_LENGTH = 24
    PASSWORD_MIN_UPPER_CASE_CHARS = 2
    PASSWORD_MIN_LOWER_CASE_CHARS = 2
    PASSWORD_MIN_NUMERIC_CHARS = 2
    PASSWORD_MIN_SPECIAL_CHARS = 2
    PASSWORD_MIN_AGE_DAYS = 1
    PASSWORD_MAX_AGE_DAYS = 999
    PASSWORD_MAX_RETRIES = 3
    PASSWORD_LOCKOUT_TIME_MINS = 30
    PASSWORD_HISTORY = 5
    COMMENT = 'production account password policy';
Copy

Note

La propriété PASSWORD_MAX_AGE_DAYS est définie sur la plus grande valeur, 999. Choisissez une valeur qui s’aligne sur vos directives internes. Pour plus de détails, voir CREATE PASSWORD POLICY.

Étape 5 : définir la politique de mot de passe sur le compte ou un utilisateur individuel

Définissez la politique sur un compte avec la commande ALTER ACCOUNT :

ALTER ACCOUNT SET PASSWORD POLICY security.policies.password_policy_prod_1;
Copy

Si vous décidez de créer une politique de mot de passe supplémentaire pour un ou plusieurs utilisateurs, définissez la politique de mot de passe de niveau utilisateur sur un utilisateur avec une commande ALTER USER :

ALTER USER jsmith SET PASSWORD POLICY security.policies.password_policy_user;
Copy

Important

Pour remplacer une politique de mot de passe déjà définie pour un compte ou un utilisateur, il faut d’abord la désactiver, puis définir la nouvelle politique de mot de passe pour le compte ou l’utilisateur. Par exemple :

ALTER ACCOUNT UNSET PASSWORD POLICY;

ALTER ACCOUNT SET PASSWORD POLICY security.policies.password_policy_prod_2;
Copy

Étape 6 : exiger un changement de mot de passe

Définissez la propriété MUST_CHANGE_PASSWORD sur TRUE pour les utilisateurs individuels en utilisant une instruction ALTER USER pour demander aux utilisateurs de changer leur mot de passe afin de respecter la politique de mot de passe lors de leur prochaine connexion à Snowflake.

ALTER USER JSMITH SET MUST_CHANGE_PASSWORD = true;
Copy

Réinitialisation du mot de passe d’un utilisateur

Les administrateurs peuvent modifier le mot de passe d’un utilisateur via les interfaces suivantes.

Utilisation de Snowsight

  1. Connectez-vous à Snowsight.

  2. Sélectionnez Admin » Users & Roles.

  3. Localisez l’utilisateur dont vous souhaitez modifier le mot de passe et sélectionnez Plus d'options » Reset Password.

  4. Saisissez un nouveau mot de passe pour l’utilisateur et confirmez le mot de passe.

  5. Sélectionnez Update.

À l’aide de la console classique

Note

Les utilisateurs ne peuvent changer leur propre mot de passe qu’avec Classic Console. Pour plus d’informations, voir Modification de votre mot de passe/changement de rôle (session)/déconnexion.

  1. Sélectionnez Account Onglet Compte » Users.

  2. Cliquez sur une ligne d’utilisateur pour la sélectionner, puis sélectionnez Reset Password. La boîte de dialogue Reset Password s’ouvre.

  3. Entrez le nouveau mot de passe pour l’utilisateur, et confirmez le mot de passe.

  4. Laissez la case Force Password Change cochée pour contraindre l’utilisateur à changer son mot de passe lors de sa prochaine connexion ; sinon, décochez la case.

  5. Sélectionnez Finish.

Utilisation de SQL

Utilisez la commande ALTER USER pour entrer le mot de passe d’un utilisateur. Par exemple :

ALTER USER janesmith SET PASSWORD = 'H8MZRqa8gEe/kvHzvJ+Giq94DuCYoQXmfbb$Xnt' MUST_CHANGE_PASSWORD = TRUE;
Copy

Il est également possible d’utiliser la syntaxe ALTER USER … RESET PASSWORD pour générer une URL à partager avec l’utilisateur. L’URL ouvre une page Web sur laquelle l’utilisateur peut entrer le nouveau mot de passe. Par exemple :

ALTER USER janesmith RESET PASSWORD;
Copy

Note

  • L’URL générée n’est valide que pour une seule utilisation et expire après 4 heures.

  • L’exécution de l’instruction ALTER USER … RESET PASSWORD n’invalide pas le mot de passe actuel. L’utilisateur peut continuer à utiliser l’ancien mot de passe jusqu’à ce que le nouveau mot de passe soit défini.

Utiliser Python

La méthode UserResource.create_or_alter de Snowflake Python APIs ne permet pas actuellement de modifier le password d’un utilisateur existant. Le paramètre du mot de passe ne peut être défini par cette méthode que lors de la création d’un nouvel utilisateur.

Réinitialisation du mot de passe d’un administrateur

Un administrateur de compte (c’est-à-dire un utilisateur ayant le rôle ACCOUNTADMIN) peut réinitialiser son propre mot de passe en utilisant la procédure décrite dans Réinitialisation du mot de passe d’un utilisateur.

Si un administrateur de compte est bloqué, un autre utilisateur ayant le rôle ACCOUNTADMIN peut réinitialiser le mot de passe de l’administrateur bloqué. Dans le cas où l’administrateur est bloqué et qu’il n’y a pas d’autre administrateur pour modifier le mot de passe, contactez le support Snowflake pour réinitialiser le mot de passe.

Désactivation de la fonctionnalité de modification du mot de passe pour les utilisateurs

Les utilisateurs changent leur mot de passe Snowflake dans l’interface Web en cliquant sur le menu déroulant situé dans le coin supérieur droit (à côté du nom de connexion) » Change Password. La boîte de dialogue Select a New Password s’ouvre. La boîte de dialogue accepte le mot de passe actuel et le nouveau.

Vous pouvez éventuellement désactiver la possibilité pour les utilisateurs de votre compte de modifier leur propre mot de passe. Les administrateurs de compte peuvent continuer à modifier les mots de passe des utilisateurs à l’aide de l’interface Web sous Account Onglet Compte » Users ou via SQL à l’aide de la commande ALTER USER.

Pour demander cette modification, contactez le support Snowflake.