클린룸 사용자 및 액세스 관리

개요

이 항목에서는 계정 관리자가 계정의 클린룸 UI 및 API에 대한 사용자 액세스를 관리하는 방법을 설명합니다.

클린룸 UI 및 API에 대한 액세스는 별도로 부여됩니다. 클린룸은 API에 대한 액세스와 UI의 다양한 하위 섹션에 대한 액세스를 허용하는 여러 애플리케이션 역할을 정의합니다. 계정 관리자는 사용자 지정 역할을 생성하고, UI 및 API에 대한 세분화된 액세스를 허용하기 위해 원하는 애플리케이션 역할을 부여한 다음, 해당 계정의 다양한 사용자에게 역할을 부여합니다.

이 전략은 Snowflake 역할 기반 액세스 제어(RBAC) 모델을 사용하여 계정의 클린룸 사용자와 공동 작업자에게 권한을 적절하게 위임할 수 있습니다. RBAC에 대한 자세한 내용은 액세스 제어의 개요 를 참조하십시오. 특정 역할이 부여된 사용자를 확인하려면 다음 SQL 명령을 실행하세요.

SHOW GRANTS OF ROLE <role_name>;
Copy

이 항목에서는 다음과 같은 용어를 사용합니다.

  • 클린룸 사용자: Snowflake 계정의 클린룸 UI 또는 API에 대한 액세스 권한이 부여된 사용자.

  • 클린룸 공동 작업자: 클린룸 공급자가 클린룸에 초대한 컨슈머. 공동 작업자는 클린룸 사용자이기도 합니다. 즉, 공동 작업자는 초대를 수락하고 클린룸을 사용하려면 클린룸 UI 또는 API에 액세스할 수 있어야 합니다.

클린룸 UI에 대한 액세스 관리

적절한 역할로 클린룸 UI에 액세스할 수 있습니다. 또한 클린룸 사용자에게는 기본 웨어하우스를 할당해야 하며 해당 웨어하우스에 대한 USAGE 권한을 부여해야 합니다.

다음 역할은 클린룸 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>;
Copy

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 액세스 권한 부여 또는 취소하기

SAMOOHA_APP_ROLE 역할은 사용자에게 계정의 모든 클린룸에 대한 전체 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 액세스 권한 부여하기

계정의 지정된 클린룸에 대해 제한된 API 액세스 권한을 부여할 수 있습니다. 제한된 액세스는 consumer.run_analysis 등 :ref:`컨슈머 프로시저의 하위 세트<label-dcr_sproc_consumer_manage_role_access>`만 호출할 수 있는 권한을 부여합니다. 하지만 클린룸을 설치, 생성, 조인 또는 수정하는 기능은 없습니다.

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

  1. 전체 API 액세스 권한이 있고 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 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;
    
    Copy
  2. 그런 다음 사용자는 제한된 역할을 사용하여 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');
    
    Copy

제한된 API 액세스 취소하기

  • 특정 역할에서 특정 클린룸에 대한 실행 권한을 취소하려면 :ref:`label-dcr_consumer_revoke_run_on_cleanrooms_from_role`을 호출하세요.

  • 단일 사용자에게 부여된 모든 실행 권한을 취소하려면 사용자로부터 역할을 취소하세요.

Clean Room 공동 작업자 관리하기

*공동 작업자*는 클린룸 공급자가 클린룸에 컨슈머로 초대한 사용자입니다.

클린룸 UI 사용 시, 제작자는 MANAGE_DCR_COLLABORATORS 역할을 사용하여 누군가가 관리하는 공동 작업자 목록에서 공동 작업자를 초대할 수 있습니다.

클린룸 API 사용 시, 공급자는 미리 정의된 공동 작업자 목록의 제한을 받지 않으며, Snowflake 계정 로케이터로 클린룸 공동 작업자를 추가할 수 있습니다. Snowflake 계정 없이 공동 작업자를 초대하려면 먼저 클린룸 관리형 계정 만들기 섹션을 참조하세요.

참고

Snowflake 공동 작업자가 내 Snowflake 계정과 다른 리전에 계정을 가지고 있는 경우, 계정 관리자가 클라우드 간 자동 복제를 활성화해야 공동 작업자로 추가할 수 있습니다.

클린룸 UI에서 사용되는 공동 작업자 목록을 관리하려면 :ref:`MANAGE_DCR_COLLABORATORS 역할<label-dcr_manage_ui_users>`이 필요합니다.

  1. Snowflake Data Clean Rooms 로그인 페이지 로 이동합니다.

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

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

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

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