API-Referenz für Zugriff auf Geheimnisse

Sie können Java oder Python verwenden, um Anmeldeinformationen abzurufen, die in einem mit der Anweisung CREATE SECRET erstellten Geheimnis enthalten sind. Unter diesem Thema werden die Methoden zum Abrufen von Informationen aus einem Geheimnis aufgeführt. Diese sind verfügbar, wenn APIs in Snowflake enthalten ist.

Java-API für Zugriff auf Geheimnisse

Für Code in Java verwenden Sie die Klasse com.snowflake.snowpark_java.types.SnowflakeSecrets.

In der folgenden Tabelle sind Methoden für den Zugriff auf Daten in einem Geheimnis aufgeführt.

Methode

Beschreibung

public String getGenericSecretString(String genericStringSecretName)

Ruft die generische Token-Zeichenfolge ab, die sich im Besitz des durch genericStringSecretName angegebenen Geheimnis befindet. Gibt eine gültige Token-Zeichenfolge zurück.

public String getOAuthAccessToken(String oauthSecretName)

Ruft das OAuth2-Zugriffstoken ab, das sich im Besitz des durch oauthSecretName angegebenen Geheimnisses befindet. Gibt eine OAuth2-Token-Zeichenfolge zurück.

public String getSecretType(String secretName)

Ruft den Typ des durch secretName angegebenen Geheimnisses ab. Gibt den TYPE-Parameterwert zurück, der für dieses Geheimnis festgelegt wurde, als es mit der Anweisung CREATE SECRET erstellt wurde.

public UsernamePassword getUsernamePassword(String usernamePasswordSecretName)

Ruft den Benutzernamen und das Kennwort von dem durch usernamePasswordSecretName angegebenen Geheimnis ab. Gibt ein com.snowflake.snowpark_java.types.UsernamePassword mit Benutzernamen und Kennwort zurück.

So verwenden Sie die Klasse SnowflakeSecrets:

  1. Machen Sie die Snowpark-Bibliothek für Ihren Handler-Code verfügbar, indem Sie die PACKAGES-Klausel verwenden, wie in CREATE FUNCTION beschrieben.

  2. Importieren Sie in Ihrem Handler-Code com.snowflake.snowpark_java.types.SnowflakeSecrets.

  3. Konstruieren Sie ein SnowflakeSecrets-Objekt und rufen Sie eine der oben aufgeführten Methoden auf, um auf das Geheimnis zuzugreifen.

Der Code im folgenden Beispiel ruft den Wert ab, der für die TYPE-Klausel festgelegt wurde, als das Geheimnis mit CREATE SECRET erstellt wurde. Hier ist das Geheimnis oauth_token vom Typ 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;
  }
}
$$;
Copy

Python-API für Zugriff auf Geheimnisse

Für Code in Python verwenden Sie das Modul _snowflake, das Python-UDFs ausgesetzt ist und in Snowflake ausgeführt wird. Die folgende Tabelle enthält _snowflake-Funktionen für den Zugriff auf Daten in einem Geheimnis.

Funktion

Beschreibung

get_generic_secret_string(generic_string_secret_name)

Ruft die generische Token-Zeichenfolge ab, die sich im Besitz des durch generic_string_secret_name angegebenen Geheimnis befindet. Gibt eine gültige Token-Zeichenfolge zurück.

get_oauth_access_token(oauth_secret_name)

Ruft das OAuth2-Zugriffstoken ab, das sich im Besitz des durch oauth_secret_name angegebenen Geheimnisses befindet. Gibt eine OAuth2-Token-Zeichenfolge zurück.

get_secret_type(secret_name)

Ruft den Typ des durch secret_name angegebenen Geheimnisses ab. Gibt den TYPE-Parameterwert zurück, der für dieses Geheimnis festgelegt wurde, als es mit der Anweisung CREATE SECRET erstellt wurde.

get_username_password(username_password_secret_name)

Ruft den Benutzernamen und das Kennwort von dem durch username_password_secret_name angegebenen Geheimnis ab. Gibt ein Objekt mit den Attributen username und password zurück.

Um das Modul _snowflake in Ihrem Handler-Code zu verwenden, importieren Sie es wie ein anderes Modul.

Der Code im folgenden Beispiel ruft den Wert ab, der für die TYPE-Klausel festgelegt wurde, als das Geheimnis mit CREATE SECRET erstellt wurde. Hier ist das Geheimnis oauth_token vom Typ 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
$$;
Copy

Der Code im folgenden Beispiel ruft den Benutzernamen und das Kennwort ab, die im Geheimnis enthalten sind.

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
$$;
Copy