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 に接続します。
us-west-1
リージョンは PrivateLink をサポートしていません。
ステップ 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
-
Create and configure an extra VPC subnet (optional):
- For your VPC endpoints, including back-end PrivateLink VPC endpoints and also any optional VPC endpoints to other AWS services, you can create them in any of your workspace subnets as long as the network can route to the VPC endpoints.
- Attach a separate route table to your VPC endpoints subnet, distinct from the route table for your workspace subnets. This route table should have only a single default route for the local VPC.
-
Create and configure an extra security group (recommended but optional):
-
In addition to the standard security group required for a workspace, create a separate security group that permits HTTPS/443 and TCP/6666 bidirectional (outbound and inbound) access to both the workspace subnets and the separate VPC endpoints subnet, if you have one. This setup facilitates access for both REST APIs (port 443) and secure cluster connectivity (6666), simplifying security group management.
If your workspace uses the compliance security profile, you must also allow bidirectional (outbound and inbound) access to port 2443 to support FIPS endpoints for the secure cluster connectivity relay.
-
-
Ensure your transit VPC and its subnets are accessible from the user environment. Create a transit VPC that either terminates your AWS Direct Connect or VPN gateway connection or is routable from your transit VPC.
If you enable both front-end and back-end PrivateLink, you can optionally share the front-end workspace (web application) VPC endpoint with the back-end workspace (REST API) VPC endpoint if the VPC endpoint is network accessible from the workspace subnets.
-
Create a new security group for the front-end endpoint that allows HTTPS (port 443) bidirectional (outbound and inbound) access for both the source network and the endpoint subnet.
ステップ 2: VPC エンドポイントを作成する
- Back-end PrivateLink
- Front-end PrivateLink
For back-end PrivateLink, create VPC endpoints for the secure cluster connectivity relay and for the workspace, enabling compute plane calls to Databricks REST APIs. For guidance on managing VPC endpoints with the AWS Management Console, see the AWS article Create VPC endpoints in the AWS Management Console. You can share back-end VPC endpoints across multiple workspaces that use the same customer-managed VPC.
To create back-end VPC endpoints in the AWS Management Console:
-
Go to the VPC endpoints section of the AWS Management Console.
-
In the upper right, set the region to the same region as your workspace.
-
Click Create Endpoint.
-
Name the endpoint, incorporating the region and the word
workspace
, such asdatabricks-us-west-2-workspace-vpce
, for the workspace VPC endpoint. -
Under Service Category, select Other endpoint services.
-
In the service name field, paste in the service name. Get your region’s VPC endpoint service domains from the table in PrivateLink VPC endpoint services.
For your first VPC endpoint that you create, copy the regional service name for the workspace.
-
Click Verify service and ensure the page shows Service name verified in a green box. If you encounter an error stating “Service name could not be verified”, check that the regions of your VPC, subnets, and new VPC endpoint match.
-
In the VPC field, select your workspace VPC.
-
In the Subnets section, select exactly one of your Databricks workspace subnets.
-
In the Security groups section, select the security group you created for back-end connections in Step 1: Configure AWS network objects.
-
Under Additional settings, turn on the Enable DNS name option.
-
Click Create endpoint.
-
Repeat the previous steps to create the secure cluster connectivity relay endpoint. Use the table in PrivateLink VPC endpoint services to get the regional service name for the secure cluster connectivity relay. Databricks recommends that you include the region and the word
scc
in the endpoint name, such asdatabricks-us-west-2-scc-vpce
.
A front-end endpoint originates from your transit VPC, typically serving as the source for user web application access. This is usually a separate VPC from the workspace’s compute plane VPC and may be connected to an on-premises network. If you have multiple Databricks accounts, you can share a front-end VPC endpoint across these accounts. Register the endpoint in each relevant Databricks account.
To create front-end VPC endpoints in the AWS Management Console:
- Go to the VPC endpoints section of the AWS Management Console.
- In the upper right, set the region to the same region as your transit VPC region. This can be different than your workspace region.
- Click Create Endpoint.
- Name the endpoint, including the region and either the word
workspace
orfrontend
, such asdatabricks-us-west-2-workspace-vpce
. - Under Service Category, select Other endpoint services.
- In the service name field, paste in the service name. Use the table in PrivateLink VPC endpoint services to find the regional service names. Copy the one labeled Workspace (including REST API).
- Click Verify service and ensure the page shows Service name verified in a green box. If you encounter an error stating “Service name could not be verified”, check that the regions of your VPC, subnets, and new VPC endpoint are correctly matched.
- In VPC, select your transit VPC.
- In Subnets, select a subnet.
- In the Security groups section, select the security group you created for front-end connections.
- Click Create endpoint.
ステップ 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 エンドポイントを追加する
一般的なユースケースでは、クラシックコンピュートプレーン内のクラスターおよびその他のコンピュートリソースがAWSネイティブサービスに接続できるように、次のVPC エンドポイント が 必要です 。
- S3 VPC ゲートウェイエンドポイント : これは、ワークスペースサブネットにアタッチされているルートテーブルにのみアタッチします。 バックエンド VPC エンドポイント用に独自のルートテーブルを持つ推奨される別のサブネットを使用している場合、S3 VPC エンドポイントをその特定のルートテーブルにアタッチする必要はありません。 S3 ゲートウェイエンドポイントについては、この AWS の記事を参照してください。
- STS VPC インターフェイス エンドポイント : これをすべてのワークスペース サブネットで作成し、ワークスペース セキュリティ グループにアタッチします。 これは、バックエンド VPC エンドポイントのサブネットに作成しないでください。 STS インターフェイスエンドポイントについてはこの AWS セクションを、インターフェイスエンドポイントについてはこの一般的な記事を参照してください。
- Kinesis VPC インターフェイスエンドポイント : すべてのワークスペースサブネットに Kinesis VPC インターフェイスエンドポイントを作成し、STS VPC インターフェイスエンドポイントと同様にワークスペースセキュリティグループにアタッチします。 詳細については、インターフェイス エンドポイントに関するこのAWS記事とKinesisインターフェイス エンドポイントに関する一般的な記事を参照してください。
エンドポイントを一元化するには、次の点を確認してください。
- コンピュート リソース は、各サービスの完全修飾ドメイン名を、対応する VPC エンドポイントのプライベート IP に解決します。
- ルートは、コンピュート リソースが VPC エンドポイントに到達できるようにするために存在します。