Openflow Connector for Salesforce Bulk API : Configurer Snowflake

Note

Ce connecteur est soumis aux conditions d’utilisation de Snowflake Connector.

Cette rubrique décrit les étapes à suivre pour configurer Snowflake pour Openflow Connector for Salesforce Bulk API.

Conditions préalables

Avant de commencer, assurez-vous d’avoir effectué ce qui suit :

Créer une paire de clés

Créez une paire de clés qui sera utilisée par l’utilisateur du compte de service dans le connecteur pour interagir avec la base de données.

Note

Cette étape n’est requise que si vous déployez le connecteur dans Openflow BYOC. Elle n’est NOT nécessaire lors du déploiement du connecteur dans Openflow SPCS.

  1. Générez une clé privée. L’exemple ci-dessous montre comment générer une clé privée non chiffrée.

    openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt
    
    Copy

    Le contenu du fichier rsa_key.p8 ressemblera à ceci :

    -----BEGIN PRIVATE KEY-----
    MIIE6T...
    -----END PRIVATE KEY-----
    
    Copy
  2. Générez la clé publique en faisant référence à la clé privée.

    openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
    
    Copy

    Le contenu du fichier rsa_key.pub ressemblera à ceci :

    -----BEGIN PUBLIC KEY-----
    MIIBIjANBgkqh...
    -----END PUBLIC KEY-----
    
    Copy

    Copiez le contenu de ce fichier (sans les en-têtes -----BEGIN PUBLIC KEY----- et -----END PUBLIC KEY-----) à utiliser lors de la création de l’utilisateur dans la section suivante.

Créer des objets et accorder des privilèges

Créez un compte de service, un rôle, une base de données, un schéma et un entrepôt pour le connecteur, et accordez les autorisations appropriées.

  1. Utilisez un rôle avec les privilèges ACCOUNTADMIN pour définir le rôle :

    USE ROLE ACCOUNTADMIN;
    
    Copy
  2. Créez la base de données de destination Snowflake, si elle n’existe pas :

    CREATE DATABASE IF NOT EXISTS <my_salesforce_db>;
    
    Copy
  3. Créez le schéma de destination dans la base de données, s’il n’existe pas :

    CREATE SCHEMA IF NOT EXISTS <my_salesforce_db>.<my_salesforce_schema>;
    
    Copy
  4. Créez le rôle utilisé par le connecteur Openflow :

    CREATE ROLE IF NOT EXISTS <Salesforce_connector_role_name>;
    
    Copy
  5. Accordez les privilèges au rôle pour utiliser la base de données :

    GRANT USAGE ON DATABASE <my_salesforce_db> TO ROLE <Salesforce_connector_role_name>;
    GRANT USAGE ON SCHEMA <my_salesforce_db>.<my_salesforce_schema> TO ROLE <Salesforce_connector_role_name>;
    GRANT CREATE TABLE ON SCHEMA <my_salesforce_db>.<my_salesforce_schema> TO ROLE <Salesforce_connector_role_name>;
    
    Copy
  6. Créez un entrepôt pour le connecteur (ou utilisez-en un existant) et accordez des privilèges d’utilisation au rôle de connecteur :

    -- Create a warehouse (skip if you wish to use an existing warehouse)
    CREATE OR REPLACE WAREHOUSE MY_WAREHOUSE WITH
     WAREHOUSE_SIZE = 'SMALL'
     AUTO_SUSPEND = 300
     AUTO_RESUME = TRUE;
    
    GRANT USAGE, OPERATE ON WAREHOUSE MY_WAREHOUSE TO ROLE <Salesforce_connector_role_name>;
    
    Copy
  7. Créez l’utilisateur du service et attribuez-lui le rôle et la clé publique :

    -- Create a service user that the connector will use to interact with Snowflake
    -- Set default role to <Salesforce_connector_role_name>
    -- Assign the public key generated with openssl in the previous step (only for BYOC)
    CREATE OR REPLACE USER <Salesforce_connector_user_name>
      TYPE = SERVICE
      DEFAULT_ROLE = <Salesforce_connector_role_name>
      RSA_PUBLIC_KEY = '<public_key_generated_by openssl_in_step_1>';
    
    -- Grant the role to the user
    GRANT ROLE <Salesforce_connector_role_name> TO USER <Salesforce_connector_user_name>;
    
    Copy

Créer une règle réseau (Déploiement Openflow Snowflake uniquement)

Si vous déployez le connecteur dans un environnement d’exécution qui se trouve dans un déploiement Openflow Snowflake, vous devez créer une règle réseau et une intégration d’accès externe, puis les définir sur l’environnement d’exécution.

USE ROLE SECURITYADMIN;

CREATE NETWORK RULE MY_OPENFLOW_SALESFORCE_NETWORK_RULE
   TYPE = HOST_PORT
   MODE = EGRESS
   VALUE_LIST = ('<salesforce_instance_host>:443');

CREATE EXTERNAL ACCESS INTEGRATION MY_OPENFLOW_SALESFORCE_EAI
   ALLOWED_NETWORK_RULES = (MY_OPENFLOW_SALESFORCE_NETWORK_RULE)
   ENABLED = TRUE
   COMMENT = 'External Access Integration to connect to Salesforce';

GRANT USAGE ON INTEGRATION MY_OPENFLOW_SALESFORCE_EAI TO ROLE <openflow_role_name>;
Copy

Prochaines étapes

Configurez le connecteur dans Openflow :

Openflow Connector for Salesforce Bulk API : Configuration du connecteur