次の方法で共有


Databricks Apps のネットワークを構成する

Databricks Apps では、細かいネットワーク制御がサポートされており、アプリがインターネットや内部リソースと通信する方法をセキュリティで保護および管理するのに役立ちます。 IP アクセス リスト、フロントエンド プライベート接続、ネットワーク ポリシーの組み合わせを使用して、イングレス (受信) トラフィックルールとエグレス (送信) トラフィック ルールの両方を構成できます。

ネットワーク アーキテクチャ

Azure Databricks は、サーバーレス コンピューティング プレーンにアプリをデプロイし、そこでトラフィックを直接受信します。 これは、Model Serving や Vector Search などの他のルート最適化サービスに似ています。

接続プロセスは次のように動作します。

  1. Azure Databricks アプリに対する初期ユーザー要求では、セッションを検証し、アプリへのアクセスを承認するために、コントロール プレーンで OAuth 認証を開始します。
  2. 認証が成功すると、後続のすべての要求は、コントロール プレーンを走査することなく、サーバーレス コンピューティング プレーンに直接ルーティングされます。

サーバーレス コンピューティング プレーン用に構成されたネットワーク セキュリティ ポリシーは、Databricks Apps トラフィックに適用されます。 これには、IP アクセス リストとフロントエンドプライベート接続構成が含まれます。

イングレス コントロール

パブリック インターネットから Azure Databricks ワークスペースとアプリへのアクセスを制限するには、次の機能を使用します。

  • IP アクセス リスト: ワークスペース レベルで IP アクセス リストを有効にして、ワークスペースとアプリのアクセスを既知の信頼できる IP 範囲に制限します。 構成された IP 範囲からのトラフィックのみが許可されます。 詳細については、 ワークスペースの IP アクセス リストの構成に関するページを参照してください。
  • フロントエンドプライベート接続: Azure Private Link 接続を介してイングレス トラフィックをルーティングし、VNet 経由でアプリに安全にアクセスします。

    プライベート接続を介して適切な名前解決を行うには、 databricksapps.com ドメインの条件付き DNS 転送を構成する必要があります。 そうしないと、アプリのドメインの DNS クエリがプライベート エンドポイントではなくパブリック IP アドレスに解決される可能性があります。 セットアップ手順については、「 フロントエンド プライベート リンクの構成」を参照してください。

エグレス コントロール

アプリからの送信トラフィックを制御するには、ネットワーク接続構成 (NCC) を作成し、アプリをホストするワークスペースにネットワーク ポリシーを適用します。

ネットワーク接続の構成

ネットワーク接続構成を使用して、アプリを Azure サービスに安全に接続します。 NCC には、ストレージ アカウント ファイアウォールに追加して、アプリやその他のサーバーレス コンピューティングからのアクセスを明示的に許可できる安定したサブネット ID が用意されています。

プライベート宛先へのエグレス トラフィックをさらに制限するには、Azure リソースのサーバーレス プライベート エンドポイントを構成するか、VNet 内の Azure ロード バランサー経由でトラフィックをルーティングします。

ネットワーク ポリシー

ネットワーク ポリシーを使用して、Databricks アプリやその他のサーバーレス ワークロードにエグレス制限を適用します。 これは、送信接続を制御するために組織またはコンプライアンスの要件を満たす必要がある場合に便利です。

ネットワーク ポリシーは、Premium レベルでのみ使用できます。

アプリが特定の条件を満たす場合は、ネットワーク ポリシーを設定します。

  • 承認された外部ドメインの特定のセットへのアクセスを制限する必要がある
  • 偶発的なデータ流出を防ぐ必要がある
  • 送信インターネット トラフィックを制限するセキュリティまたはコンプライアンス標準に準拠する必要がある

ネットワーク ポリシーを構成するためのベスト プラクティス

意図しない中断を回避し、アプリが必要なリソースにアクセスできることを確認するには、次のガイドラインに従ってください。

  • 必要な宛先のみを許可します。 アプリで必要なパブリック リソースまたはプライベート リソースの完全修飾ドメイン名 (FQDN) を追加します。
  • 必要に応じてパッケージ リポジトリを含めます。 アプリでパブリック Python または Node.js パッケージをインストールする場合は、Python の pypi.org や Node の registry.npmjs.org などのドメインを許可できます。 アプリケーションでは、特定の依存関係に応じて、追加または異なるドメインが必要になる場合があります。 これらのリポジトリがないと、 requirements.txt または package.json に依存するアプリ ビルドが失敗する可能性があります。
  • ドライラン モードを使用して、ネットワーク ポリシーを検証します。 このモードでは、トラフィックをブロックせずにポリシーの適用をシミュレートします。
  • system.access.outbound_network テーブルを使用して、拒否された接続試行を確認します。 これは、許可する必要があるドメインを識別するのに役立ちます。 拒否ログの確認を参照してください。
  • 信頼できる API や Unity カタログに登録されていない Azure ストレージ アカウントなど、必要な外部ドメインを追加します。

暗号化とトラフィック ルーティング

Databricks Apps では、専用のルーティング パスと複数の暗号化レイヤーを使用して、ネットワーク通信をセキュリティで保護し、データを保護します。

トラフィックのルーティング

Azure Databricks コントロール プレーン、コンピューティング プレーン、その他の Azure Databricks リソース、クラウド サービス間のトラフィックは、クラウド プロバイダーのグローバル ネットワークを経由し、パブリック インターネットを経由しません。

ユーザーと databricksapps.com の間のトラフィックは、ユーザーのネットワークの場所に応じてパブリック インターネットを経由する場合があります。 パブリック インターネット ルーティングを回避するには、フロントエンドプライベート接続を構成します。

転送中の暗号化

アプリとの間のすべてのネットワーク通信は暗号化されます。

  • ユーザー トラフィック: ユーザーと databricksapps.com 間の通信では、トランスポート層セキュリティ (TLS) 1.3 暗号化が使用されます。
  • コントロール プレーン トラフィック: Azure Databricks コントロール プレーンとコンピューティング プレーン間の通信では、アプリの作成、更新、削除などの管理操作に相互 TLS (mTLS) が使用されます。

保存時の暗号化

Databricks Apps は、次の方法を使用して格納されたデータを暗号化します。

  • アプリケーション コード: Azure Databricks は、アプリ コードをワークスペース ファイルに格納し、ノートブックやその他のワークスペース ファイルと同じ暗号化を使用します。
  • コンピューティング ストレージ: アプリでは、AES-256 とクラウド プロバイダーの既定の暗号化実装で暗号化されたエフェメラル ホスト オペレーティング システム ディスクが使用されます。