[Snowflake] Key Pair Authentication, OAuth & SCIM

차지예·2026년 6월 6일

Snowflake

목록 보기
23/49
post-thumbnail

1. Key Pair Authentication

⭐ 키워드

  • 최소 2048-bit RSA 키 페어 필요
  • OpenSSLPEM 형식 키 생성
  • 사용자에게 할당: ALTER USER ... SET RSA_PUBLIC_KEY=...
  • basic auth(아이디/비번)의 대안으로 사용

⭐ 4단계 흐름

① Generate Key-Pair (OpenSSL)
② Assign Public Key   → ALTER USER USER1 SET RSA_PUBLIC_KEY='...';
③ Configure Client    (SnowSQL, Python, JDBC, ODBC ...)
④ Key-Pair Rotation

⭐⭐ Rotation(로테이션) — 시험 1순위

  • 최대 2개 공개키 동시 운영 가능 (RSA_PUBLIC_KEY + RSA_PUBLIC_KEY_2)
ALTER USER USER1 SET RSA_PUBLIC_KEY_2='...';  -- 새 키 추가
ALTER USER USER1 UNSET RSA_PUBLIC_KEY;        -- 옛 키 제거

💡 암기 팁: "1개 추가(SET _2) → 1개 제거(UNSET)" = 키가 없는 공백시간이 없다

⭐ 함정 포인트

암호화 개인키(encrypted) 미지원 클라이언트 = Spark / Kafka / Go
암기: "스카고(Spark·Kafka·Go)는 암호화 안 됨"
나머지(Python, JDBC, ODBC, .NET, Node.js, SnowSQL)는 전부 지원 ✔


2. OAuth

⭐ 한 줄 정의

Snowflake는 인증·인가를 위해 OAuth 2.0 프로토콜을 지원한다.
→ 사용자 로그인 자격증명을 공유/저장하지 않고 접근 권한 부여 (open-standard)

⭐⭐ 두 경로 차이 - 중요

구분Snowflake OAuthExternal OAuth
인가 서버(Authorization Server)Snowflake 자신외부 IdP(고객)
주 용도파트너 앱 (Tableau, Looker 등)기업 SSO / 머신-투-머신

💡 암기 포인트: "Snowflake OAuth = 눈송이가 직접 / External = 남(외부 IdP)이 대신"

⭐ 흘려보면 안 되는 디테일

  • 인증 결과 컬럼값: FIRST_AUTHENTICATION_FACTOR = OAUTH_ACCESS_TOKEN
  • 기본 차단 역할: ACCOUNTADMIN / ORGADMIN / GLOBALORGADMIN / SECURITYADMIN
    • 암기: "관리자 4종(ACCOUNT·ORG·GLOBALORG·SECURITY)은 OAuth 기본 차단"

3. SCIM

⭐ 한 줄 정의

System for Cross-domain Identity Management
→ Snowflake와 서드파티 IdP 사이 인터페이스를 만들어 사용자/그룹(=role)을 자동 관리
RESTful API로 user/group 프로비저닝

⭐⭐ 포인트

  • SCIM의 group ↔ Snowflake의 role 매핑
  • 지원 IdP 3종: Okta / Microsoft Entra ID / Custom
    • 암기: "옥-엔-커(Okta·Entra·Custom)"
  • 소유권 규칙(자주 출제): SCIM 역할이 가져온 user/role을 소유해야 동기화됨
  • RUN_AS_ROLE 값: OKTA_PROVISIONER / AAD_PROVISIONER / GENERIC_SCIM_PROVISIONER

🎯 중요 포인트

주제1순위 암기
Key Pair최소 2048-bit RSA, OpenSSL/PEM
Rotation최대 2개 키 (RSA_PUBLIC_KEY + _2), SET 추가 → UNSET 제거
암호화 미지원스카고(Spark·Kafka·Go)
OAuth 두 경로Snowflake OAuth=Snowflake가 인가서버 / External=외부 IdP
OAuth 차단 역할ACCOUNT·ORG·GLOBALORG·SECURITY admin
OAuth 인증값OAUTH_ACCESS_TOKEN
SCIMRESTful API, group=role, IdP 옥-엔-커
SCIM 규칙SCIM 역할이 소유해야 동기화

0개의 댓글