Referência de API para acesso a segredos¶
You can use Java, Python, or Scala to retrieve credentials contained in a secret you created with the CREATE SECRET statement. This topic lists the methods for getting information from a secret. These are available with APIs included in Snowflake.
API De Java para acesso secreto¶
Para código em Java, use a classe com.snowflake.snowpark_java.types.SnowflakeSecrets.
Nota
You can also use the Java API in Scala code.
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 |
|
Obtém um token do provedor de nuvem com os valores que você pode usar para criar uma sessão com um provedor de nuvem, como o AWS. Retorna um
|
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
SnowflakeSecretse 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 |
|
Obtém um objeto do provedor de nuvem com valores que podem ser usados para criar uma sessão com um provedor de nuvem, como o AWS. Retorna um tipo com os seguintes atributos:
|
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.12
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.12
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
$$;