AWS PrivateLink を使用してプライベート接続を有効にする
この記事では、 AWS PrivateLink を使用して、ユーザーと Databricks ワークスペース間、および Databricks ワークスペース インフラストラクチャ内の従来のコンピュート プレーンとコントロール プレーン間のプライベート接続を行う方法について説明します。
プライベート接続の概要
AWS PrivateLink は、AWS VPC およびオンプレミスネットワークから AWS サービスへのプライベート接続を可能にし、パブリックインターネットへの露出を回避します。 Databricks ワークスペースでは、次の 2 種類の接続で PrivateLink 接続がサポートされています。
- フロントエンド (ユーザーからワークスペースへ): この接続の種類を使用すると、ユーザーは VPC インターフェイス エンドポイントを介して Databricks Web アプリケーション、REST API、Databricks Connect API にアクセスできます。
- バックエンド (クラシック コンピュート プレーンからコントロール プレーンへ) : クラシックコンピュートプレーンのコンピュート資源は、Databricksクラウドアカウントに存在するコントロールプレーンに存在するDatabricksワークスペースのコアサービスにアクセスします。この接続タイプでは、2 つの異なる VPC インターフェイス エンドポイントを使用して、 REST APIs と セキュア クラスター接続 リレーの 2 つの宛先に接続します。
フロントエンドとバックエンドの両方の PrivateLink 接続を実装することも、いずれか 1 つだけを実装することもでき、必要に応じてワークスペースにプライベート接続を適用して、Databricks がパブリック ネットワーク接続を拒否するようにすることもできます。
PrivateLink 接続を有効にするには、Databricks 構成オブジェクトを作成し、既存の構成オブジェクトを新しいフィールドで更新します。
次の図は、一般的な実装におけるネットワークフローを示しています。
必要条件
- DatabricksアカウントがEnterprise価格プランである必要があります。
- Databricksワークスペースでは、顧客管理VPCを使用する必要があります。顧客管理VPCの設定を参照してください。既存のワークスペースを Databricks管理の VPC から顧客管理VPCに変換することはできません。
- Databricksワークスペースでは、セキュリティで保護されたクラスター接続を使用する必要があります。セキュリティで保護されたクラスター接続を使用していない古いワークスペースにバックエンドの PrivateLink を追加するには、 Databricks アカウント チームにお問い合わせください。
- Databricks ワークスペースを設定し、ワークスペースの新しい VPC エンドポイントを作成するには、必要なすべての AWS アクセス許可が必要です。
- オンプレミスネットワークからワークスペースにアクセスするためのフロントエンド PrivateLink 接続を確立するには、Direct Connect または VPN を使用してオンプレミスネットワークを AWS VPC に接続します。
ステップ 1: AWS ネットワークオブジェクトを設定する
AWSマネジメントコンソールを使用してこれらのオブジェクトを作成したり、ネットワーク用のTerraformプロバイダーなどのツールでプロセスを自動化したりできます。
-
まだ設定していない場合は、ワークスペースの VPC を設定します。 別のワークスペースから VPC を再利用できます。 VPCを作成するには、「顧客管理VPCの設定」を参照してください。PrivateLink のワークスペースを更新する場合は、既に顧客管理VPCを使用していることを確認してください。
-
VPC で DNS ホスト名 と DNS 解決 の両方が有効になっていることを確認します。
- サブネットのネットワークACLに、次のポートで0.0.0.0/0へのTCPアクセスを許可する 双方向 (アウトバウンドおよびインバウンド)ルールがあることを確認します。
- 443:Databricksインフラストラクチャ、クラウドデータソース、ライブラリリポジトリ用。
- 3306:メタストア用。
- 6666: PrivateLink用。
- 2443: コンプライアンスセキュリティプロファイルを使用している場合のみ。
- 8443: Databricks コンピュート プレーンから Databricks コントロール プレーンへの内部コールの場合 API
- 8444: Unity Catalogのログ記録とDatabricksへの系列データストリーミング用。
- 8445〜8451: 将来的な拡張性。
- サブネットのネットワークACLに、次のポートで0.0.0.0/0へのTCPアクセスを許可する 双方向 (アウトバウンドおよびインバウンド)ルールがあることを確認します。
-
バックエンドの PrivateLink、フロントエンドの PrivateLink、またはその両方に必要な設定を構成します。
- Back-end PrivateLink
- Front-end PrivateLink
-
追加のVPCサブネットを作成して設定します(任意)。
- バックエンドの PrivateLink VPC エンドポイントや 、他の AWS サービスへのオプションの VPC エンドポイントを含む VPC エンドポイントについては、ネットワークが VPC エンドポイントにルーティングできる限り、任意のワークスペースサブネットに作成できます。
- VPC エンドポイントサブネットには、ワークスペースサブネットのルートテーブルとは異なる別のルートテーブルをアタッチします。このルートテーブルには、ローカル VPC のデフォルトルートが 1 つだけ必要です。
-
追加のセキュリティグループを作成して設定します(推奨ですが任意)。
-
ワークスペースに必要な標準セキュリティグループに加えて、ワークスペースサブネットと個別の VPC エンドポイントサブネット (ある場合) の両方への HTTPS/443 および TCP/6666 双方向 (アウトバウンドおよびインバウンド) アクセスを許可する別のセキュリティグループを作成します。この設定により、 REST APIs (ポート 443) とセキュアなクラスタリング接続 (6666) の両方へのアクセスが容易になり、セキュリティ グループ管理が簡素化されます。
ワークスペースで コンプライアンス セキュリティ プロファイルを使用している場合は、ポート 2443 への 双方向 (送信および受信) アクセスも許可して、セキュリティで保護されたクラスタリング接続リレーの FIPS エンドポイントをサポートする必要があります。
-
-
トランジット VPC とそのサブネットがユーザー環境からアクセスできることを確認します。AWS Direct Connect または VPN ゲートウェイ接続を終了するか、トランジット VPC からルーティング可能なトランジット VPC を作成します。
フロントエンドとバックエンドの両方のPrivateLinkを有効にしていて、VPCエンドポイントがワークスペースサブネットからネットワークにアクセスできる場合は、必要に応じてフロントエンドワークスペース(Webアプリケーション)VPCエンドポイントをバックエンドワークスペース(REST API)VPCエンドポイントと共有できます。
-
フロントエンド エンドポイントの新しいセキュリティ グループを作成し、ソース ネットワークとエンドポイント サブネットの両方に対して HTTPS (ポート 443) 双方向 (送信および受信) アクセスを許可します。
ステップ 2: VPC エンドポイントを作成する
- Back-end PrivateLink
- Front-end PrivateLink
バックエンドの PrivateLink では、セキュリティで保護されたクラスタリング接続リレーとワークスペースの VPC エンドポイントを作成し、 Databricks REST APIsへのコンピュート プレーン呼び出しを有効にします。 AWS マネジメントコンソール を使用した VPC エンドポイントの管理に関するガイダンスについては、AWS の記事「AWS マネジメントコンソールで VPC エンドポイントを作成する」を参照してください。バックエンド VPC エンドポイントは、同じ顧客管理VPCを使用する複数のワークスペース間で共有できます。
AWS Management Console でバックエンド VPC エンドポイントを作成するには:
-
AWSマネジメントコンソールの [VPCエンドポイント] セクションに移動します。
-
右上で、領域をワークスペースと同じ領域に設定します。
-
[ エンドポイントの作成 ] をクリックします。
-
リージョンと
workspace
という単語を組み込んで、ワークスペース VPC エンドポイントにdatabricks-us-west-2-workspace-vpce
などのエンドポイントに名前を付けます。 -
[サービス カテゴリ] で、 [ その他のエンドポイント サービス ] を選択します。
-
[サービス名] フィールドに、サービス名を貼り付けます。VPCリージョンの PrivateLinkVPC エンドポイント サービスの 表から、リージョンの エンドポイント サービス ドメインを取得します。
最初に作成する VPC エンドポイントで、ワークスペースのリージョンサービス名をコピーします。
-
[ Verify Service ] をクリックし、ページの緑色のボックスに 「Service name Verified (サービス名確認 済み)」と表示されていることを確認します。 「サービス名を確認できませんでした」というエラーが発生した場合は、VPC、サブネット、および新しい VPC エンドポイントのリージョンが一致していることを確認してください。
-
[ VPC ] フィールドで、ワークスペース VPC を選択します。
-
[サブネット] セクションで、Databricks ワークスペース サブネットの 1 つだけを選択します。
-
[ セキュリティ グループ ] セクションで、「 ステップ 1: AWS ネットワーク オブジェクトを構成する」でバックエンド接続用に作成したセキュリティ グループを選択します。
-
[追加設定 ] で、[ DNS 名を有効にする ] オプションをオンにします。
-
[ エンドポイントの作成 ] をクリックします。
-
前の手順を繰り返して、セキュアなクラスタリング接続リレー エンドポイントを作成します。 PrivateLink VPC エンドポイント サービスのテーブルを使用して、セキュリティで保護されたクラスタリング接続リレーのリージョン サービス名を取得します。Databricks では、エンドポイント名にリージョンと
scc
という単語を含めることをお勧めします (例:databricks-us-west-2-scc-vpce
)。
フロントエンドエンドポイントはトランジット VPC から発生し、通常はユーザーのウェブアプリケーションアクセスのソースとして機能します。これは通常、ワークスペースのコンピュート プレーン VPCとは別のVPCであり、オンプレミス ネットワークに接続されている場合があります。複数の Databricks アカウントがある場合は、これらのアカウント間でフロントエンド VPC エンドポイントを共有できます。関連する各 Databricks アカウントのエンドポイントを登録します。
AWS Management Console でフロントエンド VPC エンドポイントを作成するには:
- AWSマネジメントコンソールの [VPCエンドポイント] セクションに移動します。
- 右上で、リージョンをトランジット VPC リージョンと同じリージョンに設定します。これは、ワークスペースのリージョンとは異なる場合があります。
- [ エンドポイントの作成 ] をクリックします。
- エンドポイントに、地域と
workspace
またはfrontend
という単語を含む (databricks-us-west-2-workspace-vpce
など) という名前を付けます。 - [サービス カテゴリ] で、 [ その他のエンドポイント サービス ] を選択します。
- [サービス名] フィールドに、サービス名を貼り付けます。PrivateLink VPCエンドポイント サービスの表を使用して、リージョンのサービス名を検索します。 「ワークスペース (REST API を含む)」 というラベルの付いたものをコピーします。
- [サービスを確認] を クリックし、ページの緑色のボックスに サービス名が確認されたことが表示されて いることを確認します。 「サービス名が確認できませんでした」というエラーが表示された場合は、VPC、サブネット、および新しいVPCエンドポイントのリージョンが正しく一致しているかどうかを確認してください。
- [ VPC ] メニューで、トランジットVPCをクリックします。
- [ サブネット ] セクションで、サブネットを選択します。
- [ セキュリティ グループ ] セクションで、フロントエンド接続用に作成したセキュリティ グループを選択します。
- [ エンドポイントの作成 ] をクリックします。
ステップ 3: PrivateLink オブジェクトを登録する
以下は、アカウントコンソールを使用します。 アカウント API または Databricks Terraform プロバイダーを使用することもできます。
アカウントコンソールでは、いくつかのタイプのオブジェクトがPrivateLink設定に関連しています。
- VPC エンドポイント登録:VPC AWS管理コンソールで エンドポイントを作成した後、 を使用して登録するDatabricks VPCエンドポイント登録を確立します。作成後は、VPC エンドポイントの登録を更新できません。
バックエンド VPC エンドポイントの場合は、リージョン フィールドがワークスペースのリージョンと、登録する AWS VPC エンドポイントのリージョンの両方と一致していることを確認します。 フロントエンド PrivateLink の場合、region フィールドは、トランジット VPC リージョンと、ワークスペースのフロントエンド接続の AWS VPC エンドポイントのリージョンと一致する必要があります。
バックエンドとフロントエンドの VPC エンドポイントを登録するには、VPC エンドポイントの登録を管理するの手順に従います。
-
ネットワーク構成 (バックエンド VPC エンドポイントにのみ必要): ネットワーク構成は、顧客管理VPC に関する詳細情報であり、2 つのバックエンド PrivateLink 構成フィールドが含まれています。
ネットワーク設定を作成するには、「 カスタム VPC デプロイのネットワーク設定を作成する」を参照してください。 顧客管理VPC、そのサブネット、およびセキュリティグループの包括的な要件については、顧客管理VPCの設定を参照してください。 [ バックエンドプライベート接続 ] セクションで、次のようにフィールドをバックエンド VPC エンドポイント登録に設定します。
-
最初のフィールドで、VPC セキュア クラスター接続リレー の エンドポイント登録を選択します。
-
2 番目のフィールドで、VPC エンドポイント登録に ワークスペース(REST API) を選択します。
作成後は、ネットワーク設定を更新できません。
- プライベートアクセス設定 : ワークスペースのプライベートアクセス設定オブジェクトには、AWS PrivateLink 接続の設定が含まれます。 同じ AWS リージョン内の複数のワークスペースに対して、1 つのプライベートアクセス設定オブジェクトを使用できます。 プライベートアクセス設定 (PAS) オブジェクトを作成するには、 プライベートアクセス設定の管理を参照してください。
手順 4: PrivateLink オブジェクトを使用してワークスペースを作成または更新する
ワークスペースは、既に顧客管理VPC とセキュリティで保護されたクラスター接続を使用している必要があります。
- ワークスペースを作成するには、「 ワークスペースを手動で作成する (既存の Databricks アカウント)」 を参照してください。 ワークスペース URL、リージョン、 Unity Catalog、資格情報の構成、ストレージの構成などのワークスペース フィールドのガイダンスについては、その記事を参照してください。 「 保存 」ボタンはまだクリックしないでください。
- 詳細設定 をクリックして、追加のフィールドを表示します。
- バックエンドの PrivateLink の場合は、ネットワーク設定を選択します。 Virtual Private Cloud のメニューで、作成した Databricks ネットワーク構成を選択します。
- PrivateLinkを使用する場合は、プライベートアクセス設定オブジェクトを選択してください。 プライベートリンク の見出しの下を見てください。 メニューをクリックして、作成したプライベートアクセス設定オブジェクトの名前を選択します。
- [ 保存 ]をクリックします。
- ワークスペースを作成 (または更新) した後は、クラスターを使用または作成できるようになるまで待ちます。 ワークスペースのステータスはステータス
RUNNING
のままで、VPC の変更はすぐに行われます。 ただし、さらに 20 分間はクラスターを使用または作成することはできません。 この時間間隔が経過する前にクラスターを作成または使用すると、クラスターが正常に起動しない、失敗する、またはその他の予期しない動作が発生する可能性があります。
ステップ 5: ユーザー要求を Web アプリケーション (フロントエンド) にリダイレクトするように内部 DNS を構成する
ユーザー要求をフロントエンドの PrivateLink 接続に転送するには、ユーザーが接続するネットワークのプライベート DNS を変更します。 ワークスペースを作成または更新して PrivateLink を含めたら、ワークスペースの URL が内部 DNS またはカスタム DNS のワークスペース VPC エンドポイントのプライベート IP にマップされていることを確認します。
ウェブアプリケーションワークスペースの URL をフロントエンド VPC エンドポイントにマッピングするように内部 DNS を設定します。
nslookup
Unix コマンドライン ツールを使用して、ワークスペースのデプロイ ドメイン名を使用して DNS 解決をテストします。たとえば、
nslookup my-workspace-name-here.cloud.databricks.com
応答例:
Non-authoritative answer:
my-workspace-name-here.cloud.databricks.com canonical name = oregon.cloud.databricks.com.
oregon.cloud.databricks.com canonical name = a89b3c627d423471389d6ada5c3311b4-f09b129745548506.elb.us-west-2.amazonaws.com.
Name: a89b3c627d423471389d6ada5c3311b4-f09b129745548506.elb.us-west-2.amazonaws.com
Address: 44.234.192.47
AWS リージョン のフロントエンド VPC エンドポイントを持つワークスペースの DNS マッピングの例: ( us-east-1
)
-
デフォルトでは、DNS マッピングは次のとおりです。
myworkspace.cloud.databricks.com
はnvirginia.privatelink.cloud.databricks.com
にマップします。この場合、nvirginia
は、そのリージョンのコントロール プレーン インスタンスの短い名前です。nvirginia.privatelink.cloud.databricks.com
はnvirginia.cloud.databricks.com
にマップします。nvirginia.cloud.databricks.com
は AWS パブリック IP にマップされます。
-
DNS が変更されると、トランジット VPC (フロントエンド VPC エンドポイントがある場所) から、DNS マッピングは次のようになります。
myworkspace.cloud.databricks.com
はnvirginia.privatelink.cloud.databricks.com
にマップします。nvirginia.privatelink.cloud.databricks.com
はフロントエンド接続のために VPC エンドポイントのプライベート IP にマッピングされます。
ワークスペース URL をオンプレミスネットワークから VPC エンドポイントのプライベート IP にマッピングするには、次のいずれかを行う必要があります。
- AmazonDNS を使用するようにワークスペース URL の条件付き転送を構成します。
- オンプレミスまたは内部 DNS のワークスペース URL の A レコードを作成し、VPC エンドポイントのプライベート IP にマッピングします。
- 他の同様の PrivateLink 対応サービスへのアクセスを有効にする場合と同様の手順を実行します。
内部 DNS に A レコードを作成することで、ワークスペース URL をフロントエンド (ワークスペース) VPC エンドポイントのプライベート IP に直接マッピングすることを選択できます。これにより、DNS マッピングは次のように表示されます。
myworkspace.cloud.databricks.com
はVPC エンドポイントのプライベート IP にマッピングされます
内部 DNS 構成に変更を加えたら、トランジット VPC から Databricks ワークスペース Web アプリケーションと REST API にアクセスして構成をテストします。 設定をテストするために、必要に応じてトランジット VPC に VPC エンドポイントを作成します。
プライベート DNS ドメインで DNS レコードを設定していない場合は、エラーが表示されることがあります。 これを解決するには、DNSサーバー上に次のレコードを作成し、ワークスペース、 Spark インターフェース、およびWebターミナルサービスへのアクセスを有効にします。
レコードの種類 | レコード名 | 値 |
---|---|---|
A | <deployment-name>.cloud.databricks.com | PrivateLinkインターフェースIP |
CNAME | dbc-dp-<workspace-id>.cloud.databricks.com | <deployment-name>.cloud.databricks.com |
これがネットワークアーキテクチャにどのように適用されるかについて質問がある場合は、Databricks アカウントチームにお問い合わせください。
ステップ 6: (オプション) 統合ログインを使用してフロントエンド PrivateLink を構成する
プレビュー
フロントエンドの PrivateLink を使用した統合ログインは、プライベート プレビュー段階です。このプレビューへのアクセスを要求するには、Databricks アカウント チームに連絡する必要があります。統合ログインの詳細については、「 統合ログインを有効にする」を参照してください。
ユーザーが公共のインターネットにアクセスできる場合、この手順は必要ありません。
統合ログインが有効になっているワークスペースにユーザーがログインすると、認証フローの accounts.cloud.databricks.com
にリダイレクトされます。フロントエンドの PrivateLink が有効になっていて、ユーザーがパブリック インターネットにアクセスできないワークスペースで統合ログインを使用するには、次の手順に従って ID プロバイダーと内部 DNS を構成する必要があります。
手順 6a: ID プロバイダーで PrivateLink リダイレクト URI を承認する
-
アカウント管理者として、アカウントコンソールにログインします。
-
サイドバーで、「 設定 」をクリックします。
-
「認証 」タブをクリックします。
-
「認証」 の横にある 管理 をクリックします。
-
[ ID プロバイダーによるシングル サインオン ] を選択します。
-
「 続行 」をクリックします。
-
[Databricks リダイレクト URL ] フィールドの値をコピーします。
-
accounts
をaccounts-pl-auth
に置き換えて、Databricks PrivateLink リダイレクト URI を取得します。 -
ID プロバイダーに移動します。
-
Databricks PrivateLink リダイレクト URI を追加のリダイレクト URL として追加します。 SAML を使用して SSO を構成する場合は、Databricks PrivateLink リダイレクト URI も追加のエンティティ ID として追加します。
アカウントにプライベート リンク ワークスペースと非プライベート リンク ワークスペースの両方がある場合は、ID プロバイダーのリダイレクト URL から Databricks リダイレクト URL と
account
を削除しないでください。
ステップ 6b: トランジット VPC のプライベートホストゾーンを設定する
トランジット VPC で次の構成を実行して、Databricks PrivateLink リダイレクト URI がワークスペース VPC エンドポイントの VPC エンドポイントのプライベート IP アドレスにマップされていることを確認します。
- トランジット VPC から、
nslookup
Unix コマンドラインツールを使用して、ワークスペース URL を使用して DNS 解決を取得します。 「ステップ 5: ユーザー要求を Web アプリケーション (フロントエンド) にリダイレクトするように内部 DNS を構成する」の例を参照してください。 - Private Link ワークスペースのコントロール プレーン インスタンス URL をコピーします。 コントロールプレーンインスタンスのURLは、
<region>.privatelink.cloud.databricks.com
形式です。 - トランジット VPC で、ドメイン名
privatelink.cloud.databricks.com
のプライベートホストゾーンを作成します。 accounts-pl-auth.privatelink.cloud.databricks.com
を解決する CNAME レコードをコントロールプレーンインスタンス URL に追加します。- トランジット VPC から Databricks PrivateLink リダイレクト URI にアクセスして、構成をテストします。
ステップ 7: 他の AWS サービスの VPC エンドポイントを追加する
一般的なユースケースでは、次の VPC エンドポイントを作成する ことをお勧めします 。これにより、クラシック コンピュート プレーン内のクラスタリングやその他のコンピュート リソースAWSAWS PrivateLink 経由でネイティブ サービスに直接接続できます。これらの VPC エンドポイントは、バックエンド VPC エンドポイントと同じサブネットに作成します。
これらのVPC エンドポイントは、クラスタリングがパブリック エンドポイントにネットワークアクセスできないユースケース に必要です AWS 。
- S3 VPC ゲートウェイエンドポイント : これは、ワークスペースサブネットにアタッチされているルートテーブルにのみアタッチします。 バックエンド VPC エンドポイント用に独自のルートテーブルを持つ推奨される別のサブネットを使用している場合、S3 VPC エンドポイントをその特定のルートテーブルにアタッチする必要はありません。 S3 ゲートウェイエンドポイントについては、この AWS の記事を参照してください。
- STS VPC インターフェイス エンドポイント : これをすべてのワークスペース サブネットで作成し、ワークスペース セキュリティ グループにアタッチします。STS インターフェイスエンドポイントについてはこの AWS セクションを、インターフェイスエンドポイントについてはこの一般的な記事を参照してください。
- Kinesis VPC インターフェイスエンドポイント : すべてのワークスペースサブネットに Kinesis VPC インターフェイスエンドポイントを作成し、STS VPC インターフェイスエンドポイントと同様にワークスペースセキュリティグループにアタッチします。 詳細については、インターフェイス エンドポイントに関するこのAWS記事とKinesisインターフェイス エンドポイントに関する一般的な記事を参照してください。
エンドポイントを一元化するには、次の点を確認してください。
- コンピュート リソース は、各サービスの完全修飾ドメイン名を、対応する VPC エンドポイントのプライベート IP に解決します。
- ルートは、コンピュート リソースが VPC エンドポイントに到達できるようにするために存在します。