メインコンテンツまでスキップ

Databricks アプリのネットワークを構成する

Databricks アプリは、きめ細かなネットワーク制御をサポートしており、アプリがインターネットや内部リソースと通信する方法を安全に管理するのに役立ちます。IP アクセス リスト、フロントエンド プライベート接続、およびネットワーク ポリシーを組み合わせて使用することで、入力 (着信) トラフィック ルールと出力 (発信) トラフィック ルールの両方を構成できます。

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

Databricks 、トラフィックを直接受信するサーバレス コンピュート プレーンにアプリをデプロイします。 これは、モデルサービングや連続検索などの他のルート最適化サービスと同様です。

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

  1. Databricks アプリへの最初のユーザー リクエストは、コントロール プレーンで OAuth 認証を開始し、セッションを検証してアプリへのアクセスを承認します。
  2. 認証が成功すると、後続のすべてのリクエストは、コントロール プレーンを経由せずに、サーバレス コンピュート プレーンに直接ルーティングされます。

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

イングレスコントロール

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

  • IP アクセス リスト: ワークスペース レベルで IP アクセス リストを有効にして、ワークスペースとアプリのアクセスを既知の信頼できる IP 範囲に制限します。設定された IP 範囲からのトラフィックのみが許可されます。詳細については、 「ワークスペースの IP アクセス リストを構成する」を参照してください。

  • フロントエンドプライベート接続: パブリックインターネットではなく、独自の VPC インターフェースエンドポイントを介して入力トラフィックをルーティングします。

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

エグレス制御

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

ネットワーク接続の構成

ネットワーク接続構成を使用して、安定したエグレス IP を割り当て、アプリが外部サービスに接続する方法を制御します。NCC は、Databricks トラフィックを安全に許可するために外部システム許可リストに追加できる固定パブリック IP アドレスを提供します。

S3 バケットやネットワークロードバランサー (NLB) などのプライベートデスティネーションへのエグレスを制限するには、NCC セットアップの一部として PrivateLink 接続を設定します。

ネットワークポリシー

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

注記

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

アプリが次の場合にネットワーク ポリシーを適用する

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

ネットワークポリシーの設定に関するベストプラクティス

次のガイドラインに従って、意図しない中断を回避し、アプリが必要なリソースにアクセスできるようにします。

  • 必要な目的地のみを許可します。アプリに必要なパブリックまたはプライベートリソースの完全修飾ドメイン名 (FQDN) を追加します。

  • 必要に応じてパッケージリポジトリを含めます。アプリがパブリック Python または Node.js パッケージをインストールする場合は、Python の pypi.org や Node の registry.npmjs.org などのドメインを許可できます。アプリケーションでは、特定の依存関係に応じて、追加のドメインまたは異なるドメインが必要になる場合があります。これらのリポジトリがないと、 requirements.txtpackage.json に依存するアプリのビルドが失敗する可能性があります。

  • dry-run モードを使用して、ネットワーク ポリシーを検証します。 このモードは、トラフィックをブロックせずにポリシーの適用をシミュレートします。

  • system.access.outbound_networkテーブルを使用して、拒否された接続試行を確認します。これにより、許可する必要がある可能性のあるドメインを特定できます。「拒否ログを確認する」を参照してください。

  • 信頼されたAPIs AWSS3や や STS などの サービス エンドポイントなど、必要な外部ドメインを追加します。

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

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

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

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

ユーザーのネットワークの場所によっては、ユーザーとdatabricksapps.comのトラフィックがパブリック インターネットを通過する可能性があります。パブリック インターネット ルーティングを回避するには、フロントエンド プライベート接続を構成します。

転送中の暗号化

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

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

保存時の暗号化

Databricks アプリは、次の方法を使用して保存されたデータを暗号化します。

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