Openflow - Snowflake Deployment を設定する:ランタイムロールを作成する¶
Openflow - Snowflake Deployment では、デプロイメントではなく、特定のランタイムに固有のリソースを多数作成する必要があります。通常、そのようなリソースには次が含まれます。
ランタイム固有のランタイムロールの作成
ランタイム固有のネットワークルールと外部アクセス統合(EAI)の作成
このトピックでは、これらのリソースの作成について説明します。
Snowflakeデプロイメントセクションで、ランタイムロールと、ランタイムのSnowflakeランタイムロールにデータを書き込むための関連する権限を作成する
ランタイムロールを関連付けます。Snowflakeデプロイメントセクションでランタイムのランタイムロールを確認します。
外部アクセス統合を作成し、それらをランタイムに関連付けます。外部アクセス統合の作成 をご参照ください
SPCS エグレスを使用してプライベートシステムに接続するために、アウトバウンド PrivateLink 接続が必要になる場合。
ランタイムロールを作成する¶
Openflowランタイムを作成および編集する際、ランタイム所有者は、ロールをランタイムに関連付けることができます。このロールは、ランタイム内で実行されるフローに使用されます。ランタイムロールの詳細については、ランタイムロールとは をご参照ください。
注釈
OPENFLOW_ADMIN として、ランタイムロールを作成し、OPENFLOW_ADMIN に付与します。これにより、そのロールを付与されたユーザーは、ランタイムでこのロールの設定を許可されます。
ランタイムロールの作成は、ランタイムを作成するための前提条件であり、次のステップに関係します。
ロール自体を作成する
ランタイムが使用するウェアハウスへのアクセス権をロールに付与します。
ランタイムが使用するSnowflakeオブジェクトへのアクセス権をロールに付与します。
ランタイムが使用する外部アクセス統合へのアクセス権をロールに付与します。
ランタイムロールを作成するには、以下を実行します。
必要なランタイムロールを作成します。
注釈
<RUNTIMENAME>は、関連するランタイムの名前を示します。USE ROLE OPENFLOW_ADMIN; CREATE ROLE IF NOT EXISTS OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>; GRANT ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME> TO ROLE OPENFLOW_ADMIN;
ランタイムロールに、データインジェスチョンに使用する予定の既存のウェアハウスを使用することを許可します。後でこのランタイムロールを使用するランタイム用のコネクタを構成する際に、このウェアハウスを使用します。
GRANT USAGE, OPERATE ON WAREHOUSE <OPENFLOW_INGEST_WAREHOUSE> TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
ランタイムロールにSnowflakeオブジェクトを使用、作成、またはアクセスすることを許可します。
注釈
作成される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>;
ネットワークルールと外部アクセス統合の作成¶
Snowflakeのセキュリティモデルは、ネットワークポリシー を使用して、特定のエンドポイントおよびSnowflake外部のシステムへの安全なアクセスを提供します。
ネットワークポリシーの2つの重要な側面は、ネットワークルール および 外部アクセス統合(EAI) です。それぞれが、ランタイムに必要な外部リソースへの安全なアクセスを提供するために使用されます。
ネットワークルールと外部アクセス統合を作成するために必要な3つのステップがあります。
ネットワークルールを作成し、ネットワーク識別子を論理的エリアにグループ化します。
外部アクセス統合(EAI)を作成し、ネットワークルールのリストを指定し、ランタイムロールが EAI で USAGE を持つようにします。
ランタイムの作成時に、Openflow UI で EAI をランタイムに関連付けます。
必要なネットワークルールと EAI を作成するには、次のステップを実行します。
注釈
これらの例では、作成されるランタイムの名前のプレースホルダーとして RUNTIME_NAME を使用します。
適切なネットワークルールを作成します。 詳細については、 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');
関連する外部統合を作成します。詳細については、 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;
EAI へのアクセス権を以前に作成したランタイムロールに付与します。
GRANT USAGE ON INTEGRATION OPENFLOW_<RUNTIME_NAME>_EAI TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIME_NAME>;