다자간 승인
다자간 승인 (Multi-party Approval)
이 문서는 Snowflake의 다자간 승인(Multi-party Approval) 기능을 설명해요.
본문
개요
다자간 승인은 하나의 실행 엔진(또는 병렬-실행 엔진)에서 실행되어, SQL 쿼리의 여러 하위 계획을 각각 다른 당사자(party)가 승인하도록 요구하는 보안 기능이에요. 이 기능은 상호 신뢰하지 않는 당사자들이 협업하는 환경(예: 데이터 클린 룸, 보안 멀티파티 컴퓨팅)에서 쿼리 승인을 분산·감사 가능하게 해요.
다자간 승인은 쿼리 실행을 여러 엔진(per-party querier)으로 분할하고, 각 당사자가 자신과 관련된 부분만 실행·승인하도록 해요. 이렇게 하면 어떤 단일 당사자도 전체 쿼리 계획을 보지 못하므로 데이터 프라이버시와 무결성이 강화돼요.
동작 방식
다자간 승인은 다음 방식으로 동작해요:
- 쿼리 계획이 여러 하위 계획으로 분할돼요.
- 각 하위 계획은 당사자별로 라벨링되고, 해당 당사자의 쿼리어(querier) 인스턴스에서 실행돼요.
- 각 당사자의 승인이 필요한 실행 단계가 있으면 승인을 요청해요.
- 승인이 수집되면 최종 결과가 반환돼요.
핵심 개념:
- Querier: 쿼리를 실행하는 엔진 인스턴스.
- Party: 협업에 참여하는 당사자. 각 당사자는 고유한 querier를 가져요.
- IMPLAN / APPROVAL: 승인 단계를 포함하는 계획 요소.
다자간 승인 사용 조건
다자간 승인은 특히 Snowflake Data Clean Rooms 환경에서 사용돼요. 데이터 클린 룸에서 여러 당사자가 데이터를 공유하고, 각 당사자가 승인한 방식으로만 쿼리가 실행되도록 보장해요.
승인 흐름 예시
두 당사자가 협업하는 간단한 예시:
- Party A와 Party B가 각자 데이터를 보유.
- 쿼리가 두 데이터 세트에 걸쳐 조인을 수행.
- 각 당사자의 querier가 자신의 데이터 부분을 처리하고, 특정 실행 단계(예: 결과 공개)에 대해 승인을 요청.
- 모든 필요한 승인이 모이면 쿼리 결과가 반환.
최소 권한과 보안
- 각 당사자는 전체 쿼리 계획이 아닌 자신과 관련된 부분만 볼 수 있어요.
- 승인 단계는 당사자별로 독립적으로 기록되어 감사가 가능해요.
- 이 기능은 데이터 프라이버시를 보호하면서 협업 분석을 가능하게 해요.
고려 사항
- 다자간 승인은 멀티파티 협업 시나리오에 특화되어 있어요.
- Snowflake Data Clean Rooms와 함께 사용될 때 가장 흔하게 활용돼요.
- 자세한 구성은 Snowflake Data Clean Rooms 문서를 참고하세요.