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

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

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

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

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

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

注釈

以下の例は、 ACCOUNTADMIN ロールを使用して実行する必要があります。

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

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

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

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

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

外部アクセス統合のプロビジョニング

外部アクセス統合は、その基礎となるネットワークルールとともに、組織管理者によって作成され、プロビジョニングされる必要があります。

外部アクセス統合の作成

ノートブックの外部アクセス統合を作成するには、2つのステップがあります。

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

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

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

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 権限をアカウントロールに付与する必要があります。

以下のコマンドで、統合に対する 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 は機能しません。

詳細な構文については、 外部ネットワークアクセス をご参照ください。

統合の有効化

EAIs を作成し、プロビジョニングしたら、ノートブックセッションを再起動するようにしてください。これで、外部アクセスペインに作成したアクセス統合が表示されるはずです。新しい統合を有効にするには、 既存の外部アクセス統合(EAI)の有効化 をご参照ください。

追加のリソース