Konfigurieren von Snowpipe Streaming

Snowpipe Streaming-Eigenschaften

Konfigurieren Sie die API-Verbindungseinstellungen in einer profile.json-Datei. Die Eigenschaften werden unter diesem Thema beschrieben.

Wie im Java-Beispiel (GitHub) gezeigt, können Sie die Einstellungen aus profile.json laden, indem Sie den Dateipfad als Eingabe für die Variable PROFILE_PATH angeben.

Erforderliche Eigenschaften

authorization_type

Konfigurieren Sie die Authentifizierungs- und Autorisierungsmethode für den Benutzer. Verwenden Sie eine der folgenden Methoden:

  • JWT: Schlüsselpaar-Authentifizierung mit JSON Web Token (JWT). Dies ist die Standardmethode. Wenn authorization_type nicht konfiguriert ist, wird die Standardmethode JWT verwendet. Konfigurieren Sie die folgenden private_key für die Schlüsselpaar-Authentifizierung:

    • private_key ist der private Schlüssel zum Authentifizieren des Benutzers. Fügen Sie nur den Schlüssel hinzu, nicht Kopf- oder Fußzeile. Wenn der Schlüssel auf mehrere Zeilen aufgeteilt ist, entfernen Sie die Zeilenumbrüche.

      Sie können entweder einen unverschlüsselten Schlüssel bereitstellen oder einen verschlüsselten Schlüssel zusammen mit dem Parameter snowflake.private.key.passphrase, damit Snowflake den Schlüssel entschlüsseln kann. Verwenden Sie diesen Parameter nur und nur dann, wenn der snowflake.private.key-Parameterwert verschlüsselt ist.

  • OAuth: Snowflake OAuth. Diese Option ist nur bei Snowflake Ingest SDK Versionen 2.0.3 und höher verfügbar. Konfigurieren Sie die folgenden Parameter für Snowflake OAuth in der Datei profile.json:

    • oauth_client_id: Client-ID der OAuth-Integration.

    • oauth_client_secret: Client-Geheimnis der OAuth-Integration.

    • oauth_refresh_token: Gültiges Aktualisierungstoken der OAuth-Integration.

url

URL für den Zugriff auf Ihr Snowflake-Konto. Diese URL muss Ihren Kontobezeichner enthalten. Beachten Sie, dass das Protokoll (https://) und die Portnummer optional sind.

Beachten Sie, dass url nicht erforderlich ist, wenn Sie bereits das Snowflake Ingest SDK verwenden und die Eigenschaften host, scheme und port in der Datei profile.json festgelegt sind.

user

Anmeldename des Benutzers für das Snowflake-Konto.

Optionale Eigenschaften

snowflake.private.key.passphrase

Passphrase zum Entschlüsseln des privaten Schlüssels, wenn der Schlüssel verschlüsselt ist. Weitere Informationen dazu finden Sie unter Verwenden von Schlüsselpaar-Authentifizierung und Schlüsselrotation (unter diesem Thema).

role

Zugriffssteuerungsrolle, die nach dem Herstellen der Verbindung zu Snowflake für die Sitzung verwendet werden soll.

Beachten Sie, dass die Eigenschaft role für Snowflake Ingest SDK Versionen 2.0.3 und höher optional ist. Sie ist für frühere Ingest SDK-Versionen erforderlich.

Authentifizierung und Autorisierung

Verwenden von Snowflake OAuth

Mit dem Snowflake Ingest SDK ab Version 2.0.3 oder dem Snowflake-Konnektor für Kafka ab Version 2.1.2 können Sie Snowflake OAuth als Autorisierungsmethode verwenden.

Folgen Sie dem Workflow, um eine Snowflake OAuth-Integration zu erstellen und OAuth-Endpunkte aufzurufen, um Autorisierungscodes anzufordern und Zugriffstokens zu aktualisieren. Die Antwort auf Token-Anforderungen enthält oauth_refresh_token. Nachdem eine Snowflake OAuth-Integration erstellt wurde, führen Sie die Funktion SYSTEM$SHOW_OAUTH_CLIENT_SECRETS aus, um oauth_client_id und oauth_client_secret zu erhalten.

Um Snowflake OAuth zu aktivieren, setzen Sie in der Datei profile.json den Wert für authorization_type auf OAuth, und geben Sie dann in die Felder oauth_refresh_token, oauth_client_id und oauth_client_secret die oben ermittelten Parameter ein.

Verwenden von Schlüsselpaar-Authentifizierung und Schlüsselrotation

API-Aufrufe beruhen auf der Schlüsselpaar-Authentifizierung mit JSON Web Token (JWT). JWTs sind mit einem Public/Private-Schlüsselpaar mit RSA-Verschlüsselung signiert. Dieses Authentifizierungsverfahren erfordert ein 2048-Bit-RSA-Schlüsselpaar (Minimum). Generieren Sie das Public/Private-Schlüsselpaar mit OpenSSL. Der öffentliche Schlüssel wird dem in der Eigenschaftendatei definierten Snowflake-Benutzer zugewiesen.

Führen Sie die unter Schlüsselpaar-Rotation beschriebene Anleitung zur Schlüsselpaar-Authentifizierung aus. Kopieren Sie den gesamten privaten Schlüssel, und fügen Sie ihn in das Feld snowflake.private.key der Eigenschaftendatei ein. Speichern Sie die Datei.

Ein Beispiel für das Erstellen eines Fingerabdrucks und zum Generieren eines JWT-Tokens finden Sie unter Java-Beispiel.

Prüfen Sie als Nächstes die Empfehlung unter Externalisieren von Geheimnissen (unter diesem Thema).

Externalisieren von Geheimnissen

Snowflake empfiehlt dringend, Geheimnisse wie den privaten Schlüssel zu externalisieren und in verschlüsselter Form bzw. in einem Schlüsselverwaltungsdienst wie AWS KMS, Azure Key Vault oder HashiCorp Vault zu speichern.

Weitere Informationen dazu finden Sie in der Beschreibung des Confluent-Dienstes.

Beispiele