시크릿에 대한 액세스를 위한 API 참조¶
Java 또는 Python을 사용하여 CREATE SECRET 문으로 생성한 시크릿에 포함된 자격 증명을 불러올 수 있습니다. 이 항목에서는 시크릿에서 정보를 가져오기 위한 메서드가 나열되어 있습니다. 이런 메서드는 Snowflake에 포함된 API와 함께 사용할 수 있습니다.
시크릿 액세스를 위한 Java API¶
Java 코드의 경우 com.snowflake.snowpark_java.types.SnowflakeSecrets
클래스를 사용하십시오.
다음 표에는 시크릿의 데이터에 액세스하기 위한 메서드가 나와 있습니다.
메서드 |
설명 |
---|---|
|
|
|
|
|
|
|
|
SnowflakeSecrets
클래스를 사용하려면 다음을 수행하십시오.
CREATE FUNCTION 에 설명된 대로 PACKAGES 절을 사용하여 처리기 코드에서 Snowpark 라이브러리를 사용할 수 있도록 만듭니다.
처리기 코드에서
com.snowflake.snowpark_java.types.SnowflakeSecrets
를 가져옵니다.SnowflakeSecrets
오브젝트를 생성하고 위에 나열된 메서드 중 하나를 호출하여 시크릿에 액세스합니다.
다음 예시의 코드는 CREATE SECRET으로 시크릿을 생성할 때 TYPE 절에 설정된 값을 불러옵니다. 여기서 oauth_token
시크릿은 OAUTH2 유형입니다.
CREATE OR REPLACE FUNCTION get_secret_type()
RETURNS STRING
LANGUAGE JAVA
HANDLER = 'SecretTest.getSecretType'
EXTERNAL_ACCESS_INTEGRATIONS = (external_access_integration)
PACKAGES = ('com.snowflake:snowpark:latest')
SECRETS = ('cred' = oauth_token )
AS
$$
import com.snowflake.snowpark_java.types.SnowflakeSecrets;
public class SecretTest {
public static String getSecretType() {
SnowflakeSecrets sfSecrets = SnowflakeSecrets.newInstance();
String secretType = sfSecrets.getSecretType("cred");
return secretType;
}
}
$$;
시크릿 액세스를 위한 Python API¶
Python 코드의 경우 Snowflake 내에서 실행되는 Python UDF에 노출된 _snowflake
모듈을 사용하십시오. 다음 표에는 시크릿의 데이터에 액세스하기 위한 _snowflake
함수가 나와 있습니다.
함수 |
설명 |
---|---|
|
|
|
|
|
|
|
|
처리기 코드에서 _snowflake
모듈을 사용하려면 다른 모듈과 마찬가지로 해당 모듈을 가져오십시오.
다음 예시의 코드는 CREATE SECRET으로 시크릿을 생성할 때 TYPE 절에 설정된 값을 불러옵니다. 여기서 oauth_token
시크릿은 OAUTH2 유형입니다.
CREATE OR REPLACE FUNCTION get_secret_type()
RETURNS STRING
LANGUAGE PYTHON
RUNTIME_VERSION = 3.8
HANDLER = 'get_secret'
EXTERNAL_ACCESS_INTEGRATIONS = (external_access_integration)
SECRETS = ('cred' = oauth_token )
AS
$$
import _snowflake
def get_secret():
secret_type = _snowflake.get_secret_type('cred')
return secret_type
$$;
다음 예제의 코드는 시크릿에 보관된 사용자 이름과 비밀번호를 불러옵니다.
CREATE OR REPLACE FUNCTION get_secret_username_password()
RETURNS STRING
LANGUAGE PYTHON
RUNTIME_VERSION = 3.8
HANDLER = 'get_secret_username_password'
EXTERNAL_ACCESS_INTEGRATIONS = (external_access_integration)
SECRETS = ('cred' = credentials_secret )
AS
$$
import _snowflake
def get_secret_username_password():
username_password_object = _snowflake.get_username_password('cred');
username_password_dictionary = {}
username_password_dictionary["Username"] = username_password_object.username
username_password_dictionary["Password"] = username_password_object.password
return username_password_dictionary
$$;