サーバレスエグレスコントロールのネットワークポリシーの管理
プレビュー
この機能は パブリック プレビュー段階です。
BDC と SAP Databricksの間の接続が切断されないようにするには、サーバレス エグレス コントロールを設定する前に SAP のマニュアルを参照してください。
このドキュメントでは、SAP Databricksのサーバレスワークロードからの送信ネットワーク接続を制御するためのネットワーク ポリシーを設定および管理する方法について説明します。
必要条件
- ネットワークポリシーを管理するための権限は、アカウント管理者に制限されています。
ネットワークポリシーへのアクセス
アカウントでネットワークポリシーを作成、表示、更新するには:
- アカウントコンソールで、 クラウドリソース をクリックします。
- ネットワーク タブをクリックします。
新しいネットワーク ポリシーを作成する
-
新しいネットワーク ポリシーの作成 をクリックします。
-
ネットワークアクセスモードを選択します。
- フルアクセス :無制限のアウトバウンドインターネットアクセス。 フル アクセス を選択した場合、外向きのインターネット アクセスは制限されません。
- 制限付きアクセス : 送信アクセスは、指定された宛先に制限されます。 詳細については、「 ネットワーク ポリシーの概要」を参照してください。
ネットワークポリシーの設定
次の手順では、制限付きアクセスモードのオプション設定の概要を示します。
エグレス ルールを設定する
-
サーバレス コンピュートに追加のドメインへのアクセス権を付与するには、 許可されたドメイン リストの上にある 宛先の追加 をクリックします。
FQDN フィルターを使用すると、同じ IP アドレスを共有するすべてのドメインにアクセスできます。 エンドポイント全体でモデルサービング プロビジョニングは、ネットワーク アクセスが制限付きに設定されている場合、インターネット アクセスを防ぎます。 ただし、FQDN フィルタリングによるきめ細かな制御はサポートされていません。
-
ワークスペースが追加の cloud-storage-containers にアクセスできるようにするには、 [許可されたストレージ アカウント ] の一覧の上にある [ 宛先の追加 ] ボタンをクリックします。
エグレス ルールを設定するときは、次の点に注意してください。
- UC 外部ロケーションのメタストア バケットと cloud-storage-containers バケットが異なるリージョンにある場合、アクセスを成功させるには、バケットをエグレス許可リストに明示的に追加する必要があります。
- サポートされる宛先の最大数は 2000 です。 これには、ワークスペースからアクセス可能なすべての Unity Catalog の場所と接続、およびポリシーで明示的に追加された宛先が含まれます。
Unity Catalog 接続の暗黙的な許可リストは非推奨です。廃止前に暗黙的な許可リストを使用していたワークスペースを含むアカウントの場合、この動作は 2025 年 7 月 15 日まで有効です。
ポリシーの施行
dry-run モードを使用すると、リソースへのアクセスを中断することなく、ポリシー設定をテストし、送信接続を監視できます。 dry-run モードが有効な場合、ポリシーに違反する要求はログに記録されますが、ブロックされません。 次のオプションから選択できます。
-
Databricks SQL :Databricks SQLウェアハウスはドライ実行モードで動作します。
-
AI モデルサービング : モデルサービング エンドポイントはドライ実行モードで動作します。
-
すべての製品 : すべての SAP Databricks サービスはドライ実行モードで動作し、他のすべての選択を上書きします。
デフォルトポリシーを更新する
各 SAP Databricks アカウントには、 デフォルト ポリシー が含まれています。 デフォルト・ポリシーは 、明示的にネットワーク・ポリシーが割り当てられていないすべてのワークスペース(新しく作成されたワークスペースを含む)に関連付けられます。このポリシーは変更できますが、削除することはできません。デフォルト ポリシーは、少なくとも eligible-tier のワークスペースにのみ適用されます。
ネットワークポリシーをワークスペースに関連付ける
デフォルトのポリシーを追加の設定で更新した場合、既存のネットワークポリシーがないワークスペースにも自動的に適用されます。ワークスペースは対象レベルである必要があります。
ワークスペースを別のポリシーに関連付けるには、次の操作を行います。
- ワークスペースを選択します。
- ネットワーク ポリシー で、 ネットワーク ポリシーの更新 をクリックします。
- リストから目的のネットワークポリシーを選択します。
ネットワーク ポリシーの変更を適用する
ほとんどのネットワーク設定の更新は、10 分以内にサーバレス コンピュートに自動的に反映されます。 これには以下が含まれます。
- 新しい Unity Catalog 外部ロケーションまたは接続を追加する。
- ワークスペースを別のメタストアにアタッチする。
- 許可されたストレージまたはインターネットの宛先を変更します。
インターネットアクセスまたはドライ実行モードの設定を変更する場合は、コンピュートを再起動する必要があります。
サーバレスワークロードの再起動または再デプロイ
更新する必要があるのは、インターネットアクセスモードを切り替えるとき、またはドライ実行モードを更新するときだけです。
適切な再始動手順を決定するには、以下の製品別リストを参照してください。
- Databricks ML Serving : ML サービング エンドポイントを再デプロイします。_ を参照してください。
- DLT : 実行中の DLT パイプラインを停止してから再起動します。「_」を参照してください。
- サーバレス SQLウェアハウス : SQLウェアハウスを停止して再起動します。 「_」を参照してください。
- ワークフロー : ネットワーク ポリシーの変更は、新しいジョブの実行がトリガーされたとき、または既存のジョブの実行が再開されたときに自動的に適用されます。
- ノートブック :
- ノートブックが Sparkと対話しない場合は、新しいサーバレス クラスターを終了してアタッチし、ノートブックに適用されているネットワーク設定を更新できます。
- ノートブックが Sparkと対話すると、サーバレス リソースが更新され、変更が自動的に検出されます。 アクセス モードとドライ実行モードの切り替えは、適用されるまでに最大 24 時間かかる場合があり、その他の変更が適用されるには最大 10 分かかる場合があります。
ネットワーク ポリシーの適用を確認する
ネットワーク ポリシーが正しく適用されていることを確認するには、さまざまなサーバレス ワークロードから制限されたリソースへのアクセスを試みます。
- SQL エディタまたはノートブックでテストクエリを実行し、ネットワークポリシーによって制御されるリソースへのアクセスを試みます。
- 結果を確認します。
- 信頼できる宛先 : クエリは成功する必要があります。
- 信頼できない宛先 : クエリはネットワーク アクセス エラーで失敗します。
モデルサービングで検証
モデルサービングを使用してネットワーク ポリシーを検証するには、次のようにします。
-
テストモデルの作成
- Python ノートブックで、ファイルのダウンロードや API リクエストの作成など、公開インターネット リソースへのアクセスを試みるモデルを作成します。
- このノートブックを実行して、テスト ワークスペースにモデルを生成します。 例えば:
Python
import mlflow
import mlflow.pyfunc
import mlflow.sklearn
import requests
class DummyModel(mlflow.pyfunc.PythonModel):
def load_context(self, context):
pass
def predict(self, _, model_input):
first_row = model_input.iloc[0]
try:
response = requests.get(first_row['host'])
except requests.exceptions.RequestException as e:
# Return the error details as text
return f"Error: An error occurred - {e}"
return [response.status_code]
with mlflow.start_run(run_name='internet-access-model'):
wrappedModel = DummyModel()
mlflow.pyfunc.log_model(artifact_path="internet_access_ml_model", python_model=wrappedModel, registered_model_name="internet-http-access") -
配信エンドポイントを作成する
-
ワークスペースのナビゲーションで、 機械学習 を選択します。
-
サービング タブをクリックします。
-
サービングエンドポイントの作成 をクリックします。
-
次の設定でエンドポイントを構成します。
- サービングエンドポイント名 : わかりやすい名前を指定します。
- エンティティの詳細 : モデル レジストリ モデル を選択します。
- モデル : 前の手順で作成したモデルを選択します。
-
確認 をクリックします。
-
サービス エンドポイントが 準備完了 状態に達するまで待ちます。
-
-
エンドポイントをクエリします。
- サービス エンドポイント ページ内の クエリ エンドポイント オプションを使用して、テスト要求を送信します。
{"dataframe_records": [{"host": "https://www.google.com"}]}
-
結果を確認します。
- インターネット アクセスが有効: クエリは成功します。
- インターネット アクセス制限: クエリはネットワーク アクセス エラーで失敗します。
ネットワークポリシーを更新する
ネットワーク ポリシーは、作成後いつでも更新できます。 ネットワークポリシーを更新するには:
-
アカウントコンソールのネットワークポリシーの詳細ページで、ポリシーを変更します。
- ネットワークアクセスモードを変更します。
- 特定のサービスのドライ実行モードを有効または無効にします。
- FQDN またはストレージの宛先を追加または削除します。
-
更新 をクリックします。
-
ネットワーク ポリシーの変更を適用する を参照して、更新プログラムが既存のワークロードに適用されることを確認します。
制限
- 設定 : この機能は、アカウントコンソールからのみ設定できます。 API のサポートはまだ利用できません。
- アーティファクトのアップロードサイズ : MLflowの内部 Databricks Filesystem を
dbfs:/databricks/mlflow-tracking/<experiment_id>/<run_id>/artifacts/<artifactPath>
形式で使用する場合、アーティファクトのアップロードはlog_artifact
、log_artifacts
、およびlog_model
APIで5GBに制限されます。 - モデルサービング : モデルサービングのイメージを構築する場合、エグレスコントロールは適用されません。
- 短時間のみ有効なガベージコレクション (GC) ワークロードのログ配信拒否 : 存続時間が 120 秒未満の短時間 GC ワークロードからのログ拒否ログは、ログの遅延によりノードが終了する前に配信されない場合があります。アクセスは引き続き適用されますが、対応するログ エントリが欠落している可能性があります。