Snowflake용 Private Key 인증 구성

Snowflake용 Private Key 인증 구성

이 페이지에서는 Kafka·Kinesis 고성능 커넥터가 Snowpipe Streaming으로 데이터를 쓸 때 사용하는 인증을, 기본 SNOWFLAKE_MANAGED(세션 토큰)에서 RSA 개인 키 기반 키 페어 인증으로 전환하는 방법을 설명해요. 관리형 인증이 환경에 맞지 않을 때만 사용하세요.

출처: Snowflake 문서

본문

Note

이 커넥터는 Snowflake Connector Terms에 의해 규율됩니다.

Kafka·Kinesis 고성능 커넥터는 PublishSnowpipeStreaming을 사용해 Snowflake에 데이터를 씁니다. 기본적으로 SNOWFLAKE_MANAGED(세션 토큰)로 인증합니다. 이 페이지는 RSA 개인 키를 사용하는 키 페어 인증으로 전환하는 방법을 설명합니다.

Note

SNOWFLAKE_MANAGED는 SPCS와 BYOC 배포 모두에서 권장되는 인증 전략입니다. 관리형 인증이 환경에 적합하지 않을 때만 Private Key 인증을 사용하세요.

아래 단계는 Kafka와 Kinesis 고성능 커넥터에 동일하게 적용됩니다.

전제 조건

RSA 키 페어 생성 및 Snowflake 사용자에 할당

공식 Snowflake 가이드를 따라 키 페어를 생성하고 공개 키를 사용자에게 할당하세요: Key-pair authentication and key-pair rotation.

Note

암호화된 개인 키와 암호화되지 않은 개인 키 모두 지원됩니다. 암호화된 키(패스프레이즈 포함)를 생성했다면 StandardPrivateKeyService 컨트롤러 서비스에 Key Password 속성을 설정하세요. 결과 rsa_key.p8 파일은 헤더가 -----BEGIN PRIVATE KEY-----(비암호화) 또는 -----BEGIN ENCRYPTED PRIVATE KEY-----(암호화)로 시작해야 합니다.

1단계: StandardPrivateKeyService 컨트롤러 서비스 추가

  1. Openflow / NiFi UI에서 커넥터의 프로세스 그룹을 엽니다.

  2. Configure > Controller Services(톱니바퀴 아이콘)를 선택합니다.

  3. **+**를 선택해 새 컨트롤러 서비스를 추가합니다.

  4. StandardPrivateKeyService를 검색해 선택합니다.

  5. Add를 선택합니다.

2단계: 개인 키 파일 업로드

  1. 컨트롤러 서비스 목록에서 StandardPrivateKeyService의 Edit(연필) 아이콘을 선택합니다.

  2. Key File 속성을 찾습니다.

  3. 필드 옆의 Reference asset 체크박스를 활성화합니다.

  4. Upload를 선택하고 rsa_key.p8 파일을 선택합니다. Openflow는 파일을 클러스터의 자산으로 저장하므로 키가 구성에 평문으로 노출되지 않습니다.

  5. 비암호화 키는 Key Password를 비워 두고, 암호화 키는 패스프레이즈를 제공합니다.

  6. Apply를 선택합니다.

3단계: 컨트롤러 서비스 활성화

StandardPrivateKeyService의 Enable(번개 아이콘)을 선택하고 상태가 Enabled로 표시될 때까지 기다립니다.

4단계: PublishSnowpipeStreaming 구성

  1. PublishSnowpipeStreaming 프로세서를 더블클릭해 속성을 엽니다.

  2. 다음 속성을 설정합니다:

Property Value
Authentication Strategy KEY_PAIR
Account Your Snowflake account identifier, for example myorg-myaccount
User Your Snowflake username
Role Your Snowflake role
Private Key Service Select the StandardPrivateKeyService created in Step 1: Add a StandardPrivateKeyService controller service

Note

계정 식별자 형식: 조직-계정 형식 <org_name>-<account_name>을 사용하며 전체 호스트 이름은 사용하지 않습니다. 예를 들어 Snowflake URL이 https://myorg-myaccount.snowflakecomputing.com이라면 계정 식별자는 myorg-myaccount입니다.

  1. Apply를 선택합니다.

  2. 프로세스 그룹을 시작합니다.

속성 참조

StandardPrivateKeyService 컨트롤러 서비스는 다음 속성을 받습니다:

Property Description
Key File PKCS8 PEM 개인 키 파일의 경로. Reference asset을 사용해 파일을 클러스터에 직접 업로드합니다.
Key 인라인 PEM 키 콘텐츠(Key File의 대안).
Key Password 암호화된 개인 키의 패스프레이즈. 비암호화 키는 비워 둡니다.

문제 해결

Symptom Likely cause
PublishSnowpipeStreaming이 적용 후 검증 오류 표시 StandardPrivateKeyService가 아직 활성화되지 않음 — 프로세서를 시작하기 전에 활성화하세요.
런타임에서 인증 실패 공개 키가 Snowflake 사용자에게 올바르게 할당되었는지 확인하세요. DESC USER <username>가 RSA_PUBLIC_KEY 설정을 보여줘야 합니다.
키 파일에 BEGIN ENCRYPTED PRIVATE KEY가 있는데 인증 실패 암호화 키 사용 중 — StandardPrivateKeyService에 Key Password가 설정되어 있는지 확인하세요.
잘못된 계정 식별자 형식 .snowflakecomputing.com 없이 <org>-<account>를 사용하세요.

더 알아보기 (Learn more)