Gérer les utilisateurs et l’accès aux salles blanches¶
Vue d’ensemble¶
Cette rubrique décrit comment un administrateur de compte gère l’accès des utilisateurs à l’UI et à l’API des salles blanches dans leur compte.
L’accès à l’UI et l’accès à l’API des salles blanches sont accordés séparément. Les salles blanches définissent plusieurs rôles d’application qui permettent d’accéder à l’API et à diverses sous-sections de l’UI. L’administrateur du compte crée un rôle personnalisé, accorde les rôles d’application souhaités pour permettre un accès précis à l’UI et à l’API, puis attribue le rôle à différents utilisateurs de ce compte.
Cette stratégie utilise le modèle de contrôle d’accès basé sur les rôles (RBAC) de Snowflake pour déléguer des privilèges de manière appropriée aux utilisateurs de salle blanche et à leurs collaborateurs dans leur compte. Pour plus d’informations sur RBAC, voir Aperçu du contrôle d’accès. Pour voir quels utilisateurs se sont vu attribuer un rôle spécifique, exécutez la commande SQL suivante :
SHOW GRANTS OF ROLE <role_name>;
Astuce
Cette rubrique utilise les termes suivants :
Utilisateurs de salle blanche : Utilisateurs ayant obtenu l’accès à l’UI ou à l’API des salles blanches dans leur compte Snowflake.
Collaborateurs de salle blanche : Consommateurs invités à rejoindre une salle blanche par le fournisseur de la salle blanche. Un collaborateur est également un utilisateur de salle blanche, c’est-à-dire qu’il doit avoir accès à l’UI ou à l’API des salles blanches pour pouvoir accepter une invitation et utiliser la salle blanche.
Gérer l’accès à l’UI des salles blanches¶
Pour accéder à l’UI des salles blanches, il faut disposer des rôles appropriés. Un utilisateur de salle blanche doit également se voir attribuer un entrepôt par défaut avec le privilège USAGE sur celui-ci.
Les rôles suivants accordent l’autorisation de gérer ou d’accéder à l’UI des salles blanches :
ACCOUNTADMIN : rôle utilisé pour installer ou désinstaller l’environnement des salles blanches. Ce rôle permet également d’accéder à la page Snowflake Admin dans l’UI des salles blanches. Les administrateurs de compte utilisent cette page pour gérer l’utilisateur du service et les fonctionnalités du compte telles que l’exécution automatique inter-Cloud, les tables externes et Iceberg, et l’enregistrement des ensembles de données pour les utilisateurs de l’UI. Ce rôle possède tous les privilèges d’UI des salles blanches ; un utilisateur avec le rôle ACCOUNTADMIN n’a pas besoin d’autre rôles d’application d’UI.
MANAGE_CLEANROOMS : rôle d’application qui permet de créer, de mettre à jour, de supprimer et d’installer des salles blanches, et de créer, de mettre à jour, de supprimer et d’exécuter des analyses dans l’UI des salles blanches.
MANAGE_DCR_PROFILE_AND_FEATURES : rôle d’application qui donne accès à la page Profile & Features dans la section Admin de l’UI, où vous pouvez gérer le profil de l’entreprise et contrôler les connecteurs tiers qui peuvent être utilisés dans les salles blanches.
MANAGE_DCR_CONNECTORS : rôle d’application qui donne accès à la page:ui:
Connectors
dans l’UI, où vous pouvez configurer des connecteurs tiers.MANAGE_DCR_COLLABORATORS : rôle d’application qui donne accès à la page Collaborators dans l’UI, où vous pouvez gérer la liste des collaborateurs approuvés disponibles pour les fournisseurs de salles blanches dans l’UI. Ce rôle ne contrôle pas la liste des collaborateurs disponibles pour les fournisseurs lors de l’utilisation de l’API; les utilisateurs de l’API peuvent inviter n’importe qui à collaborer. Pour plus d’informations, voir Gérer les collaborateurs de la clean room.
Exemple
Le code suivant montre comment créer un rôle personnalisé, lui attribuer plusieurs capacités de l’UI, puis attribuer le rôle personnalisé à un utilisateur.
-- Create the role.
USE ROLE ACCOUNTADMIN;
CREATE ROLE dcr_access;
-- Grant capabilities to the new role.
GRANT APPLICATION ROLE SAMOOHA_BY_SNOWFLAKE.MANAGE_CLEANROOMS TO ROLE dcr_access;
GRANT APPLICATION ROLE SAMOOHA_BY_SNOWFLAKE.MANAGE_DCR_COLLABORATORS TO ROLE dcr_access;
GRANT APPLICATION ROLE SAMOOHA_BY_SNOWFLAKE.MANAGE_DCR_PROFILE_AND_FEATURES TO ROLE dcr_access;
GRANT APPLICATION ROLE SAMOOHA_BY_SNOWFLAKE.MANAGE_DCR_CONNECTORS TO ROLE dcr_access;
-- Assign the role to a user.
-- You must also grant access to a default warehouse to the role.
GRANT USAGE ON WAREHOUSE <your_warehouse> TO ROLE dcr_access;
ALTER USER <some_user> SET DEFAULT_WAREHOUSE = <your_warehouse>;
GRANT ROLE dcr_access to USER <some_user>;
Gérer les utilisateurs de l’API¶
La gestion de l’accès à l’API nécessite des rôles. Les rôles Snowflake suivants permettent d’accéder à l’API ou de la gérer :
ACCOUNTADMIN : le rôle utilisé pour installer ou désinstaller l’environnement des salles blanches. Ce rôle ne comprend pas le rôle SAMOOHA_APP_ROLE ; pour utiliser l’API, vous devez utiliser le rôle SAMOOHA_APP_ROLE.
SAMOOHA_APP_ROLE : ce rôle accorde l’autorisation d’accès complet à l’API des salles blanches dans ce compte. (Ce rôle est utilisé par l’UI des salles blanches pour communiquer avec l’API.)
Exécuter uniquement le rôle de développeur : un utilisateur avec le rôle SAMOOHA_APP_ROLE peut accorder l’utilisation pour un rôle à accès limité. Ce rôle, également appelé rôle d’exécution, permet d’utiliser un sous-ensemble de procédures d’API sur un sous-ensemble de salles blanches dans le contexte du consommateur. Ces rôles limités peuvent être attribués à des rôles pour fournir une utilisation définie de votre compte à des utilisateurs spécifiques, tels que les analystes de données.
Donner ou révoquer l’accès complet à l’API¶
Le rôle SAMOOHA_APP_ROLE accorde un accès d’API complet à toutes les salles blanches d’un compte.
Donner l’accès complet à l’API :
USE ROLE ACCOUNTADMIN;
GRANT ROLE SAMOOHA_APP_ROLE TO USER <user_name>;
Révoquer l’accès complet à l’API :
USE ROLE ACCOUNTADMIN;
REVOKE ROLE SAMOOHA_APP_ROLE FROM USER <user_name>;
Donner l’accès complet à l’API¶
Vous pouvez accorder un accès d’API limité aux salles blanches spécifiées dans votre compte. L’accès limité permet d’appeler uniquement un sous-ensemble de procédures de consommateurs, par exemple consumer.run_analysis
, mais pas la possibilité d’installer, de créer, de joindre ou de modifier une salle blanche.
Voici comment accorder un accès limité à un utilisateur :
Un utilisateur avec un accès d’API complet qui peut accorder le rôle SAMOOHA_APP_ROLE crée un nouveau rôle et attribue des fonctionnalités limitées à ce rôle :
-- Create the role. USE ROLE ACCOUNTADMIN; CREATE ROLE MARKETING_ANALYST_ROLE; GRANT USAGE ON WAREHOUSE APP_WH TO MARKETING_ANALYST_ROLE; -- Or whichever warehouse you are using -- Grant limited functionality to the role for a subset of clean rooms. CALL samooha_by_snowflake_local_db.consumer.grant_run_on_cleanrooms_to_role( [$cleanroom_1, $cleanroom_2], 'MARKETING_ANALYST_ROLE' ); -- Grant the role to a user. GRANT ROLE MARKETING_ANALYST_ROLE TO USER george.washington;
L’utilisateur utilise ensuite son rôle limité pour effectuer des actions spécifiques dans le compte de la clean room :
-- User george.washington logs in and uses the limited role. USE WAREHOUSE APP_WH USE ROLE MARKETING_ANALYST_ROLE; USE SECONDARY ROLES NONE; -- Consumer-run analyses should succeed. CALL samooha_by_snowflake_local_db.consumer.run_analysis( $cleanroom_name, 'prod_overlap_analysis', ['MY_DB.MYDATA.CONVERSIONS'], -- Consumer tables ['MY_DB.MYDATA.EXPOSURES'], -- Provider tables object_construct( 'max_age', 30 ) ); -- Clean room creation and management procedures fail. CALL samooha_by_snowflake_local_db.provider.cleanroom_init($cleanroom_name, 'INTERNAL');
Révoquer l’accès limité à l’API¶
Pour révoquer les privilèges d’exécution sur une salle blanche spécifique d’un rôle spécifique, appelez le rôle revoke_run_on_cleanrooms_from_role.
Pour révoquer tous les privilèges d’exécution accordés à un seul utilisateur, révoquez le rôle de l’utilisateur.
Gérer les collaborateurs de la clean room¶
Les collaborateurs sont des utilisateurs invités à rejoindre une salle blanche en tant que consommateur par un fournisseur de salle blanche.
Lors de l’utilisation de l’UI des salles blanches, les créateurs peuvent inviter des collaborateurs à partir d’une liste de collaborateurs gérée par quelqu’un à l’aide du rôle MANAGE_DCR_COLLABORATORS.
Lors de l’utilisation de l’API des salles blanches, les fournisseurs ne sont pas limités par une liste de collaborateurs prédéfinie et peuvent ajouter n’importe quel collaborateur de salle blanche par localisateur de compte Snowflake. Si vous voulez inviter un collaborateur sans compte Snowflake, vous devez d’abord créer un compte géré de salle blanche pour ce collaborateur.
Note
Si un collaborateur Snowflake possède un compte dans une région différente de votre compte Snowflake, votre administrateur de compte doit activer Cross-Cloud Auto-Fulfillment avant que vous puissiez l’ajouter en tant que collaborateur.
Pour gérer la liste des collaborateurs utilisée dans l’UI des salles blanches , vous avez besoin du rôle MANAGE_DCR_COLLABORATORS.
Accédez à la page de connexion Snowflake Data Clean Rooms.
Dans la navigation de gauche, sélectionnez Collaborators.
Effectuez au choix :
Si le collaborateur dispose d’un compte Snowflake, sélectionnez Snowflake Partners » + Snowflake Partner. Répondez aux invites pour entrer les détails du compte Snowflake du collaborateur.
Si le collaborateur n’est pas un client de Snowflake, sélectionnez l’onglet Managed Accounts pour créer un compte géré de clean room pour lui.
Lors de l’utilisation de l’API des salles blanches, les fournisseurs peuvent ajouter des collaborateurs en appelant la procédure provider.add_consumers
.
Si le collaborateur n’est pas un client de Snowflake, créez un compte géré de salle blanche pour ce collaborateur.