조직 리스팅 만들기

조직 리스팅 만들기

조직 리스팅을 만들어 조직 내에서 데이터 제품을 안전하게 공유할 수 있어요. 조직 리스팅을 만들기 전에 사전 요구 사항, 알려진 제한 사항, 고려 사항을 검토하세요.

출처: Create an organizational listing

본문

사전 요구 사항

  • 조직에 ORGADMIN 역할이 있어요. (조직 계정은 선택 사항이에요.)

알려진 제한 사항

  • 정부 및 특수 리전에서의 조직 리스팅 지원은 현재 다음 리전에서 프리뷰 상태예요.
    • FRM: US-EAST-1
    • FRM: US-WEST-2
    • KSA: GCPMECENTRAL2
    • 이러한 배포에는 다음 제한 사항이 적용돼요.
      • 정부 리전에서 사용자 정의 조직 프로필을 만드는 것은 지원되지 않아요.
      • 조직 계정의 ACCESS_HISTORY 뷰는 사용할 수 없어요.
      • 상용 또는 Virtual Private Snowflake(VPS) 계정에서 만든 조직 리스팅은 검색, 필터링, 탐색 시 표시되지 않아요.
  • 특정 리전을 타겟팅하려면 API를 사용해야 해요.
  • 지원되는 데이터 제품: Snowflake Native App Framework와 셰어(shares).
  • Snowflake Native App을 포함하는 조직 리스팅은 접근 또는 발견을 위한 타겟 역할을 지원하지 않아요.
  • 조직 리스팅을 사용할 때 다음 기능은 지원되지 않아요.
    • Provider Studio 분석.
    • 리더 계정(reader accounts).
  • Snowsight를 사용해 조직 리스팅에서 특정 리전을 지정할 수 없어요. 대신 리스팅을 프로그래밍 방식으로 만들거나 변경할 때 매니페스트 YAML 파일에 리전을 지정할 수 있어요.
  • 조직 리스팅 권한을 할당할 때 Snowflake는 셰어에 부여된 모든 데이터베이스 역할을 로드해요. 이로 인해 소비자가 mountless 리스팅에서 쿼리를 실행할 때 마스킹되지 않은 데이터를 볼 수 있게 돼요. 이 동작을 피하려면 리스팅을 마운트하고 ULL로 데이터베이스 역할을 사용하지 마세요.

고려 사항

  • 전체 조직을 타겟팅하기 전에 외부 테넌트가 있는지 확인하세요. 외부 테넌트와 공유하려는 것이 아니라면 데이터 제품을 조직 리스팅에 추가하기 전에 타겟 계정을 조정하세요.
  • 각 셰어는 하나의 리스팅에만 연결할 수 있어요.
  • 각 Native App은 하나 이상의 리스팅에 연결할 수 있어요.
  • 조직 리스팅이 있는 계정에 대한 조직 변경(예: 합병)은 Snowflake 지원에 연락하세요.

접근 제어 요구 사항

여기 제공된 정보를 사용해 조직 리스팅 SQL 명령을 실행하는 데 필요한 특정 역할과 권한을 결정해요.

지정된 권한 집합을 가진 사용자 정의 역할을 만드는 방법은 사용자 정의 역할 만들기를 참고하세요.

보호 가능한 객체에서 SQL 작업을 수행하기 위한 역할 및 권한 부여에 대한 일반 정보는 접근 제어 개요를 참고하세요.

조직 리스팅 권한 할당

조직 리스팅을 만들려면 역할이 셰어 생성 및 관리에 표시된 대로 셰어를 만들 수 있는 필수 권한과, 셰어를 사용해 조직 리스팅을 만들기 위한 권한에 표시된 대로 그것으로 조직 리스팅을 만들 수 있는 필수 권한을 가져야 해요.

셰어 생성 및 관리

셰어를 만들고 셰어 내부의 객체를 만들고 관리하려면 역할이 데이터 객체, 스키마, CREATE SHARE 명령에 대한 필수 권한을 가져야 해요.

권한 객체 설명
CREATE SHARE ACCOUNT 셰어를 만들기 위해 필요.
grants 옵션이 있는 OWNERSHIP 또는 USAGE DATABASE 지정된 데이터베이스를 보고 사용하기 위해 필요.
grants 옵션이 있는 OWNERSHIP 또는 USAGE SCHEMA 지정된 스키마를 보기 위해 필요.
SELECT TABLE 지정된 스키마의 지정된 테이블을 쿼리하기 위해 필요.

스키마의 객체에 대해 작업을 수행하려면 상위 데이터베이스와 스키마에 대한 USAGE 또는 다른 권한이 필요해요.

셰어를 사용해 조직 리스팅을 만들기 위한 권한

셰어 관련 권한 외에 조직 리스팅을 만들려면 다음 권한 중 하나가 필요해요.

권한 객체 설명
CREATE ORGANIZATION LISTING ACCOUNT 조직 리스팅을 만들고 변경하기 위해 필요.
CREATE LISTING ACCOUNT 조직 리스팅과 프라이빗 리스팅을 만들고 변경하기 위해 필요.
조직 리스팅을 변경하기 위한 권한

리스팅을 변경하려면 다음 권한 중 하나가 필요해요.

권한 설명
OWNERSHIP 추가 grant 옵션 없이 셰어를 ALTER할 수 있어요.
grants 옵션이 있는 MODIFY 역할에 modify 권한을 부여한 뒤 셰어를 ALTER할 수 있어요. 다음을 사용해 수행할 수 있어요.
GRANT MODIFY ON DATA EXCHANGE LISTING <listing_name> TO ROLE <role_name>

조직 리스팅 사용 또는 쿼리

조직 리스팅을 직접 사용하려면 추가 권한 없이 ULL(Uniform Listing Locator)을 참조할 수 있어요. 리스팅을 마운트해야 한다면 다음 권한이 필요해요.

권한 객체 설명
IMPORT ORGANIZATION LISTING ACCOUNT 조직 리스팅을 가져오기 위해 필요.
CREATE DATABASE ACCOUNT 데이터베이스를 만들고 리스팅 객체를 마운트하기 위해 필요.

리스팅 자동 이행 설정 관리

조직 리스팅의 자동 이행 설정을 관리하기 전에, 리스팅 자동 이행을 관리하는 데 필요한 역할을 갖추고 있는지 확인하세요. 자세한 내용은 자동 이행 필수 권한을 참고하세요.

이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 가져야 해요.

권한 객체 설명
MANAGE LISTING AUTO FULFILLMENT ACCOUNT 자동 이행 설정을 구성하기 위해 필요.

Snowsight 또는 SQL에서 조직 리스팅 만들기

  1. Snowsight에 로그인해요.

  2. 탐색 메뉴에서 Data sharing › Internal sharing을 선택해요.

  3. + Create Listing을 선택해요.

  4. 리스팅에 추가할 테이블, 뷰 또는 다른 데이터 제품을 선택해요.

  5. 생성된 셰어 식별자를 검토한 뒤 Generate listing을 선택해요.

  6. 리스팅 이름을 입력하고 생성된 Universal Listing Locator를 검토한 뒤 Save를 선택해요.

  7. 누가 리스팅에 접근할 수 있는지(타겟 계정, 역할, 리전) 지정하려면 + Access Control을 선택해요. Access and discovery 대화 상자가 표시돼요.

    • Grant access 섹션을 완료해요.

      필드 설명
      Who can access this data product? 다음 중 하나를 선택해요. Entire organization: 조직의 모든 사람이 리스팅에 접근할 수 있어요. Entire organization을 선택하고 계정에서 크로스 클라우드 자동 이행이 활성화되어 있다면, 리스팅의 자동 이행 새로고침 설정을 검토하라는 안내가 표시돼요. Selected accounts and roles: 선택한 계정과 역할만 접근할 수 있어요. No accounts or roles are pre-approved: (기본값) 데이터 제품은 요청 시에만 사용 가능해요.
      Accounts Selected accounts and roles를 선택한 경우 하나 이상의 계정을 선택해요. 선택 사항. 두 번째 및 이후 계정을 추가하려면 + Add another account를 선택해요. 기본적으로 선택한 계정의 모든 역할이 리스팅에 접근할 수 있어요. 선택한 각 계정의 특정 역할에만 접근을 부여하려면 Selected roles를 선택해요.
    • Allow discovery 섹션을 완료해요.

      필드 설명
      Who else can discover the listing and request access? 다음 중 하나를 선택해요. Entire organization: (기본값) 조직의 모든 사람이 리스팅을 발견하고 접근을 요청할 수 있어요. Grant access 섹션에서 Entire organization을 지정한 경우 이 필드는 선택되고 비활성화돼요. Selected accounts and roles: 선택한 계정과 역할만 리스팅을 발견하고 접근을 요청할 수 있어요. Not discoverable by users without access: 접근이 있는 사용자만 이 리스팅을 발견할 수 있어요.
      Accounts Select accounts and roles를 선택한 경우 하나 이상의 계정을 선택해요. 선택 사항. 두 번째 및 이후 계정을 추가하고 특정 역할에 접근을 부여하려면 + Add another account를 선택해요.
      Selected user roles Selected roles를 선택한 경우 접근을 부여할 역할을 하나 이상 입력해요.
    • Allow discovery가 Selected accounts and roles라면 Set up request approval flow를 선택해요.

    • Set up request approval flow 대화 상자에서 How should the request approval happen? 목록의 다음 옵션 중 하나를 선택해요.

      • Manage requests in Snowflake: 요청 승인자의 이메일 주소를 입력하고, 선택적으로 요청을 승인할 수 있는 추가 역할을 지정해요.
      • Manage requests outside of Snowflake: 요청 승인자의 이메일 주소를 입력하거나 내부 티켓팅 시스템을 가리키는 URL을 입력해요.

      주의 데이터 제품이 전체 조직에서 접근할 수 있거나, 접근이 없는 사용자가 발견할 수 없는 경우 Set up request approval flow 버튼을 사용할 수 없어요.

  8. 리스팅을 완성해요. 소비자를 안내하는 리스팅 페이지에 설명 같은 추가 정보를 입력해요. 이러한 필드에 대한 자세한 내용은 리스팅 구성 문서를 참고하세요.

    • 설명(Description)
    • 데이터 사전(Data dictionary)
    • 빠른 시작 예시(Quick start examples)
    • 지원 연락처를 포함한 세부 정보(Details)
    • 문서 링크(Documentation links)
    • 서비스 약관(Terms of service)
    • 속성(Attributes)
  9. Publish를 선택해 Internal Marketplace에서 리스팅을 사용할 수 있게 해요. 게시하지 않고 종료하면 리스팅은 검토나 설명 메타데이터 추가를 위한 준비가 된 드래프트로 저장돼요.

셰어에서 YAML에 필수 속성($$ 구분 기호로 입력)을 포함해 조직 리스팅을 만들어요.

이 매니페스트 YAML 부분은 조직 리스팅을 사용할 수 있는 계정을 지정해요.

organization_targets:
  access:

이 예시는 매니페스트 YAML의 필수 설정으로 리스팅을 만들어요. 한 리전의 한 계정에서 한 역할을 타겟팅하고 지원 및 승인자 연락처를 포함해요.

주의 support_contact는 필수예요. 발견(discovery) 타겟이 제공되면 approver_contact도 필수예요. 요청-접근 워크플로 옵션은 Internal Marketplace의 요청 접근 워크플로를 참고하세요.

USE ROLE <organizational_listing_role>;

CREATE ORGANIZATION LISTING <organization_listing_name>
SHARE <share_name> AS
$$
title: "My title"
description: "One region, all accounts"
organization_profile: "INTERNAL"
organization_targets:
  discovery:
  - account: "<account_name>"
    roles:
    - "<role>"

  access:
  - account: "<account_name>"
    roles:
    - "<role>"

support_contact: "[email protected]"
approver_contact: "[email protected]"
locations:
  access_regions:
  - name: "PUBLIC.<snowflake_region>"
$$;

조직 리스팅의 모든 필드와 값의 전체 목록은 조직 리스팅 매니페스트 참조 문서를 참고하세요. 추가 예시는 조직 리스팅을 발견하고 접근할 수 있는 대상 설정 문서를 참고하세요.

더 알아보기