Snowflake를 사용하여 Snowflake REST APIs 인증하기¶
이 항목에서는 Snowflake REST APIs 를 사용할 때 서버를 인증하는 방법에 대해 설명합니다.
요청을 보낼 때 요청에는 다음 중 하나를 사용하는 인증 정보가 포함되어야 합니다.
키 페어 인증 사용하기¶
키 페어 인증을 사용하는 경우 다음 작업을 완료해야 합니다.
키 페어 인증 설정¶
키 페어 인증을 사용하려면 다음 단계를 수행하십시오.
키 페어 인증을 설정합니다.
이 프로세스의 일부로서 다음을 수행해야 합니다.
공개-개인 키 페어를 생성합니다. 생성된 개인 키는 파일(예: 이름이
rsa_key.p8
인 파일)에 있어야 합니다.Snowflake 사용자에게 공개 키를 할당합니다. 사용자에게 키를 할당한 후 DESCRIBE USER 명령을 실행합니다. 출력에서
RSA_PUBLIC_KEY_FP
속성은 사용자에게 할당된 공개 키의 지문으로 설정되어야 합니다.
키 페어를 생성하고 사용자에게 키를 할당하는 방법에 대한 지침은 키 페어 인증 및 키 페어 순환 을 참조하십시오.
생성된 개인 키를 사용하여 Snowflake에 연결 할 수 있는지 SnowSQL을 사용하여 확인합니다.
$ snowsql -a <account_identifier> -u <user> --private-key-path <path>/rsa_key.p8
암호화된 개인 키를 생성한 경우, SnowSQL은 키 생성 시 만든 암호 구문을 입력하라는 메시지를 표시합니다.
JWT 토큰 생성하기¶
애플리케이션 코드에서 JWT 토큰을 생성하려면 다음 단계를 따릅니다.
사용자에 대한 공개 키의 지문(SHA-256 해시)을 생성합니다. 지문에
SHA256:
접두사를 붙입니다.페이로드에서 다음 필드를 사용하여 JSON 웹 토큰(JWT) 을 생성합니다.
필드
설명
예
iss
JWT의 발급자입니다. 이를 다음 값으로 설정합니다.
account_identifier.user.SHA256:public_key_fingerprint
여기서,
account_identifier
는 Snowflake 계정 식별자 입니다.계정 로케이터 를 사용하는 경우 계정 로케이터에서 모든 리전 정보를 제외하십시오.
user
는 Snowflake 사용자 이름입니다.SHA256:public_key_fingerprint
는 이전 단계에서 생성한 지문입니다.
참고
The
account_identifier
anduser
values must use all uppercase characters.MYORGANIZATION-MYACCOUNT.MYUSER.SHA256:public_key_fingerprint
sub
JWT의 제목입니다. 이를 다음 값으로 설정합니다.
account_identifier.user
MYORGANIZATION-MYACCOUNT.MYUSER
iat
JWT의 발급 시간(UTC)입니다. 값을 초 또는 밀리초 단위의 현재 시간 값으로 설정합니다.
1615370644
(초) .1615370644000
(밀리초)exp
JWT의 만료 시간(UTC)입니다. 값을 초 또는 밀리초 단위로 지정할 수 있습니다.
참고
JWT는 만료 시간을 더 길게 지정하더라도 토큰 발급 후 최대 1시간 동안 유효합니다.
1615374184
(초) .1615374184000
(밀리초)보내는 각 API 요청에서 다음 헤더를 설정합니다.
Authorization: Bearer JWT
여기서
JWT
는 생성한 토큰입니다.X-Snowflake-Authorization-Token-Type: KEYPAIR_JWT
OAuth 사용하기¶
OAuth를 사용하려면 다음 단계를 수행하십시오.
인증을 위해 OAuth를 설정합니다.
OAuth를 설정하고 OAuth 토큰을 가져오는 방법에 대한 자세한 내용은 OAuth 소개 를 참조하십시오.
생성된 OAuth 토큰을 사용하여 Snowflake에 연결할 수 있는지 SnowSQL을 사용하여 확인합니다.
Linux 및 MacOS 시스템의 경우
$ snowsql -a <account_identifier> -u <user> --authenticator=oauth --token=<oauth_token>
Windows 시스템의 경우
$ snowsql -a <account_identifier> -u <user> --authenticator=oauth --token="<oauth_token>"
보내는 각 API 요청에서 다음 헤더를 설정합니다.
Authorization: Bearer oauth_token
여기서
oauth_token
은 생성된 OAuth 토큰입니다.X-Snowflake-Authorization-Token-Type: OAUTH