Snowflake를 사용하여 Snowflake REST APIs 인증하기

이 항목에서는 Snowflake REST APIs 를 사용할 때 서버를 인증하는 방법에 대해 설명합니다.

요청을 보낼 때 요청에는 다음 중 하나를 사용하는 인증 정보가 포함되어야 합니다.

키 페어 인증 사용하기

키 페어 인증을 사용하는 경우 다음 작업을 완료해야 합니다.

  1. 키 페어 인증 설정

  2. JWT 토큰 생성하기

키 페어 인증 설정

키 페어 인증을 사용하려면 다음 단계를 수행하십시오.

  1. 키 페어 인증을 설정합니다.

    이 프로세스의 일부로서 다음을 수행해야 합니다.

    1. 공개-개인 키 페어를 생성합니다. 생성된 개인 키는 파일(예: 이름이 rsa_key.p8 인 파일)에 있어야 합니다.

    2. Snowflake 사용자에게 공개 키를 할당합니다. 사용자에게 키를 할당한 후 DESCRIBE USER 명령을 실행합니다. 출력에서 RSA_PUBLIC_KEY_FP 속성은 사용자에게 할당된 공개 키의 지문으로 설정되어야 합니다.

    키 페어를 생성하고 사용자에게 키를 할당하는 방법에 대한 지침은 키 페어 인증 및 키 페어 순환 을 참조하십시오.

  2. 생성된 개인 키를 사용하여 Snowflake에 연결 할 수 있는지 SnowSQL을 사용하여 확인합니다.

    $ snowsql -a <account_identifier> -u <user> --private-key-path <path>/rsa_key.p8
    
    Copy

    암호화된 개인 키를 생성한 경우, SnowSQL은 키 생성 시 만든 암호 구문을 입력하라는 메시지를 표시합니다.

JWT 토큰 생성하기

애플리케이션 코드에서 JWT 토큰을 생성하려면 다음 단계를 따릅니다.

  1. 사용자에 대한 공개 키의 지문(SHA-256 해시)을 생성합니다. 지문에 SHA256: 접두사를 붙입니다.

    예:

    SHA256:hash

    SQL DESCRIBE USER 명령을 실행하여 RSA_PUBLIC_KEY_FP 속성에서 값을 가져올 수도 있습니다.

  2. 페이로드에서 다음 필드를 사용하여 JSON 웹 토큰(JWT) 을 생성합니다.

    필드

    설명

    iss

    JWT의 발급자입니다. 이를 다음 값으로 설정합니다.

    account_identifier.user.SHA256:public_key_fingerprint

    여기서,

    • account_identifier 는 Snowflake 계정 식별자 입니다.

      계정 로케이터 를 사용하는 경우 계정 로케이터에서 모든 리전 정보를 제외하십시오.

    • user 는 Snowflake 사용자 이름입니다.

    • SHA256:public_key_fingerprint 는 이전 단계에서 생성한 지문입니다.

    참고

    The account_identifier and user 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 (밀리초)

  3. 보내는 각 API 요청에서 다음 헤더를 설정합니다.

    • Authorization: Bearer JWT

      여기서 JWT 는 생성한 토큰입니다.

    • X-Snowflake-Authorization-Token-Type: KEYPAIR_JWT

OAuth 사용하기

OAuth를 사용하려면 다음 단계를 수행하십시오.

  1. 인증을 위해 OAuth를 설정합니다.

    OAuth를 설정하고 OAuth 토큰을 가져오는 방법에 대한 자세한 내용은 OAuth 소개 를 참조하십시오.

  2. 생성된 OAuth 토큰을 사용하여 Snowflake에 연결할 수 있는지 SnowSQL을 사용하여 확인합니다.

    • Linux 및 MacOS 시스템의 경우

    $ snowsql -a <account_identifier> -u <user> --authenticator=oauth --token=<oauth_token>
    
    Copy
    • Windows 시스템의 경우

    $ snowsql -a <account_identifier> -u <user> --authenticator=oauth --token="<oauth_token>"
    
    Copy
  3. 보내는 각 API 요청에서 다음 헤더를 설정합니다.

    • Authorization: Bearer oauth_token

      여기서 oauth_token 은 생성된 OAuth 토큰입니다.

    • X-Snowflake-Authorization-Token-Type: OAUTH