API-Referenz für Zugriff auf Geheimnisse¶
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.
Java-API für Zugriff auf Geheimnisse¶
Für Code in Java verwenden Sie die Klasse com.snowflake.snowpark_java.types.SnowflakeSecrets.
Bemerkung
Sie können auch die Java-API in Scala-Code verwenden.
In der folgenden Tabelle sind Methoden für den Zugriff auf Daten in einem Geheimnis aufgeführt.
Methode |
Beschreibung |
|---|---|
|
Ruft die generische Token-Zeichenfolge ab, die sich im Besitz des durch |
|
Ruft das OAuth2-Zugriffstoken ab, das sich im Besitz des durch |
|
Ruft den Typ des durch |
|
Ruft den Benutzernamen und das Kennwort von dem durch |
|
Ruft ein Token des Cloud-Anbieters ab, das Werte enthält, die Sie verwenden können, um eine Sitzung mit dem Cloud-Anbieter zu erstellen, z. B. AWS. Gibt einen
|
So verwenden Sie die Klasse SnowflakeSecrets:
Machen Sie die Snowpark-Bibliothek für Ihren Handler-Code verfügbar, indem Sie die PACKAGES-Klausel verwenden, wie in CREATE FUNCTION beschrieben.
Importieren Sie in Ihrem Handler-Code
com.snowflake.snowpark_java.types.SnowflakeSecrets.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;
}
}
$$;
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 |
|---|---|
|
Ruft die generische Token-Zeichenfolge ab, die sich im Besitz des durch |
|
Ruft das OAuth2-Zugriffstoken ab, das sich im Besitz des durch |
|
Ruft den Typ des durch |
|
Ruft den Benutzernamen und das Kennwort von dem durch |
|
Ruft ein Cloud-Anbieter-Objekt ab, das Werte enthält, die Sie zum Erstellen einer Sitzung mit dem Cloud-Anbieter verwenden können, z. B. AWS. Gibt einen Typ mit den folgenden Attributen 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.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
$$;
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.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
$$;