Openflow Connector for Salesforce Bulk API:Snowflakeの設定

注釈

このコネクタは、 Snowflakeコネクタ規約 に従うものとします。

このトピックでは、Openflow Connector for Salesforce Bulk API 用にSnowflakeを設定する手順について説明します。

前提条件

始める前に、次の内容を完了していることを確認してください。

キーペアの作成

コネクタのサービスアカウントユーザーがデータベースとやり取りするために使用するキーペアを作成します。

注釈

このステップは、Openflow BYOC でコネクタをデプロイする場合にのみ必要です。Openflow SPCS でコネクタをデプロイする場合に NOT 必要です。

  1. 秘密キーを生成します。以下の例は、暗号化されていないプライベートキーを生成する方法を示しています。

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

    rsa_key.p8 ファイルのコンテンツは次のようになります。

    -----BEGIN PRIVATE KEY-----
    MIIE6T...
    -----END PRIVATE KEY-----
    
    Copy
  2. プライベートキーを参照してパブリックキーを生成します。

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

    rsa_key.pub ファイルのコンテンツは次のようになります。

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

    次のセクションでユーザーを作成するときに使用するために、このファイルの内容(-----BEGIN PUBLIC KEY----- ヘッダーおよび -----END PUBLIC KEY----- ヘッダーを除く)をコピーします。

オブジェクトの作成および権限の付与

コネクタのサービスアカウント、ロール、データベース、スキーマ、ウェアハウスを作成し、適切な権限を付与します。

  1. ACCOUNTADMIN 権限を付与されているロールを使用してロールを設定します。

    USE ROLE ACCOUNTADMIN;
    
    Copy
  2. 宛先のSnowflakeデータベースが存在しない場合は作成します。

    CREATE DATABASE IF NOT EXISTS <my_salesforce_db>;
    
    Copy
  3. データベースに宛先スキーマが存在しない場合は作成します。

    CREATE SCHEMA IF NOT EXISTS <my_salesforce_db>.<my_salesforce_schema>;
    
    Copy
  4. Openflowコネクタで使用するロールを作成します。

    CREATE ROLE IF NOT EXISTS <Salesforce_connector_role_name>;
    
    Copy
  5. ロールにデータベースを使用するための権限を付与します。

    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. コネクタ用のウェアハウスを作成し(または既存のものを使用)、コネクタロールに使用権限を付与します。

    -- 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. サービスユーザーを作成し、ロールとパブリックキーを割り当てます。

    -- 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

ネットワークルールの作成(Openflow Snowflakeデプロイのみ)

Openflow Snowflakeデプロイにあるランタイムでコネクタをデプロイする場合は、ネットワークルールと外部アクセス統合を作成し、ランタイムで設定する必要があります。

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

次のステップ

Openflowでコネクタを構成します。

Openflow Connector for Salesforce Bulk API:コネクタを構成する