AWS PrivateLink を使用してプライベート接続を有効にする
この記事では、ユーザーと ワークスペース間、および ワークスペース インフラストラクチャ内のクラシック コンピュート プレーンとコントロール プレーン間のプライベート接続に PrivateLink を使用する方法について説明します。AWSDatabricksDatabricks
プライベート接続の概要
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: 将来の拡張可能性。
バックエンド PrivateLink、フロントエンド PrivateLink、またはその両方で必要な設定を構成します。
追加のVPCサブネットを作成して設定します(任意)。
VPCエンドポイント(バックエンドPrivateLink VPCエンドポイントや他のAWSサービスに対するオプションのVPCエンドポイントなど)については、ネットワークがVPCエンドポイントにルーティングできる限り、どのワークスペースサブネットにも作成できます。
ワークスペース サブネットのルート テーブルとは別に、VPC エンドポイント サブネットに別のルート テーブルをアタッチします。 このルート テーブルには、ローカル VPC のデフォルト ルートが 1 つだけ含まれている必要があります。
追加のセキュリティグループを作成して設定します(推奨ですが任意)。
ワークスペースに必要な標準のセキュリティ グループに加えて、ワークスペース サブネットと別の VPC エンドポイント サブネット (ある場合) の両方への HTTPS/443 および TCP/6666双方向(アウトバウンドとインバウンド) アクセスを許可する別のセキュリティ グループを作成します。 この設定により、 REST APIs (ポート 443) とセキュア クラスター接続 (6666) の両方のアクセスが容易になり、セキュリティ グループの管理が簡素化されます。
ワークスペースがコンプライアンスセキュリティプロファイルを使用している場合は、セキュアなクラスター接続リレー用のFIPSエンドポイントをサポートするために、ポート2443に対する双方向(アウトバウンドおよびインバウンド)アクセスを許可する必要もあります。
トランジット VPC とそのサブネットがユーザー環境からアクセス可能であることを確認します。 AWS Direct Connect または VPN ゲートウェイ接続を終了するか、トランジット VPC からルーティング可能なトランジット VPC を作成します。
フロントエンドとバックエンドの両方のPrivateLinkを有効にしていて、VPCエンドポイントがワークスペースサブネットからネットワークにアクセスできる場合は、必要に応じてフロントエンドワークスペース(Webアプリケーション)VPCエンドポイントをバックエンドワークスペース(REST API)VPCエンドポイントと共有できます。
ソース ネットワークとエンドポイント サブネットの両方に対して HTTPS (ポート 443) の双方向(送信と受信) アクセスを許可するフロントエンド エンドポイントの新しいセキュリティ グループを作成します。
ステップ2: VPCエンドポイントを作成する
バックエンドの PrivateLink では、セキュア クラスター接続リレーとワークスペース用のVPCエンドポイントを作成し、 Databricks REST APIsへのコンピュート プレーン呼び出しを有効にします。 AWS マネジメントコンソールを使用して VPC エンドポイントを管理する方法については、AWS の記事「 AWS マネジメントコンソールで VPC エンドポイントを作成する」を参照してください。 同じ顧客管理VPCを使用する複数のワークスペース間でバックエンドVPCエンドポイントを共有できます。
AWS マネジメントコンソールでバックエンド VPC エンドポイントを作成するには:
AWSマネジメントコンソールの [VPCエンドポイント] セクションに移動します。
右上で、リージョンをワークスペースと同じリージョンに設定します。
[エンドポイントの作成] をクリックします。
ワークスペース VPC エンドポイントの場合、リージョンと単語
workspace
を組み込んだエンドポイント名 (例:databricks-us-west-2-workspace-vpce
) を指定します。[サービス カテゴリ]で、 [その他のエンドポイント サービス]を選択します。
サービス名フィールドにサービス名を貼り付けます。 VPCPrivateLinkVPC エンドポイント サービス の表から、リージョンの エンドポイント サービス ドメインを取得します。
最初に作成する VPC エンドポイントの場合は、ワークスペースのリージョン サービス名をコピーします。
[サービスを確認] をクリックし、ページの緑色のボックスにサービス名が確認されたことが表示されていることを確認します。 「サービス名を検証できませんでした」というエラーが発生した場合は、VPC、サブネット、新しい VPC エンドポイントのリージョンが一致していることを確認してください。
VPCフィールドで、ワークスペース VPC を選択します。
[サブネット]セクションで、Databricks ワークスペース サブネットを 1 つだけ選択します。
[セキュリティ グループ]セクションで、ステップ 1: AWSネットワーク オブジェクトを構成するでバックエンド接続用に作成したセキュリティ グループを選択します。
[ 追加設定] で、[ DNS 名を有効にする ] オプションをオンにします。
[エンドポイントの作成] をクリックします。
セキュアなクラスター接続をリレーするVPCエンドポイントの作成の詳細を表示します。PrivateLink VPCエンドポイント サービスのテーブルを使用して、セキュア クラスター接続リレーのリージョン サービス名を取得します。 Databricks では、エンドポイント名にリージョンと単語
scc
を含めることをお勧めします (例:databricks-us-west-2-scc-vpce
)。
フロントエンド エンドポイントはトランジット VPC から発信され、通常はユーザーの Web アプリケーション アクセスのソースとして機能します。 これは通常、ワークスペースのコンピュート プレーンVPCとは別のVPCであり、クラウド ネットワークに接続される場合があります。 複数の Databricks アカウントがある場合は、これらのアカウント間でフロントエンド VPC エンドポイントを共有できます。 関連する各Databricksアカウントにエンドポイントを登録します。
AWS マネジメントコンソールでフロントエンド 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 エンドポイントを作成した後、それらを に登録してAWSDatabricks VPCエンドポイント登録を確立します。作成後は、VPC エンドポイント登録を更新することはできません。
バックエンド VPC エンドポイントの場合、リージョン フィールドがワークスペースのリージョンと登録する AWS VPC エンドポイントのリージョンの両方と一致していることを確認します。 フロントエンド PrivateLink の場合、リージョン フィールドは、トランジット VPC リージョンと、ワークスペースのフロントエンド接続の AWS VPC エンドポイントのリージョンと一致する必要があります。
バックエンドおよびフロントエンドの VPC エンドポイントを登録するには、 「VPC エンドポイント登録の管理」の手順に従ってください。
ネットワーク構成 (バックエンドVPCエンドポイントにのみ必要) : ネットワーク構成は、顧客管理VPCに関する情報の詳細を示し、2 つのバックエンド PrivateLink 構成フィールドが含まれます。
ネットワーク構成を作成するには、 「カスタム VPC デプロイメント用のネットワーク構成を作成する」を参照してください。 顧客管理 VPC、そのサブネット、およびセキュリティ グループの包括的な要件については、 「顧客管理VPCの構成」を参照してください。 バックエンドプライベート接続セクションで、次のようにバックエンド VPC エンドポイント登録のフィールドを設定します。
最初のフィールドで、セキュア クラスター接続リレーの VPC エンドポイント登録を選択します。
2 番目のフィールドで、VPC ワークスペース (RESTAPIs ) の エンドポイント登録を選択します。
作成後は、ネットワーク構成を更新できません。
プライベートアクセス構成: ワークスペースのプライベートアクセス構成オブジェクトには、AWS PrivateLink 接続の設定が含まれます。 同じ AWS リージョン内の複数のワークスペースに対して、単一のプライベートアクセス設定オブジェクトを使用できます。 プライベートアクセス設定(PAS)オブジェクトを作成するには、「 プライベートアクセス設定の管理」を参照してください。
ステップ4: PrivateLinkオブジェクトを使用してワークスペースを作成または更新する
ワークスペースでは、すでに顧客管理VPCとセキュア クラスター接続を使用している必要があります。
ワークスペースを作成するには、 「ワークスペースを手動で作成する (既存の Databricks アカウント)」を参照してください。 ワークスペース URL、リージョン、 Unity Catalog 、資格情報構成、ストレージ構成などのワークスペース フィールドに関するガイダンスについては、その記事を参照してください。 まだ「 保存 」ボタンはクリックしないでください。
[ 詳細設定 ] をクリックして、追加のフィールドを表示します。
バックエンド PrivateLink の場合は、ネットワーク構成を選択します。 [ Virtual Private クラウド] のメニューで、作成した Databricks ネットワーク構成を選択します。
PrivateLink を使用する場合は、プライベート アクセス設定オブジェクトを選択します。 [Private Link] 見出しの下を確認します。メニューをクリックし、作成したプライベートアクセス設定オブジェクトの名前を選択します。
「 保存」をクリックします。
ワークスペースを作成 (または更新) したら、クラスターを使用または作成できるようになるまで待ちます。 ワークスペースのステータスはステータス
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 リージョン us-east-1
にフロントエンド VPC エンドポイントがあるワークスペースの DNS マッピングの例:
デフォルトでは、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 の条件付き転送を構成します。
VPC エンドポイントのプライベート IP にマッピングするオンプレミスまたは内部 DNS のワークスペース URL の A レコードを作成します。
他の同様の 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 アカウント チームに連絡する必要があります。
フロントエンドの PrivateLink で統合ログインを使用するには、ユーザーはトランジット VPC からアカウントコンソールにアクセスする必要があります。 交通機関の VPC で公共のインターネットへのアクセスが許可されていない場合は、以下の手順に従って、統合ログインをサポートするように ID プロバイダーと交通機関 VPC を設定する必要があります。 トランジット VPC で公共のインターネットへのアクセスが許可されている場合、これは必要ありません。
統合ログインを使用すると、アカウントと Databricks ワークスペースに使用される 1 つの SSO 構成をアカウントで管理できます。 「統合ログインを有効にする」を参照してください。フロントエンド PrivateLink で統合ログインを使用するには、次の構成を行う必要があります。
ステップ 6a: ID プロバイダーで PrivateLink リダイレクト URI を承認する
アカウント管理者として、 アカウント コンソールにログインします。
サイドバーで [設定] をクリックします。
「認証」タブをクリックします。
[認証] の横にある [管理] をクリックします。
[ ID プロバイダーでシングルサインオン] を選択します。
「続行」をクリックします。
[Databricks リダイレクト URL] フィールドの値をコピーします。
Databricks PrivateLink リダイレクト URI を取得するには、
accounts
をaccounts-pl-auth
に置き換えます。ID プロバイダーに移動します。
追加のリダイレクト URL として Databricks PrivateLink リダイレクト URI を追加します。 SAML を使用して SSO を構成する場合は、追加のエンティティ ID として Databricks PrivateLink リダイレクト URI も追加します。
アカウントにプライベート リンク ワークスペースと非プライベート リンク ワークスペースの両方がある場合は、ID プロバイダーのリダイレクト URL から Databricks リダイレクト URL と
account
を削除しないでください。
ステップ 6b: トランジット VPC のプライベート ホストゾーンを設定する
トランジット VPC で次の構成を実行して、Databricks PrivateLink リダイレクト URI がワークスペース VPC エンドポイントの VPC エンドポイント プライベート IP アドレスにマップされるようにします。
トランジット VPC から、
nslookup
Unix コマンドライン ツールを使用して、ワークスペース URL を使用して DNS 解決を取得します。 ステップ 5: ユーザー要求を Web アプリケーション (フロントエンド) にリダイレクトするように内部 DNS を構成する の例を参照してください。プライベート リンク ワークスペースのコントロール プレーン インスタンス URL をコピーします。 コントロール プレーン インスタンスの URL の形式は
<region>.privatelink.cloud.databricks.com
です。トランジット VPC で、ドメイン名
privatelink.cloud.databricks.com
のプライベート ホストゾーンを作成します。コントロールプレーンインスタンスの URL に
accounts-pl-auth.privatelink.cloud.databricks.com
を解決する CNAME レコードを追加します。トランジット VPC から Databricks PrivateLink リダイレクト URI にアクセスして、構成をテストします。
ステップ7:VPC 他の の エンドポイントを追加するAWS
一般的なユースケースでは、クラシック コンピュート プレーン内のクラスターおよびその他のコンピュート リソースが AWS ネイティブ サービスに接続できるように、次の VPC エンドポイントが必要です。
S3 VPC ゲートウェイ エンドポイント: これは、ワークスペースのサブネットにアタッチされているルート テーブルにのみアタッチします。 バックエンド VPC エンドポイントに独自のルート テーブルを持つ推奨される別のサブネットを使用している場合、S3 VPC エンドポイントをその特定のルート テーブルに接続する必要はありません。 S3 ゲートウェイ エンドポイントに関するこの AWS の記事を参照してください。
STS VPC インターフェイス エンドポイント: これをすべてのワークスペース サブネットに作成し、ワークスペース セキュリティ グループにアタッチします。 これをバックエンド VPC エンドポイントのサブネットに作成しないでください。 STS インターフェイス エンドポイントに関するこの AWS セクションと、 インターフェイス エンドポイントに関するこの一般記事を参照してください。
Kinesis VPC インターフェイス エンドポイント: STS VPC インターフェイス エンドポイントと同様に、すべてのワークスペース サブネットに Kinesis VPC インターフェイス エンドポイントを作成し、ワークスペース セキュリティ グループにアタッチします。 詳細については、 インターフェイスエンドポイントに関するこのAWS 記事Kinesis と、 インターフェイスエンドポイントに関するこの一般的な記事を 参照してください。