다자간 승인

다자간 승인 (Multi-party Approval)

이 문서는 Snowflake의 다자간 승인(Multi-party Approval) 기능을 설명해요.

출처: Multi-party Approval

본문

개요

다자간 승인은 하나의 실행 엔진(또는 병렬-실행 엔진)에서 실행되어, SQL 쿼리의 여러 하위 계획을 각각 다른 당사자(party)가 승인하도록 요구하는 보안 기능이에요. 이 기능은 상호 신뢰하지 않는 당사자들이 협업하는 환경(예: 데이터 클린 룸, 보안 멀티파티 컴퓨팅)에서 쿼리 승인을 분산·감사 가능하게 해요.

다자간 승인은 쿼리 실행을 여러 엔진(per-party querier)으로 분할하고, 각 당사자가 자신과 관련된 부분만 실행·승인하도록 해요. 이렇게 하면 어떤 단일 당사자도 전체 쿼리 계획을 보지 못하므로 데이터 프라이버시와 무결성이 강화돼요.

동작 방식

다자간 승인은 다음 방식으로 동작해요:

  1. 쿼리 계획이 여러 하위 계획으로 분할돼요.
  2. 각 하위 계획은 당사자별로 라벨링되고, 해당 당사자의 쿼리어(querier) 인스턴스에서 실행돼요.
  3. 각 당사자의 승인이 필요한 실행 단계가 있으면 승인을 요청해요.
  4. 승인이 수집되면 최종 결과가 반환돼요.

핵심 개념:

  • Querier: 쿼리를 실행하는 엔진 인스턴스.
  • Party: 협업에 참여하는 당사자. 각 당사자는 고유한 querier를 가져요.
  • IMPLAN / APPROVAL: 승인 단계를 포함하는 계획 요소.

다자간 승인 사용 조건

다자간 승인은 특히 Snowflake Data Clean Rooms 환경에서 사용돼요. 데이터 클린 룸에서 여러 당사자가 데이터를 공유하고, 각 당사자가 승인한 방식으로만 쿼리가 실행되도록 보장해요.

승인 흐름 예시

두 당사자가 협업하는 간단한 예시:

  • Party A와 Party B가 각자 데이터를 보유.
  • 쿼리가 두 데이터 세트에 걸쳐 조인을 수행.
  • 각 당사자의 querier가 자신의 데이터 부분을 처리하고, 특정 실행 단계(예: 결과 공개)에 대해 승인을 요청.
  • 모든 필요한 승인이 모이면 쿼리 결과가 반환.

최소 권한과 보안

  • 각 당사자는 전체 쿼리 계획이 아닌 자신과 관련된 부분만 볼 수 있어요.
  • 승인 단계는 당사자별로 독립적으로 기록되어 감사가 가능해요.
  • 이 기능은 데이터 프라이버시를 보호하면서 협업 분석을 가능하게 해요.

고려 사항

  • 다자간 승인은 멀티파티 협업 시나리오에 특화되어 있어요.
  • Snowflake Data Clean Rooms와 함께 사용될 때 가장 흔하게 활용돼요.
  • 자세한 구성은 Snowflake Data Clean Rooms 문서를 참고하세요.

더 알아보기 (Learn more)