키 페어 인증 및 키 페어 회전

키 페어 인증 및 키 페어 회전 (Key-pair authentication and key-pair rotation)

이 문서는 Snowflake에 연결할 때 키 페어 인증(key-pair authentication)을 구성하고, 키 페어를 회전(rotation)하는 방법을 설명해요.

출처: Key-pair authentication and key-pair rotation

본문

개요

키 페어 인증은 Snowflake 계정에 연결할 때 사용하는 강화된 인증 방식이에요. 사용자 비밀번호 대신 공개 키/프라이빗 키 쌍을 사용해 인증해요. 이 방식은 OAuth와 함께 Snowflake의 강화된 인증 옵션 중 하나이며, 비밀번호를 사용하지 않기 때문에 보안이 더 강력해요.

키 페어 인증은 다음과 같은 클라이언트와 함께 사용할 수 있어요:

  • Snowflake 커넥터 및 드라이버 (JDBC, ODBC, Python 등).
  • SnowSQL 및 Snowflake CLI.
  • Kafka 커넥터나 Spark 커넥터 같은 프로그래밍 방식 클라이언트.

키 페어 생성

키 페어 인증을 구성하려면 먼저 RSA 키 쌍을 생성해야 해요. 다음 명령으로 OpenSSL을 사용해 암호화되지 않은 프라이빗 키를 생성할 수 있어요:

openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt

암호화된 프라이빗 키를 생성하려면:

openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8

이 명령은 프라이빗 키에 대한 암호(passphrase)를 묻게 돼요.

프라이빗 키에서 공개 키를 추출하려면:

openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub

참고: Snowflake는 2048비트 RSA 키를 권장해요. 프라이빗 키는 PKCS#8 형식이어야 하고, 암호화된 키는 지원되지만 일부 클라이언트에서 추가 구성이 필요할 수 있어요.

공개 키를 Snowflake 사용자에게 연결

공개 키를 Snowflake 사용자에게 연결하려면 ALTER USER 문을 실행하세요. 공개 키는 base64로 인코딩된 DER 또는 PEM 형식일 수 있어요.

PEM 형식인 경우:

ALTER USER jsmith SET RSA_PUBLIC_KEY = 'MIIBIjANBgkqh...';

base64로 인코딩된 DER 형식인 경우:

ALTER USER jsmith SET RSA_PUBLIC_KEY = 'MIIBIjANBgkqh...' RSA_PUBLIC_KEY_FP = 'SHA256:...';

참고: 공개 키를 설정할 때 RSA_PUBLIC_KEY_FP(지문)는 선택사항이지만, 지정하면 키를 강제 검증할 수 있어요.

클라이언트에서 키 페어 인증 사용

각 클라이언트에서 키 페어 인증을 구성하는 방법:

SQL 및 CLI 클라이언트

SnowSQL에서 키 페어 인증을 사용하려면 구성에서 private_key_file 옵션을 지정하세요:

private_key_file = /path/to/rsa_key.p8
private_key_file_pwd = <passphrase>

Snowflake CLI에서는 인증 옵션으로 프라이빗 키를 지정할 수 있어요.

JDBC / ODBC

JDBC 드라이버에서 프라이빗 키 파일을 연결 문자열에 지정하거나 private_key_file 커넥션 속성으로 설정하세요.

드라이버 및 커넥터

Python, Kafka, Spark 등 Snowflake 커넥터는 각자의 인증 구성에서 프라이빗 키 파일이나 프라이빗 키 문자열을 지정해 키 페어 인증을 지원해요.

키 페어 회전

키 페어 회전은 보안을 유지하기 위해 주기적으로 키를 교체하는 작업이에요. Snowflake는 다중 키 페어를 지원하므로, 회전 중에도 가동 중단 없이 새 키로 전환할 수 있어요.

회전 절차:

  1. 새 키 페어를 생성하세요 (위에서 설명한 대로).
  2. 새 공개 키를 Snowflake 사용자에게 연결하세요. Snowflake는 한 번에 최대 2개의 활성 공개 키(기본 키와 보조 키)를 지원해요:
ALTER USER jsmith SET RSA_PUBLIC_KEY = '<new_public_key>';
  1. 클라이언트 구성을 새 프라이빗 키를 사용하도록 업데이트하세요.
  2. 새 키가 정상 동작하는지 확인한 후, 옛 공개 키를 제거하세요:
ALTER USER jsmith UNSET RSA_PUBLIC_KEY;

중요: 새 키로 전환하기 전에 옛 키를 제거하면 클라이언트가 인증하지 못할 수 있어요. 새 키가 동작하는 것을 확인한 뒤에만 옛 키를 제거하세요.

문제 해결

키 페어 인증 관련 문제가 발생하면 키 페어 인증 문제 해결 문서를 참고하세요.

더 알아보기 (Learn more)