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.
Authentifizieren Sie sich mit Snowflake
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 Anwendungen mit langer Laufzeit 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 für den Athena-Connector.
-
OpenSSL oder gleichwertige Tools zur Schlüsselgenerierung für die Schlüsselpaar-Authentifizierung.
-
AWS Secrets Manager Zugriff zur Erstellung und Verwaltung von Geheimnissen.
-
Webbrowser, um den OAuth Ablauf für die OAuth Authentifizierung abzuschließen.
Konfigurieren Sie die Schlüsselpaar-Authentifizierung
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 Anmeldeinformationen für eine nahtlose Authentifizierung. AWS
Generieren Sie ein RSA-Schlüsselpaar
Generieren Sie mit OpenSSL ein privates und ein öffentliches key pair.
-
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 auslässt.
-nocrypt
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
Teilen Sie Ihren privaten Schlüssel nicht mit anderen. 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
Gehen Sie wie folgt vor, um einen Snowflake-Benutzer zu konfigurieren.
-
Erstellen Sie einen dedizierten Benutzer für den Athena-Connector, falls er noch nicht existiert.
-- Create user for Athena connector CREATE USER
athena_connector_user
; -- Grant necessary privileges GRANT USAGE ON WAREHOUSEyour_warehouse
TO ROLEathena_connector_role
; GRANT USAGE ON DATABASEyour_database
TO ROLEathena_connector_role
; GRANT SELECT ON ALL TABLES IN DATABASEyour_database
TO 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
OWNERSHIP
RechtMODIFY PROGRAMMATIC AUTHENTICATION METHODS
oder für den Benutzer. -
Die
SECURITYADMIN
Rolle oder höher.
Erteilen Sie mit dem folgenden Befehl die erforderlichen Rechte, um öffentliche Schlüssel zuzuweisen.
GRANT MODIFY PROGRAMMATIC AUTHENTICATION METHODS ON USER
athena_connector_user
TO ROLEyour_admin_role
;-
-
Weisen Sie dem Snowflake-Benutzer den öffentlichen Schlüssel mit dem folgenden Befehl zu.
ALTER USER
athena_connector_user
SET RSA_PUBLIC_KEY='RSAkey
';Stellen Sie mit dem folgenden Befehl sicher, dass der öffentliche Schlüssel dem Benutzer erfolgreich zugewiesen wurde.
DESC USER
athena_connector_user
;
-
Speichern Sie den privaten Schlüssel in AWS Secrets Manager
Konvertieren Sie Ihren privaten Schlüssel in das vom Connector benötigte Format.
# Read private key content cat rsa_key.p8
-
Erstellen Sie ein Geheimnis 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
\n
getrennt 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 die Erstellung einer Sicherheitsintegration in Snowflake, das Abrufen von OAuth Client-Anmeldeinformationen, das Abschließen des Autorisierungsvorgangs zum Abrufen eines Zugangscodes und das Speichern der Anmeldeinformationen für die Verwendung durch den OAuth Connector. AWS Secrets Manager
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 INTEGRATION
my_snowflake_oauth_integration_a
TYPE = 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. Es kann localhost zum Testen sein. -
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).
-
Ruft OAuth Kundengeheimnisse ab
-
Führen Sie den folgenden SQL-Befehl aus, um die Client-Anmeldeinformationen abzurufen.
DESC SECURITY INTEGRATION '
MY_SNOWFLAKE_OAUTH_INTEGRATION_A
'; Rufen Sie die OAuth Client-Geheimnisse 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 Callback-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-Verbindung verwenden können, wenn Sie eine Datenquellenverbindung erstellen.