Referência de API para acesso a segredos¶
Você pode usar Java ou Python para recuperar credenciais contidas em um segredo criado com a instrução CREATE SECRET. Este tópico lista os métodos para obter informações de um segredo. Eles estão disponíveis com APIs incluídas no Snowflake.
API De Java para acesso secreto¶
Para código em Java, use a classe com.snowflake.snowpark_java.types.SnowflakeSecrets
.
A tabela a seguir lista métodos para acessar dados em um segredo.
Método |
Descrição |
---|---|
|
Obtém a cadeia de caracteres de token genérica mantida pelo segredo especificado por |
|
Obtém o token de acesso OAuth2 mantido pelo segredo especificado por |
|
Obtém o tipo de segredo especificado por |
|
Obtém o nome de usuário e a senha do segredo especificado por |
Para usar a classe SnowflakeSecrets
:
Disponibilize a biblioteca Snowpark para seu código manipulador usando a cláusula PACKAGES conforme descrito em CREATE FUNCTION.
No código do gerenciador, importe
com.snowflake.snowpark_java.types.SnowflakeSecrets
.Construa um objeto
SnowflakeSecrets
e chame um dos métodos listados acima para acessar o segredo.
O código no exemplo a seguir recupera o valor definido para a cláusula TYPE quando o segredo foi criado com CREATE SECRET. Aqui, o segredo oauth_token
é do tipo 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;
}
}
$$;
API de Python para acesso secreto¶
Para código em Python, use o módulo _snowflake
exposto às UDFs de Python que é executado no Snowflake. A tabela a seguir lista funções _snowflake
para acessar dados em um segredo.
Função |
Descrição |
---|---|
|
Obtém a cadeia de caracteres de token genérica mantida pelo segredo especificado por |
|
Obtém o token de acesso OAuth2 mantido pelo segredo especificado por |
|
Obtém o tipo de segredo especificado por |
|
Obtém o nome de usuário e a senha do segredo especificado por |
Para usar o módulo _snowflake
no código do gerenciador, importe-o como faria com outro módulo.
O código no exemplo a seguir recupera o valor definido para a cláusula TYPE quando o segredo foi criado com CREATE SECRET. Aqui, o segredo oauth_token
é do tipo 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
$$;
O código no exemplo a seguir recupera o nome de usuário e a senha mantidos pelo segredo.
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
$$;