본문으로 건너뛰기
snowflake검색
보안과 거버넌스

인증 (MFA 의무화, 키 페어, PAT, 워크로드 아이덴티티)

비밀번호 단일 인증이 막히는 Snowflake MFA 의무화 일정과 사용자 유형(PERSON, SERVICE, LEGACY_SERVICE), 사람과 서비스에 맞는 인증 방식 고르기, 키 페어 순환, 프로그래밍 방식 액세스 토큰(PAT), 워크로드 아이덴티티 페더레이션, OAuth 와 SSO, 로그인 오류 해결을 정리합니다.

MFA키 페어PAT워크로드 아이덴티티OAuthSSO사용자 유형2026-10 기준, 약 8분상태 표시 설명

비밀번호만으로는 끝났습니다

Snowflake 는 비밀번호 단일 인증을 단계적으로 막고 있습니다. 2026-10 기준 일정은 다음과 같습니다.

단계기간내용
1단계2025년 9월부터 2026년 1월까지비밀번호로 Snowsight 에 로그인하는 사람 사용자에게 MFA 필수
2단계2026년 5월부터 7월까지새로 만드는 사람 사용자는 MFA 필수, LEGACY_SERVICE 유형 사용자를 새로 만들 수 없음
3단계2026년 8월부터 10월까지모든 사용자에 적용, 남은 LEGACY_SERVICE 사용자는 SERVICE 로 전환

정확한 적용 날짜는 계정과 리전마다 다를 수 있으므로 공식 "Planning for the deprecation of single-factor password sign-ins" 문서와 BCR 공지를 확인합니다.

주의 3단계가 끝나면 비밀번호만 쓰는 ETL 도구, BI 서비스 계정, 스크립트는 로그인하지 못합니다. 아직 남아 있다면 지금 바로 키 페어, PAT, OAuth, 워크로드 아이덴티티로 옮겨야 합니다.

사용자 유형

CREATE USER etl_svc TYPE = SERVICE DEFAULT_ROLE = etl_role;
ALTER USER old_bi_svc SET TYPE = SERVICE;
TYPE대상비밀번호Snowsight 로그인
PERSON (또는 NULL)사람가능 (MFA 필요)가능
SERVICE프로그램불가불가
LEGACY_SERVICE옛 프로그램가능 (MFA 없이)단계적 폐기

무엇을 고를까

누가권장 방식
사람, 회사 IdP 있음SAML 2.0 SSO (Okta, Microsoft Entra ID 등)
사람, IdP 없음비밀번호 + MFA (패스키, 인증 앱, Duo)
클라우드 위에서 도는 서비스워크로드 아이덴티티 페더레이션
그 밖의 서비스, 드라이버키 페어
단순 REST 호출, 도구 연동PAT (네트워크 정책 필요)
사용자 대신 앱이 접근OAuth (Snowflake OAuth 또는 External OAuth)

키 페어

# 암호화된 2048비트 개인 키와 공개 키 만들기
openssl genrsa 2048 | openssl pkcs8 -topk8 -v2 aes256 -inform PEM -out rsa_key.p8
openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
ALTER USER etl_svc SET RSA_PUBLIC_KEY = 'MIIBIjANBgkqh...';
DESC USER etl_svc;   -- RSA_PUBLIC_KEY_FP 확인
  • 키 길이는 최소 2048비트입니다.
  • 순환할 때는 RSA_PUBLIC_KEY_2 에 새 키를 넣고, 클라이언트를 새 키로 바꾼 뒤 옛 키를 지웁니다. 두 키가 동시에 유효해 중단 없이 바꿀 수 있습니다.
  • 2026년에는 이름 붙은 키 페어(ALTER USER ... ADD KEY PAIR, ROTATE KEY PAIR)가 들어와, 순환하면 옛 키가 기본 24시간 동안 함께 유효합니다. 정확한 문법은 공식 문서를 확인합니다.
  • 개인 키는 비밀 관리 도구(AWS Secrets Manager, Vault 등)에 두고 저장소에 커밋하지 않습니다.

프로그래밍 방식 액세스 토큰 (PAT)

ALTER USER bi_svc ADD PROGRAMMATIC ACCESS TOKEN bi_token
  ROLE_RESTRICTION = 'BI_READER'
  DAYS_TO_EXPIRY = 30
  COMMENT = '대시보드 도구 연동';
  • 기본 만료는 15일, 최대 365일이고, 사용자당 최대 15개입니다.
  • ROLE_RESTRICTION 으로 토큰이 쓸 수 있는 역할을 하나로 좁힙니다. 서비스 사용자에게는 사실상 필수입니다.
  • 서비스 사용자의 PAT 는 네트워크 정책이 걸려 있어야 씁니다. 허용 IP 를 좁힌 네트워크 정책을 먼저 겁니다.
  • 토큰 값은 만들 때 한 번만 보입니다. 잃어버리면 새로 만듭니다.

워크로드 아이덴티티 페더레이션

워크로드 아이덴티티 페더레이션(WIF, 2025-08-14 GA)은 AWS IAM 역할, Microsoft Entra 관리 ID, Google 서비스 계정, Kubernetes 같은 OIDC 발급자가 준 클라우드 고유의 신원으로 Snowflake 에 로그인합니다. 저장해야 할 비밀이 없어 키 유출 걱정이 사라집니다.

CREATE USER lambda_svc TYPE = SERVICE
  WORKLOAD_IDENTITY = (
    TYPE = AWS
    ARN = 'arn:aws:iam::123456789012:role/etl-lambda'
  );

드라이버 쪽은 인증자를 WORKLOAD_IDENTITY 로 두고 클라우드 제공자를 지정합니다. 지원 드라이버 버전을 확인합니다.

OAuth 와 SSO

  • SAML SSO: 보안 통합(CREATE SECURITY INTEGRATION ... TYPE = SAML2)으로 IdP 를 연결합니다. SCIM 통합을 함께 두면 IdP 의 사용자와 그룹이 Snowflake 사용자와 역할로 자동 동기화됩니다.
  • Snowflake OAuth: Tableau, Power BI 같은 파트너 앱이나 직접 만든 앱이 사용자를 대신해 접근합니다.
  • External OAuth: Okta, Entra ID 등이 발급한 토큰을 Snowflake 가 받아들입니다.
  • 브라우저 SSO 를 쓰는 드라이버는 authenticator=externalbrowser 를 씁니다. 서버에서 도는 프로그램에는 맞지 않습니다.

인증 정책

인증 정책(authentication policy)으로 계정이나 사용자별로 허용할 인증 방식, 클라이언트, MFA 방식을 제한합니다.

CREATE AUTHENTICATION POLICY person_policy
  AUTHENTICATION_METHODS = ('SAML', 'PASSWORD')
  MFA_ENROLLMENT = 'REQUIRED'
  CLIENT_TYPES = ('SNOWFLAKE_UI', 'DRIVERS', 'SNOWSQL');
ALTER ACCOUNT SET AUTHENTICATION POLICY person_policy;

로그인 감사

SELECT user_name, first_authentication_factor, second_authentication_factor,
       is_success, error_message, client_ip, event_timestamp
FROM snowflake.account_usage.login_history
WHERE event_timestamp >= DATEADD(day, -7, CURRENT_TIMESTAMP())
ORDER BY event_timestamp DESC;

first_authentication_factor = 'PASSWORD' 이고 두 번째 요소가 비어 있는 서비스 사용자가 이전 대상 목록입니다.

트러블슈팅

  • 증상: 어느 날부터 ETL 도구가 "Multi-factor authentication is required" 류의 오류로 로그인하지 못합니다.

  • 원인: MFA 의무화 단계가 그 사용자에게 적용되었는데 비밀번호만 쓰고 있습니다.

  • 해결: 사용자를 TYPE = SERVICE 로 바꾸고 키 페어나 PAT, 워크로드 아이덴티티로 연결을 바꿉니다.

  • 증상: 키 페어 로그인이 "JWT token is invalid" 로 실패합니다.

  • 원인: 등록한 공개 키와 개인 키가 짝이 아니거나, 계정 식별자 형식이 틀렸거나, 클라이언트 시계가 어긋났습니다.

  • 해결: DESC USER 의 RSA_PUBLIC_KEY_FP 와 로컬에서 계산한 지문을 비교하고, 계정 식별자를 조직-계정 형식으로 확인하고, 서버 시간을 NTP 로 맞춥니다.

  • 증상: PAT 로 접속하면 "Network policy is required" 류의 오류가 납니다.

  • 원인: 서비스 사용자의 PAT 에는 네트워크 정책이 필요합니다.

  • 해결: 허용 IP 를 담은 네트워크 정책을 사용자나 계정에 겁니다. 네트워크 보안 을 참고합니다.

공식 문서

이 문서에서