Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Mit Snowflake authentifizieren
Sie können den Amazon Athena Snowflake-Connector so konfigurieren, dass er entweder die Schlüsselpaar-Authentifizierung oder die OAuth Authentifizierungsmethode verwendet, um eine Verbindung zu Ihrem Snowflake-Data Warehouse herzustellen. Beide Methoden bieten sicheren Zugriff auf Snowflake und machen das Speichern von Passwörtern in Verbindungszeichenfolgen überflüssig.
-
Schlüsselpaar-Authentifizierung – Diese Methode verwendet öffentliche oder private RSA-Schlüsselpaare zur Authentifizierung bei Snowflake. Der private Schlüssel signiert Authentifizierungsanfragen digital, während der entsprechende öffentliche Schlüssel zur Überprüfung in Snowflake registriert wird. Diese Methode macht die Speicherung von Passwörtern überflüssig.
-
OAuth Authentifizierung — Diese Methode verwendet das Autorisierungstoken und das Aktualisierungstoken zur Authentifizierung bei Snowflake. Sie unterstützt die automatische Token-Aktualisierung und ist somit für lang laufende Anwendungen geeignet.
Weitere Informationen finden Sie unter Schlüsselpaar-Authentifizierung und OAuth Authentifizierung
Voraussetzungen
Stellen Sie vor Beginn sicher, dass die folgenden Voraussetzungen erfüllt sind:
-
Zugriff auf das Snowflake-Konto mit Administratorrechten.
-
Snowflake-Benutzerkonto speziell für den Athena-Konnektor.
-
OpenSSL oder gleichwertige Tools zur Schlüsselgenerierung für die Schlüsselpaar-Authentifizierung.
-
AWS Secrets Manager Zugriff zum Erstellen und Verwalten von Geheimnissen.
-
Webbrowser, um den OAuth Ablauf für die OAuth Authentifizierung abzuschließen.
Schlüsselpaar-Authentifizierung konfigurieren
Dieser Vorgang umfasst die Generierung eines RSA-Schlüsselpaars, die Konfiguration Ihres Snowflake-Kontos mit dem öffentlichen Schlüssel und die sichere Speicherung des privaten Schlüssels in AWS Secrets Manager. Die folgenden Schritte führen Sie durch die Erstellung der kryptografischen Schlüssel, die Einrichtung der erforderlichen Snowflake-Berechtigungen und die Konfiguration der AWS Anmeldeinformationen für eine nahtlose Authentifizierung.
RSA-Schlüsselpaare generieren
Generieren Sie mit OpenSSL ein privates und ein öffentliches Schlüsselpaar.
-
Um eine unverschlüsselte Version zu generieren, verwenden Sie den folgenden Befehl in Ihrer lokalen Befehlszeilenanwendung.
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt -
Um eine verschlüsselte Version zu generieren, verwenden Sie den folgenden Befehl, der
-nocryptauslässt.openssl genrsa 2048 | openssl pkcs8 -topk8 -v2 des3 -inform PEM -out rsa_key.p8 -
Um einen öffentlichen Schlüssel aus einem privaten Schlüssel zu generieren.
openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub # Set appropriate permissions (Unix/Linux) chmod 600 rsa_key.p8 chmod 644 rsa_key.pub
Anmerkung
Geben Sie Ihren privaten Schlüssel nicht weiter. Der private Schlüssel sollte nur für die Anwendung zugänglich sein, die sich bei Snowflake authentifizieren muss.
-
Extrahieren Sie den Inhalt öffentlicher Schlüssel ohne Trennzeichen für Snowflake
# Extract public key content (remove BEGIN/END lines and newlines) cat rsa_key.pub | grep -v "BEGIN\|END" | tr -d '\n'Speichern Sie diese Ausgabe, da Sie sie später im nächsten Schritt benötigen werden.
-
Snowflake-Benutzer konfigurieren
Führen Sie zur Konfiguration eines Snowflake-Benutzrs die folgenden Schritte aus.
-
Erstellen Sie einen dedizierten Benutzer für den Athena-Connector, falls er noch nicht existiert.
-- Create user for Athena connector CREATE USERathena_connector_user; -- Grant necessary privileges GRANT USAGE ON WAREHOUSEyour_warehouseTO ROLEathena_connector_role; GRANT USAGE ON DATABASEyour_databaseTO ROLEathena_connector_role; GRANT SELECT ON ALL TABLES IN DATABASEyour_databaseTO ROLEathena_connector_role; Gewähren Sie Authentifizierungsberechtigungen. Um einem Benutzer einen öffentlichen Schlüssel zuzuweisen, müssen Sie über eine der folgenden Rollen oder Berechtigungen verfügen.
-
Das
MODIFY PROGRAMMATIC AUTHENTICATION METHODSoderOWNERSHIP-Recht für den Benutzer. -
Die
SECURITYADMIN-Rolle oder höher.
Erteilen Sie die notwendigen Berechtigungen für die Zuweisung öffentlicher Schlüssel mit dem folgenden Befehl.
GRANT MODIFY PROGRAMMATIC AUTHENTICATION METHODS ON USERathena_connector_userTO ROLEyour_admin_role;-
-
Weisen Sie den öffentlichen Schlüssel mit dem folgenden Befehl dem Snowflake-Benutzer zu.
ALTER USERathena_connector_userSET RSA_PUBLIC_KEY='RSAkey';Stellen Sie mit dem folgenden Befehl sicher, dass der öffentliche Schlüssel dem Benutzer erfolgreich zugewiesen wurde.
DESC USERathena_connector_user;
-
Speichern Sie den privaten Schlüssel in AWS Secrets Manager
Konvertieren Sie den privaten Schlüssel in das vom Connector benötigte Format.
# Read private key content cat rsa_key.p8-
Erstellen Sie ein Secret in AWS Secrets Manager mit der folgenden Struktur.
{ "sfUser": "your_snowflake_user", "pem_private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----", "pem_private_key_passphrase": "passphrase_in_case_of_encrypted_private_key(optional)" }Anmerkung
Kopf- und Fußzeile sind optional.
Der private Schlüssel muss durch
\ngetrennt werden.
Konfigurieren Sie die OAuth Authentifizierung
Diese Authentifizierungsmethode ermöglicht einen sicheren, tokenbasierten Zugriff auf Snowflake mit Funktionen zur automatischen Aktualisierung der Anmeldeinformationen. Der Konfigurationsprozess umfasst das Erstellen einer Sicherheitsintegration in Snowflake, das Abrufen von OAuth Client-Anmeldeinformationen, das Abschließen des Autorisierungsvorgangs zum Abrufen eines Zugangscodes und das Speichern der OAuth Anmeldeinformationen AWS Secrets Manager für die Verwendung durch den Connector.
Erstellen Sie eine Sicherheitsintegration in Snowflake
Führen Sie den folgenden SQL-Befehl in Snowflake aus, um eine Snowflake-Sicherheitsintegration zu erstellen. OAuth
CREATE SECURITY INTEGRATIONmy_snowflake_oauth_integration_aTYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = CUSTOM OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' OAUTH_REDIRECT_URI = 'https://localhost:8080/oauth/callback' OAUTH_ISSUE_REFRESH_TOKENS = TRUE OAUTH_REFRESH_TOKEN_VALIDITY = 7776000;Konfigurationsparameter
-
TYPE = OAUTH— Gibt den OAuth Authentifizierungstyp an. -
ENABLED = TRUE– Aktiviert die Sicherheitsintegration. -
OAUTH_CLIENT = CUSTOM— Verwendet eine benutzerdefinierte OAuth Client-Konfiguration. -
OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'– Legt den Clienttyp für sichere Anwendungen fest. -
OAUTH_REDIRECT_URI— Die Callback-URL für OAuth Flow. Zum Testen kann es sich um Localhost handeln. -
OAUTH_ISSUE_REFRESH_TOKENS = TRUE– Aktiviert die Generierung von Aktualisierungstoken. -
OAUTH_REFRESH_TOKEN_VALIDITY = 7776000– Legt die Gültigkeit des Aktualisierungstokens fest (90 Tage in Sekunden).
-
Rufen Sie OAuth Client-Geheimnisse ab
-
Führen Sie den folgenden SQL-Befehl aus, um die Anmeldeinformationen des Kunden abzurufen.
DESC SECURITY INTEGRATION 'MY_SNOWFLAKE_OAUTH_INTEGRATION_A'; Rufen Sie die OAuth Kundengeheimnisse ab.
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('MY_SNOWFLAKE_OAUTH_INTEGRATION_A');Beispielantwort
{ "OAUTH_CLIENT_SECRET_2": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "OAUTH_CLIENT_SECRET": "je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY, "OAUTH_CLIENT_ID": "AIDACKCEVSQ6C2EXAMPLE" }
Anmerkung
Bewahren Sie diese Anmeldeinformationen sicher auf und geben Sie sie nicht weiter. Diese werden zur Konfiguration des OAuth Clients verwendet.
-
Benutzer autorisieren und Autorisierungscode abrufen
Öffnen Sie die folgende URL in einem Browser.
https://<your_account>.snowflakecomputing.com/oauth/authorize?client_id=<OAUTH_CLIENT_ID>&response_type=code&redirect_uri=https://localhost:8080/oauth/callbackSchließen Sie den Autorisierungsablauf ab.
-
Melden Sie sich mit Ihren Snowflake-Anmeldeinformationen an.
-
Erteilen Sie die angeforderten Berechtigungen. Sie werden mit einem Autorisierungscode zur Rückruf-URI weitergeleitet.
-
Extrahieren Sie den Autorisierungscode, indem Sie den Codeparameter aus der Umleitungs-URL kopieren.
https://localhost:8080/oauth/callback?code=<authorizationcode>Anmerkung
Der Autorisierungscode ist für eine begrenzte Zeit gültig und kann nur einmal verwendet werden.
Speichern Sie die OAuth Anmeldeinformationen in AWS Secrets Manager
Erstellen Sie ein Secret in AWS Secrets Manager mit der folgenden Struktur.
{ "redirect_uri": "https://localhost:8080/oauth/callback", "client_secret": "je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY", "token_url": "https://<your_account>.snowflakecomputing.com/oauth/token-request", "client_id": "AIDACKCEVSQ6C2EXAMPLE, "username": "your_snowflake_username", "auth_code": "authorizationcode" }Pflichtfelder
-
redirect_uri— OAuth leitet die URI weiter, die Sie in Schritt 1 erhalten haben. -
client_secret— OAuth Client-Schlüssel, den Sie in Schritt 2 erhalten haben. -
token_url— Snowflake Der OAuth Token-Endpunkt. -
client_id— Die OAuth Client-ID aus Schritt 2. -
username– Der Snowflake-Benutzername für den Connector. -
auth_code– Der Autorisierungscode, den Sie in Schritt 3 erhalten haben.
-
Nachdem Sie ein Geheimnis erstellt haben, erhalten Sie einen geheimen ARN, den Sie in Ihrer Glue-Connection verwenden können, wenn Sie eine Datenquellenverbindung erstellen.