Configuration pour Snowpipe Streaming

Propriétés de Snowpipe Streaming

Configurer les paramètres de connexion API dans un fichier profile.json. Les propriétés sont décrites dans ce sujet.

Comme illustré dans l”exemple Java (GitHub), vous pouvez charger les paramètres à partir de profile.json en spécifiant le chemin du fichier comme entrée de la variable PROFILE_PATH.

Propriétés requises

authorization_type

Configurez la méthode d’authentification et d’autorisation pour l’utilisateur. Vous pouvez utiliser l’une des méthodes suivantes :

  • JWT : authentification par paire de clés avec JSON Token Web (JWT). C’est la méthode par défaut. Si authorization_type n’est pas configuré, la méthode par défaut JWT est utilisée. Configurez le private_key suivant pour l’authentification par paire de clés :

    • private_key Clé privée pour authentifier l’utilisateur. Incluez uniquement la clé, pas l’en-tête ni le pied de page. Si la clé est divisée sur plusieurs lignes, supprimez les sauts de ligne.

      Vous pouvez fournir une clé non chiffrée ou une clé chiffrée et fournir le paramètre snowflake.private.key.passphrase pour permettre à Snowflake de déchiffrer la clé. Utilisez ce paramètre si et seulement si la valeur du paramètre snowflake.private.key est chiffrée.

  • OAuth : Snowflake OAuth. Cette option n’est disponible qu’avec les versions SDK de Snowflake Ingest 2.0.3 et ultérieures. Configurez les paramètres suivants pour Snowflake OAuth dans le fichier profile.json :

    • oauth_client_id : ID de client de l’intégration OAuth.

    • oauth_client_secret : le secret du client de l’intégration OAuth.

    • oauth_refresh_token : un jeton d’actualisation valide de l’intégration OAuth.

url

l’URL pour accéder à votre compte Snowflake. Cette URL doit inclure votre identificateur de compte. Notez que le protocole (https://) et le numéro de port sont facultatifs.

Notez que url n’est pas nécessaire si vous utilisez déjà le Snowflake Ingest SDK et que vous avez défini les propriétés host, scheme et port dans le fichier profile.json.

user

Nom de connexion de l’utilisateur pour le compte Snowflake.

Propriétés facultatives

snowflake.private.key.passphrase

Mot de passe pour déchiffrer la clé privée lorsque la clé est chiffrée. Pour obtenir plus d’informations, voir Utilisation de l’authentification par paire de clés et rotation de clés (dans ce sujet).

role

Rôle de contrôle d’accès à utiliser pour la session après la connexion à Snowflake.

Notez que la propriété role est facultative pour les versions de SDK Snowflake Ingest 2.0.3 et ultérieures. Elle est nécessaire pour les versions de SDK d’Ingest antérieures.

Authentification et autorisation

Utilisation de OAuth Snowflake

Avec les versions de SDK 2.0.3 et ultérieures de Snowflake Ingest, ou avec Snowflake Connector for Kafka versions 2.1.2 et ultérieures, vous pouvez utiliser Snowflake OAuth comme méthode d’autorisation.

Suivez le workflow pour créer une intégration OAuth Snowflake et pour appeler les points de terminaison OAuth pour demander des codes d’autorisation et actualiser les jetons d’accès. La réponse aux demandes de jetons contient oauth_refresh_token. Une fois que l’intégration OAuth de Snowflake est créée, exécutez la fonction SYSTEM$SHOW_OAUTH_CLIENT_SECRETS pour obtenir oauth_client_id et oauth_client_secret.

Pour activer OAuth de Snowflake, dans le fichier profile.json, définissez authorization_type comme OAuth et remplissez les champs oauth_refresh_token, oauth_client_id et oauth_client_secret avec les paramètres obtenus ci-dessus.

Utilisation de l’authentification par paire de clés et rotation de clés

API reposent sur une authentification par paire de clés avec JSON Token Web (JWT). Les JWTs sont signés à l’aide d’une paire de clés publiques/privées avec chiffrement RSA. Cette méthode d’authentification nécessite une paire de clés de 2048 bits (minimum) RSA. Générez la paire de clés publiques-privées via OpenSSL. La clé publique est attribuée à l’utilisateur Snowflake défini dans le fichier de propriétés.

Complétez les instructions d’authentification de la paire de clés décrites dans rotation de la paire de clés. Copiez et collez la clé privée complète dans le champ snowflake.private.key du fichier de propriétés. Enregistrez le fichier.

Voir l’exemple Java pour un exemple de création d’une empreinte digitale et de génération d’un jeton JWT.

Ensuite, évaluez la recommandation pour Externaliser les secrets (dans ce sujet).

Externaliser les secrets

Snowflake recommande fortement d’externaliser des secrets tels que la clé privée et de les stocker sous une forme chiffrée ou dans un service de gestion de clés tel que AWS Key Management Service (KMS), Microsoft Azure Key Vault, ou HashiCorp Vault.

Pour plus d’informations, voir la description de ce service par Confluent.

Exemples