Snowflake Data Clean Rooms: 관리자 작업¶
이 항목에서는 Snowflake Data Clean Room 의 관리자가 수행할 수 있는 작업에 대해 설명합니다. 처음으로 클린 환경을 구현하는 방법에 대한 자세한 내용은 Snowflake Data Clean Rooms 의 개요 섹션을 참조하십시오.
Clean Room 사용자 관리하기¶
UI 및 API 에 대한 액세스는 애플리케이션 역할을 사용하여 관리됩니다. 역할에 따라 API 및 UI 에 대한 액세스 권한이 부여됩니다.
또한 사용자에게 기본 웨어하우스가 할당되고 사용 권한이 부여되어야 합니다.
Clean Room UI 에 대한 액세스 관리하기¶
Clean Room UI에 대한 액세스 권한을 부여하려면 사용자 또는 하위 역할에 적절한 Clean Room UI 역할을 할당합니다. 다음 역할은 Clean Room UI 에 액세스하거나 관리하는 데 사용됩니다.
ACCOUNTADMIN: Clean Room 환경을 설치하거나 제거하는 데 사용됩니다. Snowflake Admin 페이지에 대한 액세스 권한을 부여하여 서비스 사용자 및 계정 기능(예: 클라우드 간 자동 복제, 외부 및 Iceberg 테이블, UI 사용자를 위한 데이터 세트 등록 등)을 관리하는 데 사용합니다. 이 역할에는 다른 모든 Clean Room 역할의 권한이 포함됩니다.
MANAGE_CLEANROOMS: Clean Rooms UI 를 생성, 업데이트, 삭제 및 설치하고, Clean Rooms에서 분석을 생성, 업데이트, 삭제 및 실행할 수 있습니다.
MANAGE_DCR_PROFILE_AND_FEATURES: 회사 프로필을 관리하고 Clean Rooms에서 사용할 수 있는 서드 파티 커넥터를 제어할 수 있는
:ui:Admin
섹션의 Profile & Features 페이지에 대한 액세스 권한을 부여합니다.MANAGE_DCR_CONNECTORS: 서드 파티 커넥터를 구성할 수 있는 Connectors 페이지에 대한 액세스 권한을 부여합니다.
MANAGE_DCR_COLLABORATORS: UI 사용자의 승인된 공동 작업자 목록을 관리할 수 있는 Collaborators 페이지에 대한 액세스 권한을 부여합니다. API 사용자가 사용할 수 있는 공동 작업자 목록은 제어하지 않으며, 이 사용자는 모든 Snowflake 계정을 공동 작업으로 초대할 수 있습니다.
예
USE ROLE ACCOUNTADMIN;
CREATE ROLE dcr_access;
-- Choose your privileges:
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;
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 사용자 관리하기¶
Clean Rooms는 UI 및 API 에 대한 액세스를 관리하기 위해 다음과 같은 역할을 정의합니다. 모든 역할은 SAMOOHA_BY_SNOWFLAKE 범위 내의 애플리케이션 역할입니다.
다음 Snowflake 역할은 API 에 액세스하거나 관리하는 데 사용됩니다.
ACCOUNTADMIN: Clean Room 환경을 설치하거나 제거하는 데 사용되는 역할입니다.
SAMOOHA_APP_ROLE: 이 계정의 Clean Room API 에 모든 권한을 부여합니다. (이 역할은 웹 애플리케이션이 API 와 통신하는 데 사용됩니다.
실행 전용 개발자 역할: SAMOOHA_APP_ROLE 을 가진 사용자는 액세스 권한이 제한된 역할을 만들 수 있습니다. 실행 역할 이라고도 하는 이 역할은 Clean Rooms의 하위 세트에서 API 프로시저의 하위 세트를 사용할 수 있는 권한을 부여합니다. 이러한 제한된 역할을 사용자에게 부여하여 데이터 분석가와 같은 특정 사용자에게 계정에서 제한된 범위의 사용 권한을 제공할 수 있습니다.
consumer.grant_run_on_cleanrooms_to_role
을 호출하여 제한된 역할을 생성합니다.
전체 API 액세스 권한 부여 또는 취소하기¶
SAMOOHA_APP_ROLE 역할은 계정의 모든 Clean Rooms에 대한 전체 API 액세스 권한을 부여합니다.
전체 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 액세스 권한 부여하기¶
계정에서 지정된 Clean Rooms에 제한된 API 액세스 권한을 부여할 수 있습니다. 액세스가 제한되면 consumer.run_analysis
등 컨슈머 프로시저 중 일부 만 실행할 수 있지만 Clean Rooms를 생성, 참여 또는 수정하는 기능은 제공되지 않습니다.
사용자에게 제한된 액세스 권한을 부여하는 방법은 다음과 같습니다.
SAMOOHA_APP_ROLE 역할을 부여할 수 있는 전체 액세스 권한을 가진 사용자가 새 역할을 만들고 이 역할에 제한된 권한을 할당합니다.
-- 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 the role limited privileges on 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; -- 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');
특정 역할이 부여된 사용자를 확인합니다.
SHOW GRANTS OF ROLE <run_role_name>;
제한된 API 액세스 취소하기¶
이 역할의 실행 권한을 취소하려면
consumer.revoke_run_on_cleanrooms_from_role
을 호출합니다.단일 사용자에 대한 실행 권한을 취소하려면 해당 사용자의 역할을 취소합니다.
Clean Room 공동 작업자 관리하기¶
공동 작업자 는 Clean Room 생성자가 Clean Room에 초대하는 사용자입니다.
Clean Room UI 를 사용할 때 생성자는 목록에서 공동 작업자를 초대할 수 있습니다. 이 목록은 MANAGE_DCR_COLLABORATORS 역할을 가진 사람이 관리합니다.
Clean Room API 사용자는 미리 정의된 목록에 의해 제한되지 않으며, Snowflake 계정 로케이터를 통해 모든 Clean Room 공동 작업자를 추가할 수 있습니다.
Snowflake 공동 작업자가 내 Snowflake 계정과 다른 리전에 계정을 가지고 있는 경우, 계정 관리자가 클라우드 간 자동 복제를 활성화해야 공동 작업자로 추가할 수 있습니다.
Snowflake 계정이 없는 공동 작업자를 초대하려면 먼저 Clean Room 관리 계정을 만들어 해당 공동 작업자를 초대해야 합니다.
Clean Room UI 에서 사용되는 공동 작업자 목록을 큐레이션하려면 MANAGE_DCR_COLLABORATORS 역할이 필요합니다.
/INCLUDE/cleanrooms/text/text-sign-in-page.txt
왼쪽 탐색 모음에서 Collaborators 를 선택합니다.
다음 중 하나를 수행하십시오.
공동 작업자에게 Snowflake 계정이 있는 경우 Snowflake Partners » + Snowflake Partner 를 선택합니다. 공동 작업자의 Snowflake 계정 세부 정보를 입력하라는 메시지에 따라 작업을 수행합니다.
공동 작업자가 Snowflake 고객이 아닌 경우 Managed Accounts 탭을 선택하여 해당 공동 작업자를 위한 Clean Room 관리 계정 을 생성합니다.
Clean Room API 사용 시, 공급자는 provider.add_consumers
프로시저를 사용하여 Snowflake 계정 로케이터를 통해 공동 작업자를 추가할 수 있습니다.
웨어하우스 옵션 추가¶
SAMOOHA_APP_ROLE 역할에 사용 및 작업 권한이 있는 모든 웨어하우스를 사용하여 분석을 실행할 수 있습니다. 클린룸 사용자가 분석을 실행하는 데 사용할 수 있는 웨어하우스를 추가하려면 웨어하우스를 생성한 다음 SAMOOHA_APP_ROLE에 해당 웨어하우스에 대한 권한을 부여합니다.
예를 들어, 분석 실행에 사용할 수 있는 웨어하우스 my_big_warehouse
를 추가하려면 워크시트에서 다음 명령을 실행합니다.
USE ROLE ACCOUNTADMIN;
CREATE WAREHOUSE my_big_warehouse WITH WAREHOUSE_SIZE = X5LARGE;
GRANT USAGE, OPERATE ON WAREHOUSE my_big_warehouse TO ROLE SAMOOHA_APP_ROLE;
웹 앱 활동 모니터링¶
관리자는 Snowflake 계정의 쿼리 기록을 모니터링하여 웹 앱에서 사용자가 수행하는 활동을 추적할 수 있습니다. user_name
의 값은 Snowflake 계정이 구성될 때 생성된 서비스 사용자의 이름이므로 웹 앱의 활동에 해당하는 쿼리 기록 항목을 식별할 수 있습니다.
user_email
쿼리 태그를 사용하여 어떤 클린룸 사용자가 어떤 작업을 수행했는지 파악할 수 있습니다
클린룸 환경에 대한 쿼리 기록에 액세스하려면 SQL 또는 Snowsight 사용 여부에 따라 다음 중 하나를 수행합니다.
- Snowsight:
클린룸 환경과 연결된 Snowflake 계정에 ACCOUNTADMIN 역할이 있는 사용자로 로그인합니다.
Monitoring » Query History 를 선택합니다.
User 필터를 사용하여 클린룸 환경과 연결된 서비스 계정 사용자를 선택합니다.
- SQL:
공유 SNOWFLAKE 데이터베이스의 ACCOUNT_USAGE 스키마에서 QUERY_HISTORY 뷰 에 대한 쿼리를 실행합니다.
예를 들어, 사용자
joe@example.com
의 웹 앱 활동을 추적하려면 다음 코드를 실행합니다.SELECT *, TRY_PARSE_JSON(query_tag) AS query_tag_details FROM snowflake.account_usage.query_history WHERE query_tag_details IS NOT NULL AND query_tag_details:request_type = 'DCR' AND query_tag_details:user_email = 'joe@example.com';
공급자 실행 분석 모니터링하기¶
공급자 실행 분석은 공급자가 클린룸을 생성하고 공유한 다음, 컨슈머가 데이터를 연결한 후 클린룸에서 분석을 실행하는 프로세스를 말합니다. 이러한 분석은 공급자의 계정이 아닌 컨슈머의 계정에서 실행됩니다. 이 섹션에서는 컨슈머가 클린룸에서 공급자의 분석에 의해 실행된 쿼리를 추적할 수 있는 방법에 대해 설명합니다.
Snowflake Data Clean Rooms 는 공급자 실행 분석을 위해 실행되는 각 쿼리에 쿼리 태그를 할당합니다. 이 쿼리 태그의 형식은 cleanroom_UUID_provider_account_locator
입니다. 컨슈머는 계정의 쿼리 기록에서 쿼리 태그를 검색하여 공급자가 운영하는 분석과 관련된 모든 쿼리를 검색할 수 있습니다.
쿼리를 검색하려면 먼저 클린룸에 대한 UUID를 얻은 다음 쿼리 태그를 검색합니다. 다음 코드에서 cleanroom_name
및 provider_account_locator
를 적절한 값으로 바꿉니다.
-- Retrieve clean room UUID
SELECT cleanroom_id FROM samooha_by_snowflake_local_db.public.cleanroom_record
WHERE cleanroom_name = '<cleanroom_name>';
-- Retrieve queries with provider-run query tag
SELECT * FROM snowflake.account_usage.query_history
WHERE query_tag = cleanroom_id || '<provider_account_locator>;
SQL을 사용하여 클린룸 UUID를 검색한 다음 Snowsight 를 사용하여 적절한 쿼리 태그를 기준으로 쿼리 기록을 필터링할 수도 있습니다.
사용 가능한 커넥터 사용자 지정¶
커넥터를 사용하면 클린룸 환경을 에코시스템 파트너와 통합할 수 있습니다. 공급자의 클린룸 관리자는 클린룸 환경을 사용자 지정하여 클린룸 사용자에게 옵션으로 표시되는 커넥터를 제한할 수 있습니다. 예를 들어, 선호하는 활성화 파트너가 한 명인 경우, 컨슈머가 클린룸에서 분석 결과를 활성화할 때 해당 파트너가 유일한 옵션이 되도록 클린룸 환경을 구성할 수 있습니다.
참고
사용자가 지정한 사항은 새 클린룸에만 적용됩니다.
Clean Room에서 어떤 커넥터를 사용할 수 있는지 제어하려면 MANAGE_DCR_CONNECTORS 역할이 필요합니다.
왼쪽 탐색 모음에서 Admin » Profile & Features 를 선택합니다.
선택 사항: 활성화 커넥터를 사용자 지정하려면 다음 단계를 따르십시오.
Activation 타일에서 Edit 를 선택합니다.
표시할 활성화 옵션을 선택한 다음 Save 를 선택합니다.
선택 사항: ID 및 데이터 공급자 커넥터를 사용자 지정하려면 다음 단계를 따르십시오.
Identity & Data Provider 타일에서 Edit 를 선택합니다.
표시할 ID 옵션을 선택한 다음 Save 를 선택합니다.
클린룸에 브랜드 설정¶
클린룸 환경에 적합한 프로필을 구성하여 생성된 모든 클린룸에 로고와 회사 이름이 표시되도록 할 수 있습니다. 회사의 로고와 이름을 정의하려면 MANAGE_DCR_PROFILE_AND_FEATURES 역할이 필요합니다.
왼쪽 탐색 모음에서 Admin » Profile & Features 를 선택합니다.
Company profile 에서 다음을 수행합니다.
JPG 또는 PNG 형식의 회사 로고를 업로드합니다. 이 로고는 생성된 모든 클린룸에 표시됩니다.
Company Name 을 편집하여 환경에 생성된 클린룸에 표시할 이름을 정의합니다.
Single Sign-On(SSO) 활성화¶
SSO (Single Sign-On)를 사용하려면 Snowflake 지원팀 으로 문의하십시오.
키 페어 인증 허용¶
클린룸 환경의 서비스 계정 사용자가 Snowflake 계정과 통신할 때 사용하는 서비스 계정 사용자는 키 페어 인증 을 사용하여 인증합니다. Snowflake 계정에서 인증 정책 을 사용하여 사용자의 인증 방법을 제어하는 경우 서비스 계정 사용자를 제어하는 인증 정책에서 키 페어 인증을 허용해야 합니다.
키 페어 인증을 허용하려면 모든 인증 정책을 제거하거나 AUTHENTICATION_METHODS = ALL
또는 AUTHENTICATION_METHODS = KEYPAIR
로 인증 정책을 추가합니다. Snowflake 계정에 키 페어 인증을 허용하지 않는 계정 수준 인증 정책이 있는 경우, 적절한 매개 변수를 사용해 새 인증 정책을 만든 다음, 설치 과정 중에 만든 서비스 계정 사용자에게 정책을 할당해야 합니다.
이 명령을 실행하여 인증 정책을 확인할 수 있습니다.
SHOW AUTHENTICATION POLICIES;
결과 테이블이 비어 있으면 정책이 없음을 나타내며, 이는 키 페어 인증이 허용됨을 의미합니다.
Clean Room UI 에서 활성화 설정 또는 해제하기¶
Clean Room UI 사용 시 활성화는 Clean Room 관리자가 전체적으로 제어합니다. Clean Room API 에서의 활성화는 공급자가 Clean Room 수준에서 제어합니다.
이 섹션에서는 Clean Room UI 를 사용할 때 활성화를 설정하거나 해제하는 방법을 보여줍니다. API 를 사용할 때 활성화를 설정하는 방법을 알아보려면 활성화 지침 을 참조하십시오.
Clean Room UI 를 사용할 때 Clean Room 계정에서 공급자 및 컨슈머 활성화가 기본적으로 설정됩니다. 서드 파티 활성화는 수동으로 설정해야 합니다.
계정에서 UI 사용자의 활성화를 설정하거나 해제하는 방법은 다음과 같습니다.
DCR 관리자로 웹 앱에서 Clean Room 환경에 로그인합니다.
Admin » Profile & Features 를 선택합니다.
Activation 섹션에서 Edit 을 선택합니다.
컨슈머 활성화 를 관리하는 방법: Collaborator Account 옆의 확인란을 선택하거나 선택 취소합니다.
공급자 활성화 를 관리하는 방법: 자신의 계정 이름 옆에 있는 확인란을 선택하거나 선택 취소합니다.
서드 파티 활성화 를 관리하는 방법: 설정하거나 해제하려는 서드 파티 활성화 대상 옆의 확인란을 선택하거나 선택 취소합니다. 서드 파티 활성화는 커넥터를 통해 설정되며 Clean Room UI 에서만 사용 가능합니다. 사용 가능한 서드 파티 커넥터 목록을 참조하십시오.
네트워크 정책 구성하기¶
Snowflake 계정에서 네트워크 정책 을 사용하여 네트워크 트래픽을 제어하는 경우 웹 앱이 내 Snowflake 계정과 통신하는 데 사용하는 IP 주소의 트래픽을 명시적으로 허용해야 합니다.
아래 표에서 클라우드 공급자 계정 리전을 찾아 해당 행에 나열된 모든 IP 주소를 허용하도록 계정 네트워크 정책을 구성하십시오.
Snowflake 계정 리전 |
웹 앱에 다음 IP 주소 허용 |
---|---|
|
52.7.249.136
34.195.16.248
52.7.210.215
|
|
15223145218
3.96.6.109
15.222.142.44
|
|
54.93.86.99
3.126.238.8
3127143168
|
|
35.154.94.29
13235168249
15.206.48.175
|
|
13.228.90.174
52.220.42.130
52.220.249.16
|
|
52.65.205.236
52.62.198.227
3.104.160.96
|
이 환경의 서비스 계정에 대한 세부 정보 보기¶
웹 애플리케이션은 서비스 계정을 사용하여 Snowflake와 통신합니다. 이 서비스 계정은 계정 관리자가 이 계정에 대한 Clean Room 환경을 설치할 때 만들었습니다.
서비스 계정 사용자에 대한 세부 정보는 수정할 수 없습니다.
이 Clean Room 환경에 대한 서비스 계정에 대한 자세한 내용을 보려면 MANAGE_DCR_PROFILE_AND_FEATURES 역할이 필요합니다.
/INCLUDE/cleanrooms/text/text-sign-in-page.txt
Admin > Snowflake Admin 으로 이동합니다.
Snowflake Admin 페이지에서 서비스 사용자 이름과 서비스 사용자 이메일 등의 정보를 확인할 수 있습니다.