Référence d’API pour l’accès aux secrets¶
Vous pouvez utiliser Java ou Python pour récupérer les identifiants de connexion contenus dans un secret créé à l’aide de l’instruction CREATE SECRET. Cette rubrique énumère les méthodes permettant d’obtenir des informations à partir d’un secret. Elles sont disponibles avec les APIs incluses dans Snowflake.
API Java pour l’accès aux secrets¶
Pour le code en Java, utilisez la classe com.snowflake.snowpark_java.types.SnowflakeSecrets
.
Le tableau suivant énumère les méthodes permettant d’accéder aux données d’un secret.
Méthode |
Description |
---|---|
|
Récupère la chaîne de jetons génériques détenue par le secret spécifié par |
|
Récupère le jeton d’accès OAuth2 détenu par le secret spécifié par |
|
Récupère le type du secret spécifié par |
|
Récupère le nom d’utilisateur et le mot de passe du secret spécifié par |
Pour utiliser la classe SnowflakeSecrets
:
Mettez la bibliothèque Snowpark à la disposition de votre gestionnaire de code en utilisant la clause PACKAGES comme décrit dans CREATE FUNCTION.
Dans le code de votre gestionnaire, importez
com.snowflake.snowpark_java.types.SnowflakeSecrets
.Construisez un objet
SnowflakeSecrets
et appelez l’une des méthodes énumérées ci-dessus pour accéder au secret.
Le code de l’exemple suivant récupère la valeur définie pour la clause TYPE lorsque le secret a été créé avec CREATE SECRET. Ici, le secret oauth_token
est de type 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 Python pour l’accès aux secrets¶
Pour le code en Python, utilisez le module _snowflake
exposé dans des UDFs Python qui s’exécutent dans Snowflake. Le tableau suivant énumère les fonctions _snowflake
permettant d’accéder aux données d’un secret.
Fonction |
Description |
---|---|
|
Récupère la chaîne de jetons génériques détenue par le secret spécifié par |
|
Récupère le jeton d’accès OAuth2 détenu par le secret spécifié par |
|
Récupère le type du secret spécifié par |
|
Récupère le nom d’utilisateur et le mot de passe du secret spécifié par |
Pour utiliser le module _snowflake
dans le code de votre gestionnaire, importez-le comme vous le feriez pour un autre module.
Le code de l’exemple suivant récupère la valeur définie pour la clause TYPE lorsque le secret a été créé avec CREATE SECRET. Ici, le secret oauth_token
est de type 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
$$;
Le code de l’exemple suivant permet de récupérer le nom d’utilisateur et le mot de passe détenus par le secret.
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
$$;