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

ワークスペースのインバウンドPrivateLinkを構成する

このページでは、ユーザーとそのDatabricks間のインバウンドプライベート接続の構成ステップについて説明します。 ワークスペースのサーバレス実装のセキュリティを強化するには、インバウンドプライベート接続を使用する必要があります。

  • Databricksにおけるプライベート接続の概要については、Private Linkの概念を参照してください。

受信プライベートリンクを使用して、AWS VPC またはオンプレミス ネットワークから Databricks サービスへの安全なプライベート接続を確立します。これにより、トラフィックはパブリック インターネットではなく VPC インターフェイス エンドポイント経由でルーティングされます。

インバウンドエンドポイントはトランジットVPCから発信され、通常、ユーザーのWebアプリケーションアクセスのソースとして機能します。クラシックコンピュートを使用する場合、これは通常、ワークスペースのコンピュートプレーンVPCとは別のVPCであり、オンプレミスネットワークに接続できます。複数のDatabricksアカウントをお持ちの場合、関連する各Databricksアカウントにエンドポイントを登録することで、これらのアカウント間でインバウンドVPCエンドポイントを共有できます。

ワークスペースへのインバウンドPrivate Linkを使用する場合:

  • プライベートアクセスを設定します: Databricks Webアプリケーション、REST API、Databricks Apps、およびDatabricks Connect APIへのインバウンドPrivate Link接続を設定します。
  • プライベート接続を強制する:ユーザーからDatabricksへのプライベート接続を構成します。

インバウンドプライベート接続

必要条件

  • Databricks アカウントはEnterprise プランにあります。
  • Databricks ワークスペースを設定し、ワークスペースの新しい VPC エンドポイントを作成するには、必要なすべての AWS アクセス許可が必要です。
  • オンプレミス ネットワークからワークスペースにアクセスするためのインバウンド PrivateLink 接続を確立するには、Direct Connect または VPN を使用してオンプレミス ネットワークを AWS VPC に接続します。
  • ローカル ネットワーク内のすべての関連アドレス空間からのネットワーク トラフィックが TCP ポート 443 を使用して VPC エンドポイントに接続できるようにします。

ステップ 1: VPC エンドポイントを作成する

ヒント

**ワークスペース**の**プライベートアクセス**の場合、**アカウント**レベルの**リソース**への**インバウンドプライベートリンク**用にすでに作成した既存の**汎用アクセス****VPC****エンドポイント**を再利用できます(**アカウント**レベルの**リソース**への**インバウンドプライベートリンク**を**構成**するを参照してください)。この**VPC****エンドポイント**のリージョンは、**ワークスペース**のリージョンと一致する必要はありません。任意のリージョンの**汎用アクセス****エンドポイント**は、任意のリージョンの**ワークスペース**を**提供**できます。

AWS マネジメントコンソールでインバウンド VPC エンドポイントを作成するには:

  1. AWSマネジメントコンソールの [VPCエンドポイント] セクションに移動します。
  2. 右上で、リージョンをトランジット VPC リージョンと同じリージョンに設定します。
  3. [ エンドポイントの作成 ] をクリックします。
  4. エンドポイントに名前を付ける際、Databricksではgeneral-accessを含めることを推奨しており、例えばdatabricks-general-access-vpceです。
  5. 「タイプ」 で、 「NLBとGWLBを使用するエンドポイントサービス」 を選択します。
  6. サービス名フィールドに、サービス名を貼り付けます。PrivateLink VPCエンドポイントサービスの表を使用して、リージョンサービス名を検索します。 一般的なアクセス (REST APIを含む) というラベルが付いたものをコピーします。
  7. 「サービスの検証」 をクリックし、 検証されたサービス名が 緑色のボックスに表示されることを確認します。 「サービス名を検証できませんでした」というエラーが発生した場合は、VPC、サブネット、新しい VPC エンドポイントのリージョンが正しく一致していることを確認してください。
  8. [ VPC ] メニューで、トランジットVPCをクリックします。
  9. [ サブネット ] セクションで、サブネットを選択します。
  10. [セキュリティ グループ] セクションで、ワークスペースにアクセスする必要がある IP 範囲からポート 443 での受信トラフィックを許可するセキュリティ グループを選択します。
  11. [ エンドポイントの作成 ] をクリックします。

ステップ 2: VPC エンドポイントを登録する

AWS マネジメントコンソールで VPC エンドポイントを作成したら、Databricks に登録してください。

  1. Databricks アカウント コンソールに移動します。

  2. サイドバーの [セキュリティ] をクリックします。

  3. 垂直ナビゲーションから プライベートエンドポイント をクリックします。

  4. **プライベートエンドポイントを登録する**をクリックします。

  5. VPC エンドポイント登録のわかりやすい名前を入力します。

    • VPCE for General Accessなど、目的を含む命名規則を推奨します。
  6. 適切なリージョンを選択します。リージョンは、登録しているAWS VPCエンドポイントのリージョンと一致している必要があります。

  7. AWS VPC エンドポイント ID を AWS VPC エンドポイント ID フィールドに貼り付けます。

    登録する VPC Endpoint.

  8. [新しい VPC エンドポイントを登録] をクリックします。

Classicコンピュートを使用しており、同じ顧客管理VPCを共有する複数のワークスペースがある場合は、それらの間でAWS VPCエンドポイントを共有できます。複数のDatabricksアカウントの場合、各アカウントにAWS VPCエンドポイントを登録できます。

ステップ3: プライベートアクセスポリシーを構成する

General Access VPCエンドポイントを登録すると、ワークスペースのプライベートアクセスポリシーを設定する方法は、コンテキストベースのイングレスを使用する方法と、プライベートアクセス設定を使用する方法の2つがあります。コンテキストベースのイングレスアプローチを使用すると、ID、リクエストの種類、およびネットワーク ソースの条件を結合することで、きめ細かいアクセスを構成できます。コンテキストベースのイングレスプライベートアクセス ポリシーもリージョンに限定されません。任意のリージョンのエンドポイントを許可リストに追加して、異なるリージョンのワークスペースに提供できます。「コンテキストベースのイングレス制御」を参照してください。プライベートアクセス設定は、すべて一括で適用されるリージョンに限定されたポリシーです。

トラフィックが許可されるには、プライベートアクセス設定とコンテキストベースのイングレスの両方がエンドポイントを許可する必要があります。デフォルトでは、コンテキストベースのイングレスは [すべてのプライベートエンドポイントからのアクセスを許可] に設定されており、アクセス決定はワークスペースのプライベートアクセス設定に委ねられます。コンテキストベースのプライベートアクセスポリシーを構成したい場合は、ワークスペースにプライベートアクセス設定がアタッチされており、すべての登録済みプライベートエンドポイントが許可されていることを確認してください(詳細は以下を参照)。これにより、アクセス決定はワークスペースのコンテキストベースのイングレスポリシーに委ねられます。

備考

プレビュー

**コンテキストベースのイングレス**を**使用**した**ワークスペース**への**プライベートアクセス**は**ベータ版**です。

  1. アカウント コンソールで、サイドバーの [セキュリティ] をクリックします。

  2. サイドバーで コンテキストベースのイングレスとエグレス制御 をクリックします。

  3. ワークスペースレベルポリシー 」で、「 新しいワークスペースポリシー 」をクリックします。

  4. Ingress > Private Network Access で、プライベートアクセスポリシーを定義してください。

    1. デフォルトで、登録されているすべてのエンドポイントが許可されています: すべてのプライベートエンドポイントからのアクセスを許可 。これでよろしければ、次のステップに進んでください。このデフォルトには、登録された最初の200個のVPCエンドポイントのみが含まれます。ポリシーでさらに必要な場合は、増量についてアカウントチームにご連絡ください。
    2. 特定の登録済みエンドポイントを許可リストに登録し、他のすべてのエンドポイントを拒否する場合は、[ すべてのプライベートエンドポイントからのアクセスを許可 ] のチェックを外し、許可ルールを追加します。
      1. アクセスを許可するIDとワークスペースの送信先を選択してください(デフォルトでは、すべてのIDと送信先が許可されています)。
      2. 次に、ソースタイプ = **選択されたプライベートエンドポイント** を選択し、登録済みのGeneral Access VPCエンドポイントを選択します。このVPCエンドポイントのリージョンは、ワークスペースのリージョンと一致する必要はありません。どのリージョンのGeneral Accessエンドポイントも、どのリージョンのワークスペースにもサービスを提供できます。
      3. 確認 をクリックします。
      4. 許可ルールに対する例外を定義する 拒否ルール をポリシーに追加することもできます。
  5. **プライベートアクセス****ポリシー**の設定が完了したら、**イングレス** > **パブリックネットワークアクセス**で**パブリックアクセス****ポリシー**も設定できます。**すべての****パブリックIP**からの**アクセス**を**許可**のチェックを外すことで、すべての**パブリックIP**アクセスを**無効**にすることができます。**Databricks**では、DNS**構成**をテストしている間は**パブリックアクセス**を有効にしたままにし、DNSが確定した後に無効にすることで、排他的な**プライベート****接続**を強制することを**推奨**しています。

  6. まず ドライランモード でイングレスポリシーをテストしてから、 Enforced に切り替えてください。ドライランモードでのアクセス拒否はsystem.access.inbound_networkシステムテーブルに記録されますが、アクセスはブロックされません。

  7. エグレス ポリシーが正しいことを確認してください。

  8. ネットワークポリシーをワークスペースに適用します。

  9. ネットワークポリシーを保存します。コンテキストベースのイングレスポリシーの更新が有効になるまでに10分未満です。

  10. 「すべてのアクセスを許可」プライベートアクセス設定をワークスペースにアタッチしてください。プライベートアクセス設定がアタッチされていないワークスペースは、ネットワークポリシーに関係なく、すべてのプライベートアクセスが拒否されます。

    1. アカウント コンソールで、サイドバーの [セキュリティ] をクリックします。
    2. サイドバーの プライベートアクセス設定 をクリックします。
    3. [プライベートアクセス設定の追加] をクリックします。
    4. 新しいプライベートアクセス設定オブジェクトの名前を入力します。
    5. ワークスペースの地域に一致する地域を選択します。
    6. 「**パブリックアクセスが有効**」フィールドを「**True**」に構成します。
    7. プライベートアクセスレベル を選択: アカウント
    8. [プライベートアクセス設定の追加] をクリックします。
    9. ワークスペースで、[ 詳細設定 ] をクリックして追加のフィールドを表示します。
    10. Private Link ドロップダウンで、前のステップで作成したプライベートアクセス設定オブジェクトの名前を選択します。
    11. 保存 をクリックします。
ヒント

ワークスペースごとに1つのネットワークポリシーを作成できます。ただし、複数のワークスペースが同じイングレスおよびイグレスポリシーを共有している場合は、同じネットワークポリシーを共有できるため、「一度定義してどこにでもアタッチ」できます。

ヒント

同じリージョン内の任意のワークスペースで、同じ「すべてのアクセスを許可」プライベートアクセス設定を再利用できます。

インバウンドVPCエンドポイントを作成および登録した後、ユーザーリクエストをプライベートネットワーク経由でVPCエンドポイントのプライベートIPアドレスにルーティングするようにDNSを構成します。

すべてのワークスペースには、カスタムURL(例:<my-custom-account-name>.databricks.com)とワークスペース固有のURL(例:dbc-<workspace-deployment-id>.cloud.databricks.com)という2つの有効なURLがあります。

ワークスペース固有のURLを常にワークスペースのVPCエンドポイントにルーティングする必要があります。アクセスにカスタムURLを使用したい場合は、カスタムURLをワークスペースのVPCエンドポイントにルーティングする必要もあります。

Route 53 のセットアップ、条件付き転送パターン、トラブルシューティングのガイダンスを含む包括的な DNS 構成手順については、 「AWS インバウンド PrivateLink の DNS を構成する」を参照してください。

DNS解決を検証する

DNS を構成した後、両方のワークスペース URL がパブリック IP アドレスではなく、プライベート IP アドレスに解決されることを確認してください。これらのプライベートIPは、以下に示すIPとは異なる場合があります。

ワークスペース固有のURL:

Bash
nslookup myworkspace.cloud.databricks.com

privatelinkサブドメインを介した解決を示す期待される出力。**正規名**にprivatelinkが表示されない場合、**ワークスペース**に**プライベートアクセス設定**を**アタッチ**しておらず、**プライベートアクセス**は**機能しません**。

myworkspace.cloud.databricks.com    canonical name = sydney.privatelink.cloud.databricks.com
Name: sydney.privatelink.cloud.databricks.com
Address: 10.176.10.182

カスタム URL:

Bash
nslookup <my-custom-account-name>.databricks.com

期待される出力:

<my-custom-account-name>.databricks.com
Address: 10.176.10.182

マネージドディザスタリカバリを持つワークスペースのインバウンドPrivate Linkを構成します。

管理型ディザスタリカバリ(管理型ディザスタリカバリを参照)が有効なワークスペースは、<my-custom-url>.databricks.com/?c=stable_connection_idの形式でカスタムURLを安定したワークスペースURLとして使用します。この安定URLは、プライマリワークスペースとセカンダリワークスペースの両方に対応できます。

これらのワークスペースのインバウンドPrivateLinkを構成するには:

  1. DNSが**カスタムURL**を**解決**し、**登録**された**汎用アクセス****エンドポイント**に**対応**させます(**AWS** **インバウンド** **プライベートリンク**のDNSを**構成**するを参照してください)。
  2. コンテキストベースのイングレスを使用して、このエンドポイントをプライマリワークスペースとセカンダリワークスペースの両方に許可リストに登録します。
  3. プライマリーリージョンが**利用不可**になった場合に使用するため、別のリージョンに**フェイルオーバー****汎用アクセス****エンドポイント**を**作成**します。**Databricks**は**推奨**していますが、セカンダリー**ワークスペース**と同じリージョンに**作成**することは必須ではありません。
  4. コンテキストベースのイングレスを使用して、このフェイルオーバーエンドポイントをプライマリとセカンダリの両方のワークスペースに許可リストに追加します。
  5. 必要に応じて、追加のリージョンでステップ3と4を繰り返してください。

フェールオーバーの動作:

  • **プライマリワークスペースがダウンし、プライマリエンドポイントが引き続き利用可能**: 安定したURLは、プライマリエンドポイントを介してセカンダリワークスペースへのサービスを自動的に継続します。これは、任意のリージョンの汎用アクセスエンドポイントが、任意のリージョンのワークスペースにサービスを提供できるためです。
  • プライマリリージョン全体の停止 :カスタムURLを、ステップ3~4で許可リストに登録されている別の一般アクセスエンドポイントに解決する必要があります。DNSレコードは手動で更新することも、プライベートホストゾーンのフェイルオーバーレコードを含むRoute 53ヘルスチェックを使用して自動化することもできます。

カスタムURLがマネージドディザスタリカバリ なし のワークスペースも提供する場合、アクティブエンドポイントが変更されたときにアクセスが維持されるように、そのコンテキストベースのイングレスポリシーがフェールオーバーエンドポイントも許可していることを確認してください。

インバウンドPrivate Linkを統合ログインで構成する

備考

プレビュー

統合ログインを含むアカウントレベルのリソースへのプライベートアクセスはベータ版です。アカウントレベルのリソースのインバウンドPrivate Linkを構成するを参照してください。

ユーザーがパブリックインターネットにアクセスできる場合(つまり、DNS解決にパブリックリゾルバーを使用でき、認証リクエストにパブリックインターネットを使用できる場合)、このステップは不要です。

統合ログインが有効になっているワークスペースにユーザーがログインすると、Databricks は認証フローでユーザーを accounts.cloud.databricks.com にリダイレクトします。ユーザーがパブリックインターネットにアクセスできない場合は、次のステップに従って ID プロバイダーと内部 DNS を構成してください。

ID プロバイダーでプライベート リンクのリダイレクト URI を承認します

  1. アカウント管理者として、アカウントコンソールにログインします。
  2. サイドバーで、 設定 をクリックします。
  3. 認証 タブをクリックします。
  4. 認証 の横にある 管理 をクリックします。
  5. [ ID プロバイダーによるシングル サインオン ] を選択します。
  6. 続行 をクリックします。
  7. Databricks リダイレクト URL フィールドの値をコピーします。
  8. ID プロバイダーに移動します。
  9. Databricks Redirect URIを追加のリダイレクトURLとして追加します。SAMLを使用してSSOを構成する場合は、Databricks Redirect URIを追加のエンティティIDとして追加してください。

トランジット VPC のプライベートホストゾーンを設定する

トランジット VPC で次の構成を実行して、Databricks プライベート リンク リダイレクト URI がワークスペース VPC エンドポイントの VPC エンドポイント プライベート IP アドレスにマップされていることを確認します。

  1. 企業DNSで条件付き転送を設定して、accounts.cloud.databricks.comをAWSに転送します。
  2. トランジット VPC で、ドメイン名accounts.cloud.databricks.comを持つプライベート ホストゾーンを作成します。
  3. accounts.cloud.databricks.com を、お使いのアカウントに登録されている任意の一般アクセスVPCエンドポイントのプライベートIPアドレスに解決するAレコードを追加します。
  4. トランジット VPC から Databricks プライベート リンク リダイレクト URI にアクセスして構成をテストします。
注記

現在、リダイレクト URL として accounts-pl-auth.privatelink.cloud.databricks.com(従来のプライベートプレビューオプション)を使用している場合、CBI account-policy は有効になりません。まず、account-policy で統合ログインに現在使用されている一般アクセスエンドポイントを許可リストに追加します。次に、アカウントチームに連絡して、account-policyを有効にしてください。最後に、DatabricksはリダイレクトURLをaccounts.cloud.databricks.comに変更することを推奨します。このプロセスにより、既存のアカウントレベルのアクセスが破損するのを防ぐことができます。

その他のリソース