Openflow Connector for Salesforce Bulk API: Snowflake 설정

참고

이 커넥터에는 `Snowflake Connector 약관<https://www.snowflake.com/legal/snowflake-connector-terms/>`_이 적용됩니다.

이 항목에서는 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: 커넥터 구성