Verwalten der Benutzer und des Zugangs für Clean Rooms¶
Übersicht¶
This topic describes how a clean rooms account administrator manages user access to the clean rooms UI and API.
Clean rooms defines several application roles that permit access to the API and various subsections of the UI. Access to the clean rooms UI and API are granted separately. Typically, the account administrator creates a custom role, grants the desired application roles to allow fine-grained access to the UI and API, then grants the role to various users in that account.
This strategy uses the Snowflake role-based access control (RBAC) model to delegate privileges appropriately to clean room users and collaborators in their account. For more information about RBAC, see Übersicht zur Zugriffssteuerung. To see which users were granted a specific role, run the following SQL command:
SHOW GRANTS OF ROLE <role_name>;
Tipp
Unter diesem Thema werden die folgenden Begriffe verwendet:
Clean Room-Benutzer: Benutzer, denen in ihrem Snowflake-Konto Zugriff auf die Clean Rooms-UI oder -API gewährt wurde.
Clean Room-Teilnehmer: Verbraucher, die vom Clean Room-Anbieter zum Beitritt zu einem Clean Room eingeladen wurden. Ein Teilnehmer ist auch ein Clean Room-Benutzer – d. h. er muss Zugriff auf die Clean Rooms-UI oder -API haben, um eine Einladung annehmen und den Clean Room nutzen zu können.
Zugriff auf die Clean Room-UI verwalten¶
An administrator grants access to the clean rooms UI in a Snowflake account by granting the appropriate roles, either directly or indirectly. The administrator should also assign a default warehouse and grant USAGE privilege on it to UI users.
Die folgenden Rollen gewähren die Berechtigung, die Clean Rooms-UI zu verwalten oder darauf zuzugreifen:
ACCOUNTADMIN: Rolle, die für die Installation oder Deinstallation der Clean Rooms-Umgebung verwendet wird. Diese Rolle ermöglicht auch den Zugriff auf die Snowflake Admin-Seite in der Clean Rooms-UI. Kontoadministratoren verwenden diese Seite, um die Benutzer- und Konto-Features des Service zu verwalten, wie z. B. die Cloud-übergreifende automatische Ausführung, externe und Iceberg-Tabellen und Datenset-Registrierung für UI-Benutzer. Diese Rolle hat alle Clean Room-UI-Berechtigungen. Ein Benutzer, der als ACCOUNTADMIN ausgeführt wird, benötigt keine zusätzlichen UI-Anwendungsrollen.
MANAGE_CLEANROOMS: Anwendungsrolle, die die Fähigkeit bietet, Clean Rooms zu erstellen, zu aktualisieren, zu löschen und zu installieren sowie Analysen in der Clean Rooms-UI zu erstellen, zu aktualisieren, zu löschen und auszuführen.
MANAGE_DCR_PROFILE_AND_FEATURES: Anwendungsrolle, die Zugriff auf die Profile & Features-Seite im Admin-Abschnitt der UI ermöglicht, wo Sie das Unternehmensprofil verwalten und steuern können, welche Konnektoren von Drittanbietern in Clean Rooms verwendet werden können.
MANAGE_DCR_CONNECTORS: Anwendungsrolle, die Zugriff auf die Connectors-Seite in der UI ermöglicht, wo Sie Konnektoren von Drittanbietern konfigurieren können.
MANAGE_DCR_COLLABORATORS: Anwendungsrolle, die Zugriff auf die Collaborators-Seite in der UI ermöglicht, wo Sie die Liste der zugelassenen Teilnehmer, die den Anbietern von Clean Rooms in der UI zur Verfügung stehen, verwalten können. Diese Rolle steuert nicht die Liste der Teilnehmer, die Anbietern bei der Verwendung der API zur Verfügung stehen. API-Benutzer können jeden zur Zusammenarbeit einladen. Weitere Informationen dazu finden Sie unter Verwalten von Clean Room-Teilnehmern.
Beispiel
Der folgende Code zeigt, wie Sie eine benutzerspezifische Rolle erstellen, dieser Rolle mehrere UI-Funktionen zuweisen und dann einem Benutzer die benutzerspezifische Rolle zuweisen.
-- 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>;
API-Benutzer verwalten¶
API-Zugriff wird über Rollen verwaltet. Die folgenden Snowflake-Rollen werden für den Zugriff auf oder die Verwaltung der API verwendet:
ACCOUNTADMIN: Die Rolle, mit der Sie die Clean Rooms-Umgebung installieren oder deinstallieren. Diese Rolle enthält nicht SAMOOHA_APP_ROLE. Um die API zu verwenden, müssen Sie SAMOOHA_APP_ROLE verwenden.
SAMOOHA_APP_ROLE: Diese Rolle gewährt eine volle Berechtigung für die Clean Rooms-API in diesem Konto. (Diese Rolle wird von der Clean Rooms-UI verwendet, um mit der API zu kommunizieren.)
Entwicklerrolle „Nur ausführen“: jemand, der verwendet SAMOOHA_APP_ROLE kann Erteilen der Nutzungsberechtigung für eine Rolle mit eingeschränktem Zugriff-, ,. Diese Rolle, auch Ausführungsrolle genannt, gewährt die Berechtigung, eine Teilmenge von API-Prozeduren für eine Teilmenge von Clean Rooms im Verbraucherkontext zu verwenden. Diese eingeschränkten Rollen können Rollen gewährt werden, um bestimmten Benutzern, z. B. Datenanalysten, eine eingeschränkte Nutzung in Ihrem Konto zu ermöglichen.
Vollständigen API-Zugriff gewähren oder widerrufen¶
The SAMOOHA_APP_ROLE role grants a user full API access to all clean rooms in a Snowflake account. This role has usage on all warehouses installed with clean rooms.
Gewähren Sie vollständigen API-Zugriff:
USE ROLE ACCOUNTADMIN;
GRANT ROLE SAMOOHA_APP_ROLE TO USER <user_name>;
Entziehen Sie den vollständigen API-Zugriff:
USE ROLE ACCOUNTADMIN;
REVOKE ROLE SAMOOHA_APP_ROLE FROM USER <user_name>;
Begrenzten API-Zugriff gewähren¶
Sie können bestimmten Clean Rooms in Ihrem Konto begrenzten API-Zugriff gewähren. Beschränkter Zugriff gewährt nur die Fähigkeit, eine Teilmenge von Verbraucherprozeduren aufzurufen, z. B. consumer.run_analysis, aber nicht die Fähigkeit, einen Clean Room zu installieren, zu erstellen, zu ändern oder diesem beizutreten.
So gewähren Sie einem Benutzer eingeschränkten Zugriff:
A user who can grant the SAMOOHA_APP_ROLE role creates a new role, and assigns limited functionality to that role. The role must also be granted USAGE to any warehouses that they will use to access the clean rooms.
-- Create the role. USE ROLE ACCOUNTADMIN; CREATE ROLE MARKETING_ANALYST_ROLE; -- Grant USAGE on one of the basic clean room warehouses. -- You can grant USAGE to any warehouses that you want them to use. GRANT USAGE ON WAREHOUSE APP_WH TO MARKETING_ANALYST_ROLE; -- 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;
Der Benutzer verwendet dann seine eingeschränkte Rolle, um bestimmte Aktionen im Clean Room-Konto durchzuführen:
-- 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');
Begrenzten API-Zugriff widerrufen¶
Um einer bestimmten Rolle Ausführungsberechtigungen für einen bestimmten Clean Room zu entziehen, rufen Sie revoke_run_on_cleanrooms_from_role auf.
Um einem einzelnen Benutzer alle erteilten Ausführungsberechtigungen zu entziehen, entziehen Sie dem Benutzer die Rolle.
Verwalten von Clean Room-Teilnehmern¶
Teilnehmer sind Benutzer, die von einem Clean Room-Anbieter als Verbraucher zu einem Clean Room eingeladen wurden.
When using the clean rooms UI, creators can invite collaborators from a list that is managed by someone using the MANAGE_DCR_COLLABORATORS role.
When using the clean rooms API, providers are not limited by a predefined collaborators list, and can add any clean room collaborator by Snowflake account locator. If you want to invite a collaborator without a Snowflake account, you must first create a clean room managed account for them. Remember that you invite an account to collaborate, not an individual user. Any user with clean rooms access in the invited account can join and use the clean room.
Bemerkung
Wenn ein Snowflake-Teilnehmer ein Konto in einer anderen Region als Ihr Snowflake-Konto hat, muss Ihr Kontoadministrator die Cloud-übergreifende automatische Ausführung aktivieren, bevor Sie ihn als Teilnehmer hinzufügen können.
Zur Verwaltung der in der Clean Rooms-UI verwendeten Teilnehmerliste benötigen Sie die MANAGE_DCR_COLLABORATORS-Rolle.
Navigieren Sie zu der Anmeldeseite von Snowflake Data Clean Rooms.
Wählen Sie im linken Navigationsbereich die Option Collaborators aus.
Führen Sie eine der folgenden Aktionen aus:
Wenn der Teilnehmer ein Snowflake-Konto hat, wählen Sie Snowflake Partners » + Snowflake Partner aus. Beantworten Sie die Aufforderungen zur Eingabe der Details des Snowflake Kontos des Teilnehmers.
Wenn die Teilnehmenden nicht zur Snowflake-Kundschaft gehören:
You can contact Snowflake Support to grant you the ability to create a managed account.
Wenn Sie diese Möglichkeit erhalten haben, kehren Sie zum Fenster Collaborators zurück. Wählen Sie die Registerkarte Managed Accounts aus, um Clean Rooms-verwaltete Konten für Ihre Teilnehmenden zu erstellen.
Bei Verwendung der Clean Rooms-APIkönnen Anbieter Teilnehmer hinzufügen, indem sie die provider.add_consumers-Prozedur aufrufen.
Wenn der Teilnehmer kein Snowflake-Kunde ist, muss jemand ein verwaltetes Clean Room-Konto für den Teilnehmer erstellen.