클린룸 사용자 및 액세스 관리¶
개요¶
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 액세스 제어의 개요. To see which users were granted a specific role, run the following SQL command:
SHOW GRANTS OF ROLE <role_name>;
팁
이 항목에서는 다음과 같은 용어를 사용합니다.
클린룸 사용자: Snowflake 계정의 클린룸 UI 또는 API에 대한 액세스 권한이 부여된 사용자.
클린룸 공동 작업자: 클린룸 공급자가 클린룸에 초대한 컨슈머. 공동 작업자는 클린룸 사용자이기도 합니다. 즉, 공동 작업자는 초대를 수락하고 클린룸을 사용하려면 클린룸 UI 또는 API에 액세스할 수 있어야 합니다.
클린룸 UI에 대한 액세스 관리¶
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.
다음 역할은 클린룸 UI를 관리하거나 액세스할 수 있는 권한을 부여합니다.
ACCOUNTADMIN: 클린룸 환경을 설치하거나 제거하는 데 사용되는 역할입니다. 이 역할은 클린룸 UI의 :ui:`Snowflake Admin`페이지에 액세스할 수도 있습니다. 계정 관리자는 이 페이지를 사용하여 클라우드 간 자동 복제, 외부 및 Iceberg 테이블, UI 사용자에 대한 데이터 세트 등록과 같은 서비스 사용자 및 계정 기능을 관리합니다. 이 역할에는 모든 클린룸 UI 권한이 있습니다. ACCOUNTADMIN으로 실행 중인 사용자에게는 추가 UI 애플리케이션 역할이 필요하지 않습니다.
MANAGE_CLEANROOMS: 클린룸을 생성, 업데이트, 삭제, 설치하고 클린룸 UI에서 분석을 생성, 업데이트, 삭제, 실행하는 기능을 제공하는 애플리케이션 역할입니다.
MANAGE_DCR_PROFILE_AND_FEATURES: UI의 Admin 섹션에 있는 Profile & Features 페이지에 대한 액세스를 제공하는 애플리케이션 역할로, 회사 프로필을 관리하고 클린룸에서 사용할 수 있는 서드 파티 커넥터를 제어할 수 있습니다.
MANAGE_DCR_CONNECTORS: UI의 Connectors 페이지에 대한 액세스를 제공하는 애플리케이션 역할로, 서드 파티 커넥터를 구성할 수 있습니다.
MANAGE_DCR_COLLABORATORS: UI의 Collaborators 페이지에 대한 액세스를 제공하는 애플리케이션 역할로, UI의 클린룸 공급자가 사용할 수 있는 승인된 공동 작업자 목록을 관리할 수 있습니다. 이 역할은 API를 사용할 때 공급자가 사용할 수 있는 공동 작업자 목록을 제어하지 않습니다. API 사용자는 누구나 공동 작업에 초대할 수 있습니다. 자세한 내용은 Clean Room 공동 작업자 관리하기 섹션을 참조하십시오.
예
다음 코드는 사용자 지정 역할을 생성하고 해당 역할에 여러 UI 기능을 부여한 다음, 사용자에게 사용자 지정 역할을 부여하는 방법을 보여줍니다.
-- 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 사용자 관리하기¶
API 액세스는 역할을 사용하여 관리됩니다. 다음 Snowflake 역할은 API에 액세스하거나 관리하는 데 사용됩니다.
ACCOUNTADMIN: 클린룸 환경을 설치하거나 제거하는 데 사용되는 역할입니다. 이 역할에는 SAMOOHA_APP_ROLE이 포함되지 않습니다. API를 사용하려면 SAMOOHA_APP_ROLE을 사용해야 합니다.
SAMOOHA_APP_ROLE: 이 역할은 이 계정의 클린룸 API에 대한 :ref:`전체 권한<label-dcr_grant_full_api_access>`을 부여합니다. (이 역할은 클린룸 UI에서 API와 통신하기 위해 사용됩니다.)
실행 전용 개발자 역할: SAMOOHA_APP_ROLE을 사용하는 사람은 :ref:`제한된 액세스 역할에 대한 사용 권한을 부여<label-dcr_grant_limited_access>`할 수 있습니다. *실행 역할*이라고도 하는 이 역할은 컨슈머 컨텍스트에서 클린룸의 하위 세트에 대한 API 프로시저 하위 세트를 사용할 수 있는 권한을 부여합니다. 이러한 제한된 역할을 데이터 분석가와 같은 특정 사용자에게 계정에서 범위 지정 사용을 제공하는 역할에 부여할 수 있습니다.
전체 API 액세스 권한 부여 또는 취소하기¶
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.
전체 API 액세스 권한을 부여합니다.
USE ROLE ACCOUNTADMIN;
GRANT ROLE SAMOOHA_APP_ROLE TO USER <user_name>;
전체 API 액세스 권한을 취소합니다.
USE ROLE ACCOUNTADMIN;
REVOKE ROLE SAMOOHA_APP_ROLE FROM USER <user_name>;
제한된 API 액세스 권한 부여하기¶
계정의 지정된 클린룸에 대해 제한된 API 액세스 권한을 부여할 수 있습니다. 제한된 액세스는 consumer.run_analysis 등 :ref:`컨슈머 프로시저의 하위 세트<label-dcr_sproc_consumer_manage_role_access>`만 호출할 수 있는 권한을 부여합니다. 하지만 클린룸을 설치, 생성, 조인 또는 수정하는 기능은 없습니다.
사용자에게 제한된 액세스 권한을 부여하는 방법은 다음과 같습니다.
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;
그런 다음 사용자는 제한된 역할을 사용하여 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');
제한된 API 액세스 취소하기¶
특정 역할에서 특정 클린룸에 대한 실행 권한을 취소하려면 :ref:`label-dcr_consumer_revoke_run_on_cleanrooms_from_role`을 호출하세요.
단일 사용자에게 부여된 모든 실행 권한을 취소하려면 사용자로부터 역할을 취소하세요.
Clean Room 공동 작업자 관리하기¶
*공동 작업자*는 클린룸 공급자가 클린룸에 컨슈머로 초대한 사용자입니다.
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.
참고
Snowflake 공동 작업자가 내 Snowflake 계정과 다른 리전에 계정을 가지고 있는 경우, 계정 관리자가 클라우드 간 자동 복제를 활성화해야 공동 작업자로 추가할 수 있습니다.
클린룸 UI에서 사용되는 공동 작업자 목록을 관리하려면 :ref:`MANAGE_DCR_COLLABORATORS 역할<label-dcr_manage_ui_users>`이 필요합니다.
Snowflake Data Clean Rooms 로그인 페이지 로 이동합니다.
왼쪽 탐색 모음에서 Collaborators 를 선택합니다.
다음 중 하나를 수행하십시오.
공동 작업자에게 Snowflake 계정이 있는 경우 Snowflake Partners » + Snowflake Partner 를 선택합니다. 공동 작업자의 Snowflake 계정 세부 정보를 입력하라는 메시지에 따라 작업을 수행합니다.
공동 작업자가 Snowflake 고객이 아닌 경우:
You can contact Snowflake Support to grant you the ability to create a managed account.
해당 권한이 부여되면 Collaborators 창으로 돌아가 Managed Accounts 탭을 선택하여 공동 작업자를 위한 클린룸 관리 계정을 생성합니다.
클린룸 API 사용 시, 공급자는 provider.add_consumers 프로시저를 호출하여 공동 작업자를 추가할 수 있습니다.
공동 작업자가 Snowflake 고객이 아닌 경우 누군가가 해당 공동 작업자를 위해 :ref:`클린룸 관리형 계정을 생성<label-cleanrooms_intro_managed_account>`해야 합니다.