Snowflake Notebooks の外部アクセスの設定

デフォルトでは、Snowflakeは外部エンドポイントからのネットワークトラフィックリクエストを制限します。外部エンドポイントにアクセスするには、 外部ネットワークアクセス統合 を作成する必要があります。このトピックでは、ノートブックの外部ネットワークアクセスを設定する方法について説明します。

外部アクセス統合とその基になるネットワークルールは、組織管理者が作成する必要があります。

外部アクセス統合の作成 (EAI)

ノートブックの外部アクセス統合を作成するには、次のようにします。

  1. CREATE NETWORK RULE コマンドを使用して、 IP アドレスまたはドメインのセットを定義するネットワークルールを作成します。

  2. CREATE EXTERNAL ACCESS INTEGRATION コマンドを使用して、許可されたネットワークルールのリストを指定する外部アクセス統合を作成します。

注釈

ACCOUNTADMIN または EAIs を作成する権限を持つロールだけが、特定の外部エンドポイントにセットすることができます。必要な権限の情報については、 アクセス制御の要件 をご参照ください。

以下の例は、一般的なデータサイエンスや機械学習サイトの外部アクセスを設定する方法を示しています。

PyPI の外部アクセス統合を作成する:

CREATE OR REPLACE NETWORK RULE pypi_network_rule
MODE = EGRESS
TYPE = HOST_PORT
VALUE_LIST = ('pypi.org', 'pypi.python.org', 'pythonhosted.org',  'files.pythonhosted.org');

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION pypi_access_integration
ALLOWED_NETWORK_RULES = (pypi_network_rule)
ENABLED = true;
Copy

HuggingFace の外部アクセス統合を作成する:

CREATE OR REPLACE NETWORK RULE hf_network_rule
MODE = EGRESS
TYPE = HOST_PORT
VALUE_LIST = ('huggingface.co', 'cdn-lfs.huggingface.co');

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION hf_access_integration
ALLOWED_NETWORK_RULES = (hf_network_rule)
ENABLED = true;
Copy

1つの外部アクセス統合ですべてのネットワークアクセスを許可する:

CREATE OR REPLACE NETWORK RULE allow_all_rule
MODE= 'EGRESS'
TYPE = 'HOST_PORT'
VALUE_LIST = ('0.0.0.0:443','0.0.0.0:80');

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION allow_all_integration
ALLOWED_NETWORK_RULES = (allow_all_rule)
ENABLED = true;
Copy

外部アクセス統合の作成に必要な権限の付与

EAIs を作成したら、統合に対する USAGE 権限をアカウントロールに付与する必要があります。

EAI の作成に使用されたロールがオーナーになります。所有者であるロールは、他のロールに USAGE 権限を付与する必要があります。統合に USAGE 権限を付与するには、以下のコマンドを使用します:

GRANT USAGE ON INTEGRATION pypi_access_integration TO ROLE my_notebook_role;
GRANT USAGE ON INTEGRATION hf_access_integration TO ROLE my_notebook_role;
GRANT USAGE ON INTEGRATION allow_all_integration TO ROLE my_notebook_role;
Copy

注釈

ノートブックを作成するロールに、統合に対する USAGE 権限を付与することが重要です。PUBLIC ロールに付与された USAGE は機能しません。詳細な構文については、 外部ネットワークアクセス をご参照ください。

外部アクセス統合の有効化 (EAI)

EAIs を作成し、プロビジョニングした後、外部アクセスペインに作成したアクセス統合を表示するには、必ず Notebooks セッションを再起動してください。

  1. Snowsight にサインインします。

  2. Projects » Notebooks を選択します。

  3. 外部アクセス設定にアクセスするには、ノートブックの右上にある ワークシートのその他のアクション を選択します。

  4. Notebook settings を選択し、 External access ペインを選択します。

  5. 利用可能な外部アクセス統合のリストで、各統合の横にあるトグルを選択して、有効または無効にします。

新しい統合を有効にするには、 外部アクセス統合の有効化 (EAI) をご参照ください。

外部アクセス統合でのシークレットの使用

ほとんどの場合、 APIs は API キーを必要とします。外部アクセスを許可するには、 SQL を使ってノートブックにシークレット(API キーなど)を関連付けます。手動でノートブックにシークレットを関連付けるには、 ALTER NOTEBOOK ... SET SECRETS コマンドを使います。

ALTER NOTEBOOK <name>
 SET SECRETS = ('<secret_variable_name>' = <secret_name>);
Copy

ノートブックと関連付けた後にシークレットを取得するには、 シークレットアクセスのためのPython API をご参照ください。

追加のリソース