Databricks Git フォルダーのプライベート Git 接続を設定する
プライベート Git サーバー (GitHub Enterprise Server、Bitbucket Server、GitLab セルフマネージドなど) をホストしている場合、または Git サーバーがファイアウォールの背後にある場合は、Git サーバー プロキシを使用して、Databricks Git フォルダーをプライベート リポジトリに接続できます。プロキシは、 Databricksスペースからコンピュート リソースを介して Git コマンドをプライベートGitサーバーにGit 。
Gitサーバープロキシについて
Git フォルダー用の Databricks Git サーバー プロキシを使用すると、Databricks ワークスペースからインターネット上でアクセスできないプライベート Git サーバーに Git コマンドをプロキシできます。
Databricks Git フォルダーは、接続された Git リポジトリをフォルダーとして表します。これらのフォルダーの内容は、接続された Git リポジトリと同期することによってバージョン管理されます。デフォルトでは、Git フォルダーはインターネット上でアクセス可能なリポジトリとのみ同期できます。プライベート Git サーバーをホストしている場合、または Git サーバーがファイアウォールの背後にある場合は、Git フォルダーで Git サーバー プロキシを使用する必要があります。GitサーバーはDatabricksコンピュート プレーンからアクセスできる必要があります。
Gitサーバープロキシの仕組み
DatabricksのGitサーバー プロキシGitフォルダーは、 Databricksコントロール プレーンからワークスペース のコンピュート プレーンで実行されているプロキシ クラスター にGitコマンドをプロキシします。 プロキシ クラスターは、Databricks コントロール プレーンから Git コマンドを受信して Git サーバーに転送するプロキシ サービスを実行するように構成されています。プロキシは、Databricks コントロール プレーンのセキュリティ アーキテクチャには影響しません。
以下に、システム全体のアーキテクチャを示します。

Databricks には、Git サーバー インスタンスを Databricks Git フォルダーのコマンドをプロキシするように構成するための有効化ノートブックが用意されています。GitHub で有効化ノートブックを入手します。Databricks Git サーバー プロキシは、構成ノートブックに含まれる Databricks Runtime バージョンで動作するように設計されています。プロキシ クラスターの Databricks Runtime バージョンを更新しないでください。
Gitサーバープロキシを設定する
Databricks Git フォルダーのプライベート Git 接続を有効にするには、Git サーバー インスタンスを準備し、有効化ノートブックを実行してプロキシを作成し、構成を検証します。
Git サーバー プロキシを設定するには:
- 静的 IP アドレスと HTTPS トランスポートを使用して Git サーバー インスタンスを準備します。
- 有効化ノートブックを実行してプロキシ クラスターを作成します。
- リポジトリを複製して構成を検証します。
- ユーザーの Git 資格情報を設定します。
前提条件
プロキシを有効にする前に、次の点を確認してください。
-
ワークスペースで Databricks Git フォルダー機能が有効になっています。「Databricks Git フォルダーを有効または無効にする」を参照してください。
-
Gitサーバー インスタンスは、 Databricksワークスペースのコンピュート プレーン仮想プライベート クラウド ( VPC ) からアクセスでき、HTTPS と個人アクセス VPN (PAT) の両方が有効になっています。
Databricks の Git サーバープロキシは、VPC でサポートされているすべてのリージョンで機能します。
ステップ 1: Git サーバーインスタンスを準備する
コンピュート リソースを作成してこのタスクを完了するには、アクセス権を持つワークスペース管理者である必要があります。
プロキシ クラスターからの接続を受け入れ、HTTPS トランスポートを有効にするように Git サーバーを構成します。
通常、企業の Git サーバーには、アクセスが許可される IP アドレスの許可リストがあります。プロキシ クラスター ドライバー ノードが Git サーバーにアクセスできるようにするには、プロキシ クラスターから発信されるトラフィックに静的送信 IP アドレスを関連付け、それを Git サーバーの許可リストに追加します。
- サブネットを介して NAT ゲートウェイを構成して、プロキシ クラスターから発信されるトラフィックに静的送信 IP アドレスを関連付けます。
- 前の手順の IP アドレスを Git サーバーの許可リストに追加します。
次に、HTTPS トランスポートを許可するように Git サーバー インスタンスを構成します。
- GitHub Enterprise : GitHub Enterprise ヘルプの「どのリモート URL を使用すればよいですか? 」を参照してください。
- Bitbucket サーバー : Bitbucket サーバー管理ページで、 [サーバー設定] をクリックし、 [HTTP(S) 有効] を選択します。
ステップ 2: イネーブルメントノートブックを実行する
プロキシを有効にするには:
-
Databricksワークスペースに、アクセス権を持つワークスペース管理者としてログインし、クラスターを作成します。
-
このノートブックをインポートします。このノートブックは、Git プロキシを実行するためにクラウド プロバイダーから利用できる最小のインスタンスの種類を選択します。
ノートブック: Git フォルダー内のプライベート Git サーバー接続のために、Databricks Git フォルダーの Git サーバー プロキシを有効にします。
-
「 実行 All 」をクリックしてノートブックを実行し、次のタスクを実行します。
- 自動終了しない「 Databricks Git Proxy」という名前の単一ノード コンピュート リソースを作成します。 このプロキシ サービスは、Git コマンドを処理して、Databricks ワークスペースからプライベート Git サーバーに転送します。
- Databricks Gitフォルダー内のGit要求がコンピュート インスタンスを介してプロキシされるかどうかを制御する機能フラグを有効にします。
ベスト プラクティスとして、 Gitプロキシ コンピュート リソースを定期的に実行するジョブを作成します。 これにより、ユーザーは Git プロキシ サービスを使用できるようになります。
長時間実行されるコンピュート リソースを追加で実行すると、追加のDatabricksユニット (DBU) が発生します。 コストを最小限に抑えるために、ノートブックは、安価なノード タイプの単一ノード コンピュート リソースを使用するようにプロキシを構成します。 ニーズに合わせてコンピュート オプションを変更します。 価格情報については、 Databricks の価格計算ツールを参照してください。
ステップ 3: Git サーバーの構成を検証する
Git サーバーの構成を検証するには、プロキシ クラスターを介してプライベート Git サーバーでホストされているリポジトリのクローンを作成します。クローン作成が成功すると、ワークスペースで Git サーバー プロキシが動作していることが確認されます。
ステップ 4: プロキシ対応 Git リポジトリを作成する
ユーザーがGit資格情報を構成した後、リポジトリを作成または同期するためにそれ以上のステップは必要ありません。 資格情報を構成し、プログラムでリポジトリにアクセスするには、 Git資格情報を構成し、リモート リポジトリをDatabricksに接続する」を参照してください。
グローバルのCan Attach To削除する
Git サーバー プロキシでは、どのユーザーにもCAN ATTACH TO権限は必要ありません。ユーザーがプロキシ クラスター上で任意のワークロードを実行できないようにするには、プロキシ サーバー上のクラスター アクセス制御リスト (ACL) 権限を制限します。
-
サイドバーから 「コンピュート」 をクリックし、
実行しているGitサーバー プロキシのコンピュート エントリの横にある kebab メニュー。
-
[権限の編集] をクリックします。
-
ダイアログから、 すべてのユーザー の 「添付可能」 エントリを削除します。
トラブルシューティング
このセクションでは、一般的な問題とその診断方法について説明します。
一般的な問題のチェックリスト
エラーの診断を始める前に、次の点を確認してください。
- プロキシ クラスターは、このGit プロキシ サーバー デバッグ ノートブックを使用して実行されています。
- あなたはワークスペース管理者です。
デバッグ ノートブックの残りの部分を実行し、結果をキャプチャします。問題を解決できない場合、または失敗が報告されていない場合は、Databricks サポートが結果を確認できます。要求された場合、デバッグ ノートブックを DBC アーカイブとしてエクスポートして送信します。
Git プロキシの設定を変更する
Git プロキシ サービスがデフォルト構成で動作しない場合は、ネットワーク インフラストラクチャをサポートするように環境変数を設定します。
次の環境変数を使用して、Git プロキシ サービスの構成を更新します。
環境変数 | フォーマット | 説明 |
|---|---|---|
|
| プライベート Git サーバーに自己署名証明書を使用している場合は、これを |
| ファイルパス (文字列) | これを、SSL 検証に使用される CA 証明書ファイルへのパスに設定します。 例: |
|
| これを、HTTP トラフィック用のネットワークのファイアウォール プロキシの HTTPS URL に設定します。 |
| ポート番号 (整数) | これを Git サーバーの HTTP ポートに割り当てられたポート番号に設定します。 |
これらの環境変数を設定するには:
- Databricksの [コンピュート ] タブ に移動します。
- Gitプロキシ サービスのコンピュート構成を選択します。
- 構成 ペインの下部で、 [詳細設定] を展開し、 [Spark] タブを選択します。
- 環境変数フィールドに 環境変数 を追加します。
プロキシ クラスターのログを検査する
プロキシ クラスター上の /databricks/git-proxy/git-proxy.log にあるファイルには、デバッグ目的に役立つログが含まれています。
ログファイルはData-plane proxy server binding to ('', 8000)…で始まる必要があります。そうでない場合、プロキシ サーバーは正常に起動していません。クラスターを再起動するか、クラスターを削除して有効化ノートブックを再度実行します。
ログ ファイルがこの行で始まる場合は、Databricks Git フォルダー内の Git 操作によって開始された各 Git 要求について、それに続くログ ステートメントを確認します。
例えば:
do_GET: https://server-address/path/to/repo/info/refs?service=git-upload-pack 10.139.0.25 - - [09/Jun/2021 06:53:02] /
"GET /server-address/path/to/repo/info/refs?service=git-upload-pack HTTP/1.1" 200`
このファイルに書き込まれたエラーログは、ユーザーや Databricks サポートのデバッグに役立ちます。
SSL証明書エラー
次のエラーが表示される場合があります。
https://git.consult-prodigy.com/Prodigy/databricks_test: Secure connection to https://git.consult-prodigy.com/Prodigy/databricks_test could not be established because of SSL problems
これは多くの場合、特別な SSL 証明書を必要とするリポジトリを使用していることを意味します。プロキシ クラスター上の/databricks/git-proxy/git-proxy.logファイルを確認してください。証明書の検証に失敗した場合は、証明機関をシステム証明書チェーンに追加します。
- ブラウザまたは別の方法を使用してルート証明書を抽出し、Databricks ファイル システムにアップロードします。
- Git フォルダーの Git プロキシ クラスターを編集して、
GIT_PROXY_CA_CERT_PATH環境変数がルート証明書ファイルを指すように設定します。環境変数を参照してください。
これらのステップを完了したら、クラスターを再起動します。
よくある質問
以下は、Git サーバー プロキシの構成と使用に関するよくある質問です。
Git プロキシが実行されているかどうかを確認するにはどうすればよいですか?
Git プロキシ デバッグ ノートブックをインポートして実行します。結果には、Git プロキシ サービスに問題があるかどうかが表示されます。
ワークスペースはプロキシ クラスターを共有できますか?
各 Databricks ワークスペースには独自のプロキシ クラスターが必要です。プロキシ クラスターを複数のワークスペースで共有することはできません。また、各ワークスペースが持つことができるGitプロキシ サーバー クラスターは 1 つだけです。
一部の Git トラフィックのみをプロキシ経由でルーティングできますか?
すべての Databricks Git フォルダー関連のトラフィックは、パブリック Git リポジトリの場合でも、プロキシ クラスターを経由してルーティングされます。Databricks ワークスペースでは、プロキシされたリポジトリとプロキシされていないリポジトリが区別されません。
どの Git プロバイダーがサポートされていますか?
Databricks Git フォルダーは、GitHub Enterprise、Bitbucket Server、Azure DevOps Server、および GitLab のセルフマネージドをサポートします。他のエンタープライズ Git サーバー プロバイダーも、一般的な Git 仕様に準拠していれば動作するはずです。
GNU Privacy Guard (GPG) コミット署名はサポートされていますか?
いいえ。
SSH トランスポートはサポートされていますか?
いいえ。 HTTPS のみがサポートされています。
デフォルト以外の HTTPS ポートを使用できますか?
有効化ノートブックでは、Git サーバーがデフォルトの HTTPS ポート 443 を使用することを前提としています。別のポートを使用するには、環境変数GIT_PROXY_CUSTOM_HTTP_PORTを設定します。
ユーザーはプロキシの Git URL を変更する必要がありますか?
いいえ。ユーザーはhttps://git.company.com/org/repo-name.gitなどの通常の Git リポジトリ URL を入力します。Databricks Git フォルダーのすべての Git トラフィックは、プロキシを透過的に経由してルーティングされます。
プロキシでは認証はどのように機能しますか?
はい、プロキシはユーザーの Git 資格情報を使用して Git サーバーに認証します。アクセスはその資格情報で指定された権限によって制限されます。