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>;
Copy

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>;
Copy

전체 API 액세스 권한을 취소합니다.

USE ROLE ACCOUNTADMIN;
REVOKE ROLE SAMOOHA_APP_ROLE FROM USER <user_name>;
Copy

제한된 API 액세스 권한 부여하기

계정에서 지정된 Clean Rooms에 제한된 API 액세스 권한을 부여할 수 있습니다. 액세스가 제한되면 consumer.run_analysis컨슈머 프로시저 중 일부 만 실행할 수 있지만 Clean Rooms를 생성, 참여 또는 수정하는 기능은 제공되지 않습니다.

사용자에게 제한된 액세스 권한을 부여하는 방법은 다음과 같습니다.

  1. 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;
    
    Copy
  2. 그런 다음 사용자는 제한된 역할을 사용하여 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');
    
    Copy

특정 역할이 부여된 사용자를 확인합니다.

SHOW GRANTS OF ROLE <run_role_name>;
Copy

제한된 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 역할이 필요합니다.

  1. /INCLUDE/cleanrooms/text/text-sign-in-page.txt

  2. 왼쪽 탐색 모음에서 Collaborators 를 선택합니다.

  3. 다음 중 하나를 수행하십시오.

    • 공동 작업자에게 Snowflake 계정이 있는 경우 Snowflake Partners » + Snowflake Partner 를 선택합니다. 공동 작업자의 Snowflake 계정 세부 정보를 입력하라는 메시지에 따라 작업을 수행합니다.

    • 공동 작업자가 Snowflake 고객이 아닌 경우 Managed Accounts 탭을 선택하여 해당 공동 작업자를 위한 Clean Room 관리 계정 을 생성합니다.

웨어하우스 옵션 추가

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;
Copy

웹 앱 활동 모니터링

관리자는 Snowflake 계정의 쿼리 기록을 모니터링하여 웹 앱에서 사용자가 수행하는 활동을 추적할 수 있습니다. user_name 의 값은 Snowflake 계정이 구성될 때 생성된 서비스 사용자의 이름이므로 웹 앱의 활동에 해당하는 쿼리 기록 항목을 식별할 수 있습니다.

user_email 쿼리 태그를 사용하여 어떤 클린룸 사용자가 어떤 작업을 수행했는지 파악할 수 있습니다

클린룸 환경에 대한 쿼리 기록에 액세스하려면 SQL 또는 Snowsight 사용 여부에 따라 다음 중 하나를 수행합니다.

Snowsight:
  1. 클린룸 환경과 연결된 Snowflake 계정에 ACCOUNTADMIN 역할이 있는 사용자로 로그인합니다.

  2. Monitoring » Query History 를 선택합니다.

  3. 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';
    
    Copy

공급자 실행 분석 모니터링하기

공급자 실행 분석은 공급자가 클린룸을 생성하고 공유한 다음, 컨슈머가 데이터를 연결한 후 클린룸에서 분석을 실행하는 프로세스를 말합니다. 이러한 분석은 공급자의 계정이 아닌 컨슈머의 계정에서 실행됩니다. 이 섹션에서는 컨슈머가 클린룸에서 공급자의 분석에 의해 실행된 쿼리를 추적할 수 있는 방법에 대해 설명합니다.

Snowflake Data Clean Rooms 는 공급자 실행 분석을 위해 실행되는 각 쿼리에 쿼리 태그를 할당합니다. 이 쿼리 태그의 형식은 cleanroom_UUID_provider_account_locator 입니다. 컨슈머는 계정의 쿼리 기록에서 쿼리 태그를 검색하여 공급자가 운영하는 분석과 관련된 모든 쿼리를 검색할 수 있습니다.

쿼리를 검색하려면 먼저 클린룸에 대한 UUID를 얻은 다음 쿼리 태그를 검색합니다. 다음 코드에서 cleanroom_nameprovider_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>;
Copy

SQL을 사용하여 클린룸 UUID를 검색한 다음 Snowsight 를 사용하여 적절한 쿼리 태그를 기준으로 쿼리 기록을 필터링할 수도 있습니다.

사용 가능한 커넥터 사용자 지정

커넥터를 사용하면 클린룸 환경을 에코시스템 파트너와 통합할 수 있습니다. 공급자의 클린룸 관리자는 클린룸 환경을 사용자 지정하여 클린룸 사용자에게 옵션으로 표시되는 커넥터를 제한할 수 있습니다. 예를 들어, 선호하는 활성화 파트너가 한 명인 경우, 컨슈머가 클린룸에서 분석 결과를 활성화할 때 해당 파트너가 유일한 옵션이 되도록 클린룸 환경을 구성할 수 있습니다.

참고

사용자가 지정한 사항은 새 클린룸에만 적용됩니다.

Clean Room에서 어떤 커넥터를 사용할 수 있는지 제어하려면 MANAGE_DCR_CONNECTORS 역할이 필요합니다.

  1. 웹 앱에 로그인합니다.

  2. 왼쪽 탐색 모음에서 Admin » Profile & Features 를 선택합니다.

  3. 선택 사항: 활성화 커넥터를 사용자 지정하려면 다음 단계를 따르십시오.

    1. Activation 타일에서 Edit 를 선택합니다.

    2. 표시할 활성화 옵션을 선택한 다음 Save 를 선택합니다.

  4. 선택 사항: ID 및 데이터 공급자 커넥터를 사용자 지정하려면 다음 단계를 따르십시오.

    1. Identity & Data Provider 타일에서 Edit 를 선택합니다.

    2. 표시할 ID 옵션을 선택한 다음 Save 를 선택합니다.

클린룸에 브랜드 설정

클린룸 환경에 적합한 프로필을 구성하여 생성된 모든 클린룸에 로고와 회사 이름이 표시되도록 할 수 있습니다. 회사의 로고와 이름을 정의하려면 MANAGE_DCR_PROFILE_AND_FEATURES 역할이 필요합니다.

  1. 웹 앱에 로그인합니다.

  2. 왼쪽 탐색 모음에서 Admin » Profile & Features 를 선택합니다.

  3. Company profile 에서 다음을 수행합니다.

    1. JPG 또는 PNG 형식의 회사 로고를 업로드합니다. 이 로고는 생성된 모든 클린룸에 표시됩니다.

    2. Company Name 을 편집하여 환경에 생성된 클린룸에 표시할 이름을 정의합니다.

Single Sign-On(SSO) 활성화

SSO (Single Sign-On)를 사용하려면 Snowflake 지원팀 으로 문의하십시오.

키 페어 인증 허용

클린룸 환경의 서비스 계정 사용자가 Snowflake 계정과 통신할 때 사용하는 서비스 계정 사용자는 키 페어 인증 을 사용하여 인증합니다. Snowflake 계정에서 인증 정책 을 사용하여 사용자의 인증 방법을 제어하는 경우 서비스 계정 사용자를 제어하는 인증 정책에서 키 페어 인증을 허용해야 합니다.

키 페어 인증을 허용하려면 모든 인증 정책을 제거하거나 AUTHENTICATION_METHODS = ALL 또는 AUTHENTICATION_METHODS = KEYPAIR 로 인증 정책을 추가합니다. Snowflake 계정에 키 페어 인증을 허용하지 않는 계정 수준 인증 정책이 있는 경우, 적절한 매개 변수를 사용해 새 인증 정책을 만든 다음, 설치 과정 중에 만든 서비스 계정 사용자에게 정책을 할당해야 합니다.

이 명령을 실행하여 인증 정책을 확인할 수 있습니다.

SHOW AUTHENTICATION POLICIES;
Copy

결과 테이블이 비어 있으면 정책이 없음을 나타내며, 이는 키 페어 인증이 허용됨을 의미합니다.

Clean Room UI 에서 활성화 설정 또는 해제하기

Clean Room UI 사용 시 활성화는 Clean Room 관리자가 전체적으로 제어합니다. Clean Room API 에서의 활성화는 공급자가 Clean Room 수준에서 제어합니다.

이 섹션에서는 Clean Room UI 를 사용할 때 활성화를 설정하거나 해제하는 방법을 보여줍니다. API 를 사용할 때 활성화를 설정하는 방법을 알아보려면 활성화 지침 을 참조하십시오.

Clean Room UI 를 사용할 때 Clean Room 계정에서 공급자 및 컨슈머 활성화가 기본적으로 설정됩니다. 서드 파티 활성화는 수동으로 설정해야 합니다.

계정에서 UI 사용자의 활성화를 설정하거나 해제하는 방법은 다음과 같습니다.

  1. DCR 관리자로 웹 앱에서 Clean Room 환경에 로그인합니다.

  2. Admin » Profile & Features 를 선택합니다.

  3. Activation 섹션에서 Edit 을 선택합니다.

    • 컨슈머 활성화 를 관리하는 방법: Collaborator Account 옆의 확인란을 선택하거나 선택 취소합니다.

    • 공급자 활성화 를 관리하는 방법: 자신의 계정 이름 옆에 있는 확인란을 선택하거나 선택 취소합니다.

    • 서드 파티 활성화 를 관리하는 방법: 설정하거나 해제하려는 서드 파티 활성화 대상 옆의 확인란을 선택하거나 선택 취소합니다. 서드 파티 활성화는 커넥터를 통해 설정되며 Clean Room UI 에서만 사용 가능합니다. 사용 가능한 서드 파티 커넥터 목록을 참조하십시오.

Clean Room에서 활성화를 구현하는 방법을 알아보십시오.

네트워크 정책 구성하기

Snowflake 계정에서 네트워크 정책 을 사용하여 네트워크 트래픽을 제어하는 경우 웹 앱이 내 Snowflake 계정과 통신하는 데 사용하는 IP 주소의 트래픽을 명시적으로 허용해야 합니다.

아래 표에서 클라우드 공급자 계정 리전을 찾아 해당 행에 나열된 모든 IP 주소를 허용하도록 계정 네트워크 정책을 구성하십시오.

Snowflake 계정 리전

웹 앱에 다음 IP 주소 허용

  • AWS US 서부(오리건)

  • AWS US 동부(오하이오)

  • AWSUS 동부(북부 버지니아)

  • AWS 남아메리카(상파울루)

  • Azure 서부 US 2(워싱턴)

  • Azure 중부 US(아이오와)

  • Azure 중남부 US(텍사스)

  • Azure 동부 US 2(버지니아)

  • GCP US 중부1(아이오와)

  • GCP US 동부4(북부 버지니아)

52.7.249.136
34.195.16.248
52.7.210.215
  • AWS 캐나다(중부)

  • Azure 캐나다 중부(토론토)

15223145218
3.96.6.109
15.222.142.44
  • AWS EU(아일랜드)

  • AWS 유럽(런던)

  • AWS EU (파리)

  • AWS EU(프랑크푸르트)

  • AWS EU(스톡홀름)

  • AWS EU(취리히)

  • Azure UK 남부(런던)

  • Azure 북유럽(아일랜드)

  • Azure 서유럽(네덜란드)

  • Azure 스위스 북부(취리히)

  • Azure UAE 북부(두바이)

  • GCP 유럽 서부2(런던)

  • GCP 유럽 서부4(네덜란드)

54.93.86.99
3.126.238.8
3127143168
  • AWS 아시아 태평양(뭄바이)

  • Azure 인도 중부(푸네)

35.154.94.29
13235168249
15.206.48.175
  • AWS 아시아 태평양(싱가포르)

  • AWS 아시아 태평양(도쿄)

  • AWS 아시아 태평양(오사카)

  • AWS 아시아 태평양(서울)

  • AWS 아시아 태평양(자카르타)

  • Azure 동남아시아(싱가포르)

  • Azure 일본 동부(도쿄)

13.228.90.174
52.220.42.130
52.220.249.16
  • AWS 아시아 태평양(시드니)

  • Azure 호주 동부(뉴사우스웨일즈)

52.65.205.236
52.62.198.227
3.104.160.96

이 환경의 서비스 계정에 대한 세부 정보 보기

웹 애플리케이션은 서비스 계정을 사용하여 Snowflake와 통신합니다. 이 서비스 계정은 계정 관리자가 이 계정에 대한 Clean Room 환경을 설치할 때 만들었습니다.

서비스 계정 사용자에 대한 세부 정보는 수정할 수 없습니다.

이 Clean Room 환경에 대한 서비스 계정에 대한 자세한 내용을 보려면 MANAGE_DCR_PROFILE_AND_FEATURES 역할이 필요합니다.

  1. /INCLUDE/cleanrooms/text/text-sign-in-page.txt

  2. Admin > Snowflake Admin 으로 이동합니다.

  3. Snowflake Admin 페이지에서 서비스 사용자 이름과 서비스 사용자 이메일 등의 정보를 확인할 수 있습니다.