보안과 거버넌스 — RBAC, 데이터 공유, 컬럼/행 단위 접근 통제
55 Snowflake Interview Questions Hiring DEs Actually Ask (2026) — 미상 (데이터 엔지니어 인터뷰 준비 블로그, 2026) Security & Governance Q31-Q40 (pp.11-13); [보조] Databricks vs Snowflake - Security and Governance: Snowflake 절 (p.10)
이 모듈을 다 읽으면
- RBAC에서 권한이 유저가 아닌 롤에 부여되는 설계가 왜 관리를 단순화하는지 설명할 수 있다
- 시스템 정의 롤 5종의 역할 분담과, 이후 추가된 조직 레벨 롤의 위치를 구분할 수 있다
- Dynamic Data Masking과 Row Access Policy가 각각 어떤 축(컬럼 vs 행)의 접근을 통제하는지 설명할 수 있다
- Secure Data Sharing과 Reader Account가 데이터 제공자·소비자 관계에서 비용을 어떻게 분담시키는지 설명할 수 있다
Snowflake의 RBAC는 권한을 유저가 아닌 롤에 부여하고, 롤을 다시 유저나 다른 롤에 부여하는 계층 구조로 관리 부담을 줄인다. 시스템 정의 롤(ACCOUNTADMIN/SECURITYADMIN/USERADMIN/SYSADMIN/PUBLIC)은 계정 단위 롤이며, 이후 여러 계정을 묶는 조직(Organization) 개념이 도입되면서 그보다 상위 스코프의 ORGADMIN 롤이 추가됐다. Secure Data Sharing과 Reader Account는 데이터 이동 없이 실시간 데이터를 공유하는 Snowflake 특유의 기능이고, Dynamic Data Masking(컬럼 단위)과 Row Access Policy(행 단위)는 서로 다른 축에서 세밀한 접근 통제를 제공한다. MFA 정책 역시 원문이 서술한 시점 이후 상당히 확장되었다.
RBAC와 시스템 정의 롤 — 정정(조직 레벨 롤 추가)
Snowflake는 계층적 롤을 통해 보안을 관리한다. 권한은 절대 사용자에게 직접 부여되지 않고 항상 롤에 부여되며, 사용자는 하나 이상의 롤에 배정된다. 예를 들어 DATA_ENGINEER 롤에 테이블 생성 권한을 부여해두면, 새로 합류하는 엔지니어에게는 그 롤만 배정하면 된다. 롤은 다른 롤에도 부여될 수 있어 상속 체인을 구성할 수 있다.
시스템 정의 롤은 다섯 가지다. ACCOUNTADMIN(계정의 모든 객체·설정에 대한 전권을 가진 최상위 롤, 극소수 사용자에게만 부여해야 함), SECURITYADMIN(사용자·롤 생성 및 관리 총괄), USERADMIN(사용자·롤 생성 전담, 흔히 SECURITYADMIN과 함께 사용), SYSADMIN(데이터베이스·스키마·웨어하우스 생성·관리를 위한 주력 롤), PUBLIC(시스템의 모든 사용자가 자동으로 속하는 롤).
정정 — 원문은 이 다섯 개를 계정(account) 스코프의 전부인 것처럼 나열하지만, Snowflake는 여러 계정을 하나의 조직(Organization)으로 묶는 기능을 도입하면서 ACCOUNTADMIN보다 상위 스코프에서 동작하는 ORGADMIN 롤을 추가했다. ORGADMIN은 조직 내 신규 계정 생성·관리, 조직 전체 단위의 크레딧 사용량 모니터링 등을 담당하며, 여러 계정을 운영하는 대규모 조직의 거버넌스에서 중요한 역할을 한다.
핵심 포인트
- 권한은 사용자가 아닌 롤에 부여되고, 롤이 사용자나 다른 롤에 배정되는 구조로 관리가 단순화된다
- 시스템 정의 롤은 ACCOUNTADMIN/SECURITYADMIN/USERADMIN/SYSADMIN/PUBLIC 다섯 가지다
- 정정: 이후 여러 계정을 묶는 조직 개념이 도입되며 ACCOUNTADMIN보다 상위 스코프의 ORGADMIN 롤이 추가되었다
데이터 공유: Secure Data Sharing과 Reader Account
Secure Data Sharing은 한 계정(제공자, Provider)이 다른 계정(소비자, Consumer)에게 특정 테이블이나 뷰에 대한 접근 권한을 데이터 이동 없이 부여하는 기능이다. 소비자는 제공자의 스토리지에서 데이터를 직접 조회하므로 데이터는 항상 최신 상태이며, 복잡한 ETL이나 FTP 프로세스로 조직 간 데이터를 옮길 필요가 없어진다.
Reader Account는 자체 Snowflake 계정이 없는 소비자를 위해 데이터 제공자가 만들어주는 제한된 접근 권한의 특수 계정이다. 제공자가 이 계정에 데이터를 공유하고, 소비자는 그 계정으로 데이터를 조회한다. 결정적으로 Reader Account에서 발생하는 모든 컴퓨트(웨어하우스) 비용은 제공자가 부담한다 — 이는 자체 Snowflake 계정이 없는 고객에게 데이터 접근을 제공해야 하는 SaaS 기업들이 흔히 쓰는 방식이다.
핵심 포인트
- Secure Data Sharing은 데이터 이동 없이 제공자 스토리지를 소비자가 직접 조회하게 해 항상 최신 데이터를 보장한다
- Reader Account는 자체 계정이 없는 소비자를 위한 제한된 계정이며, 컴퓨트 비용은 데이터 제공자가 부담한다
- 이 두 기능은 조직 간 ETL/FTP 없이도 실시간 데이터 접근을 가능하게 하는 Snowflake 특유의 기능이다
컬럼/행 단위 접근 통제와 암호화
Dynamic Data Masking은 컬럼 단위 접근 통제 기능으로, 쿼리를 실행하는 사용자의 롤에 따라 민감한 데이터(예: 신용카드 번호)를 동적으로 가리는 '마스킹 정책'을 정의할 수 있다. 예컨대 FINANCE 롤은 전체 번호를 보고, SUPPORT 롤은 뒷자리만 보는 식이다. 데이터 자체는 스토리지에 마스킹되지 않은 원본 그대로 저장되며, 마스킹은 쿼리 실행 시점에 동적으로 적용된다.
Row Access Policy(행 수준 보안, RLS)는 반대로 행 단위 접근을 통제한다 — 예를 들어 지역별 영업 담당자가 SALES 테이블에서 자신의 Region 값에 해당하는 행만 보도록 강제할 수 있다. 이 정책은 어떤 도구로 접근하든 모든 쿼리에 대해 평가되므로 우회가 어렵다.
Secure View는 뷰의 SQL 정의를 숨기고 일부 내부 최적화를 비활성화해, 뷰 정의나 쿼리 최적화 동작을 관찰해 원본 데이터에 대한 정보를 추론하는 것을 막는다. 외부 파트너나 다른 사업부에 데이터를 노출할 때의 표준으로 여겨진다.
암호화 측면에서는 모든 데이터가 기본적으로 AES-256으로 암호화되며, 계층적 키 모델로 자동 로테이션·재암호화가 이루어진다. 저장 시(at rest)와 전송 시(in transit, TLS) 모두 암호화되고, 상위 보안 등급(Business Critical 이상)에서는 Snowflake 관리 키와 고객이 자체 클라우드 KMS에서 관리하는 키를 결합한 Tri-Secret Secure를 사용할 수 있다. 네트워크 정책(Network Policy)은 IP 기반 화이트/블랙리스트로 계정 또는 특정 사용자 단위의 접근을 제한한다.
핵심 포인트
- Dynamic Data Masking은 쿼리 실행 시점에 롤에 따라 컬럼 값을 동적으로 가리는 컬럼 단위 통제다
- Row Access Policy(RLS)는 행 단위 통제이며 어떤 도구로 접근하든 모든 쿼리에 적용되어 우회가 어렵다
- Secure View는 SQL 정의를 숨기고 최적화 동작을 통해 정보가 새는 것을 막아 외부 데이터 공유의 표준으로 쓰인다
- Tri-Secret Secure는 Snowflake 관리 키와 고객 자체 KMS 키를 결합하는 Business Critical 이상 등급의 암호화 옵션이다
다중 인증(MFA) — 정정(Duo 전용에서 다중 인증 수단·의무화 정책으로 확장)
정정 — 원문(Q40)은 Snowflake의 MFA를 'Duo Security와의 연동'으로만 설명한다. 이는 한때 정확했지만 현재는 범위를 좁게 서술한 것이다. Snowflake는 이후 WebAuthn 기반 인증(하드웨어 보안 키, 플랫폼 생체인증 등)을 포함한 다양한 인증 수단을 지원하도록 MFA를 확장했고, 계정 관리자가 허용되는 인증 방식을 세밀하게 지정할 수 있는 MFA 정책(authentication policy)도 도입했다.
더 나아가 Snowflake는 모든 사람(human) 사용자에 대해 MFA를 단계적으로 의무화하는 방향의 정책을 발표했다 — 즉 비밀번호 단독 인증만으로 로그인하는 방식을 점진적으로 축소하는 추세다. ACCOUNTADMIN처럼 강력한 권한을 가진 롤일수록 이런 강제 정책이 우선 적용되는 경향이 있다. 원문의 'Duo를 통한 MFA 권장' 서술은 방향은 맞지만, 실제로는 '다양한 인증 수단 지원 + 조직 차원의 의무화'로 이해하는 것이 현재 상황에 더 가깝다.
핵심 포인트
- 정정: Snowflake MFA는 Duo Security에 한정되지 않고 WebAuthn 등 다양한 인증 수단을 지원하도록 확장되었다
- 계정 관리자는 인증 정책(authentication policy)으로 허용되는 인증 방식을 세밀하게 통제할 수 있다
- Snowflake는 모든 사람 사용자에 대한 MFA를 단계적으로 의무화하는 방향으로 정책을 발전시키고 있다