Set up Openflow - Snowflake Deployment: Create Snowflake role

Openflow - Snowflake Deployment では、デプロイメントではなく、特定のランタイムに固有のリソースを多数作成する必要があります。通常、そのようなリソースには次が含まれます。

  • Creation of Runtime specific Snowflake role

  • ランタイム固有のネットワークルールと外部アクセス統合(EAI)の作成

このトピックでは、これらのリソースの作成について説明します。

  1. Create a Snowflake Role and associated privileges to write data to Snowflake Role for Runtimes on Snowflake Deployment Section

  2. Associate Snowflake Role. See Snowflake Role for Runtimes in the Snowflake Deployment Section.

  3. 外部アクセス統合を作成し、それらをランタイムに関連付けます。外部アクセス統合の作成 をご参照ください

  4. SPCS エグレスを使用してプライベートシステムに接続するために、アウトバウンド PrivateLink 接続が必要になる場合。

Create a Snowflake role

When creating and editing Openflow Runtimes, Runtime Owners will have the ability to associate a role with the Runtime. This role will be used for flows that execute within the Runtime. For more information about Snowflake Roles, see What is a Snowflake role?.

注釈

As OPENFLOW_ADMIN, you'll create the Snowflake role and grant it to OPENFLOW_ADMIN, so that users granted that role are authorized to set this role on the Runtime.

Creating a Snowflake role is a prerequisite for creating a Runtime and involves the following steps:

  1. ロール自体を作成する

  2. ランタイムが使用するウェアハウスへのアクセス権をロールに付与します。

  3. ランタイムが使用するSnowflakeオブジェクトへのアクセス権をロールに付与します。

  4. ランタイムが使用する外部アクセス統合へのアクセス権をロールに付与します。

To create a Snowflake role:

  1. Create the required Snowflake role.

    注釈

    <RUNTIMENAME> は、関連するランタイムの名前を示します。

    USE ROLE OPENFLOW_ADMIN;
    
    CREATE ROLE IF NOT EXISTS OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    
    GRANT ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME> TO ROLE OPENFLOW_ADMIN;
    
    Copy
  2. Allow the Snowflake role to use an existing warehouse that you are planning to use for data ingestion. Use this warehouse later when configuring your connectors for runtimes where you will be using this Snowflake role.

    GRANT USAGE, OPERATE ON WAREHOUSE <OPENFLOW_INGEST_WAREHOUSE> TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    
    Copy
  3. Allow the Snowflake role to use, create or otherwise access Snowflake objects.

    注釈

    作成されるOpenflowコネクタに応じて、基礎となる必須オブジェクトは異なります。以下の例は、説明のみを目的としています。

    GRANT USAGE ON DATABASE <OPENFLOW_SPCS_DATABASE> TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    GRANT USAGE ON SCHEMA <OPENFLOW_SPCS_SCHEMA> TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    
    Copy

ネットワークルールと外部アクセス統合の作成

Snowflakeのセキュリティモデルは、ネットワークポリシー を使用して、特定のエンドポイントおよびSnowflake外部のシステムへの安全なアクセスを提供します。

ネットワークポリシーの2つの重要な側面は、ネットワークルール および 外部アクセス統合(EAI) です。それぞれが、ランタイムに必要な外部リソースへの安全なアクセスを提供するために使用されます。

ネットワークルールと外部アクセス統合を作成するために必要な3つのステップがあります。

  1. ネットワークルールを作成し、ネットワーク識別子を論理的エリアにグループ化します。

  2. Create the external access integration (EAI), specifying the list of network rules and assuring the Snowflake Role has USAGE on the EAI.

  3. ランタイムの作成時に、Openflow UI で EAI をランタイムに関連付けます。

必要なネットワークルールと EAI を作成するには、次のステップを実行します。

注釈

これらの例では、作成されるランタイムの名前のプレースホルダーとして RUNTIME_NAME を使用します。

  1. 適切なネットワークルールを作成します。 詳細については、 CREATE NETWORK RULE をご参照ください。

    注釈

    <OPENFLOW_DATABASE> は、ネットワークルールを含むデータベースの名前を示します。Snowflakeでは、Openflowに関連するネットワークルールと外部アクセス統合のために、特別なデータベースを作成することを提案しています。

    USE DATABASE <OPENFLOW_DATABASE>;
    
    CREATE OR REPLACE NETWORK RULE OPENFLOW_<RUNTIME_NAME>_NETWORK_RULE
        MODE = EGRESS
        TYPE = HOST_PORT
        VALUE_LIST = ('comma separated list of host:port pairs');
    
    Copy
  2. 関連する外部統合を作成します。詳細については、 CREATE EXTERNAL ACCESS INTEGRATION をご参照ください。

    USE ROLE ACCOUNTADMIN;
    
    CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION OPENFLOW_<RUNTIME>_EAI
       ALLOWED_NETWORK_RULES = (OPENFLOW_<RUNTIME_NAME>_NETWORK_RULE)
       ENABLED = TRUE;
    
    Copy
  3. Grant access to the EAI to the previously created Snowflake role.

    GRANT USAGE ON INTEGRATION OPENFLOW_<RUNTIME_NAME>_EAI TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIME_NAME>;
    
    Copy

次のステップ

ランタイムを作成する