次の方法で共有


Azure Databricks Git フォルダーのプライベート Git 接続を設定する

プライベート Git サーバー (GitHub Enterprise Server、Bitbucket Server、GitLab セルフマネージドなど) をホストしている場合、または Git サーバーがファイアウォールの内側にある場合は、Git サーバー プロキシを使用して Databricks Git フォルダーをプライベート リポジトリに接続できます。 プロキシは、Azure Databricks ワークスペースからコンピューティング リソースを介してプライベート Git サーバーに Git コマンドをルーティングします。

Git サーバー プロキシについて

Git フォルダー用の Databricks Git サーバー プロキシを使用すると、Azure Databricks ワークスペースからインターネット上でアクセスできないプライベート Git サーバーに Git コマンドをプロキシできます。

Databricks Git フォルダーは、 接続されている Git リポジトリをフォルダーとして表します。 これらのフォルダーの内容は、接続されている Git リポジトリと同期することでバージョン管理されます。 既定では、Git フォルダーはインターネット上でアクセスできるリポジトリとのみ同期できます。 プライベート Git サーバーをホストする場合、または Git サーバーがファイアウォールの内側にある場合は、Git フォルダーで Git サーバー プロキシを使用する必要があります。 Git サーバーには、Azure Databricks コンピューティング プレーンからアクセスできる必要があります。

Git サーバー プロキシのしくみ

Databricks Git フォルダーの Git サーバー プロキシは、Databricks コントロール プレーンから、ワークスペースのコンピューティング プレーンで実行されている プロキシ クラスター に Git コマンドをプロキシします。 プロキシ クラスターは、Databricks コントロール プレーンから Git コマンドを受信し、Git サーバーに転送するプロキシ サービスを実行するように構成されています。 プロキシは、Databricks コントロール プレーンのセキュリティ アーキテクチャには影響しません。

システム アーキテクチャ全体を次に示します。

お客様のコンピューティング プレーンから実行するように Databricks Git フォルダーの Git サーバー プロキシを構成する方法を示す図

重要

Databricks には、Databricks Git フォルダーのコマンドをプロキシするように Git サーバー インスタンスを構成するための 有効化ノートブック が用意されています。 GitHub で有効化ノートブックを取得してください。 Databricks Git サーバー プロキシは、構成ノートブックに含まれる Databricks Runtime バージョンを使用するように設計されています。 プロキシ クラスターの Databricks Runtime バージョンを更新しないでください。

Git サーバー プロキシを設定する

Databricks Git フォルダーのプライベート Git 接続を有効にするには、Git サーバー インスタンスを準備し、有効化ノートブックを実行してプロキシを作成し、構成を検証します。

Git サーバー プロキシを設定するには:

  1. 静的 IP アドレスと HTTPS トランスポートを使用して Git サーバー インスタンスを準備します。
  2. 有効化ノートブックを実行してプロキシ クラスターを作成します。
  3. リポジトリを複製して構成を検証します。
  4. ユーザーの Git 資格情報を構成します。

[前提条件]

プロキシを有効にする前に、次のことを確認します。

  • Git サーバー インスタンスには、Azure Databricks ワークスペースのコンピューティング プレーン Azure 仮想ネットワーク (VNet) からアクセスでき、HTTPS と個人用アクセス トークン (AT) の両方が有効になっています。

メモ

Databricks の Git サーバー プロキシは、VNet でサポートされているすべてのリージョンで機能します。

手順 1: Git サーバー インスタンスを準備する

重要

コンピューティング リソースを作成してこのタスクを完了するには、アクセス権を持つワークスペース管理者である必要があります。

プロキシ クラスターからの接続を受け入れ、HTTPS トランスポートを有効にするように Git サーバーを構成します。

エンタープライズ Git サーバーには、通常、アクセスが許可される IP アドレスの許可リストがあります。 プロキシ クラスター ドライバー ノードが Git サーバーにアクセスできるようにするには、プロキシ クラスターから送信されるトラフィックの静的送信 IP アドレスを関連付け、Git サーバーの許可リストに追加します。

  1. Azure Firewall またはエグレス アプライアンスを使用して、プロキシ クラスターから送信されるトラフィックの静的送信 IP アドレスを関連付けます。
  2. 前の手順の IP アドレスを Git サーバーの許可リストに追加します。

次に、HTTPS トランスポートを許可するように Git サーバー インスタンスを構成します。

  • GitHub Enterprise: GitHub Enterprise ヘルプで 使用する必要があるリモート URL を 確認します。
  • Bitbucket サーバー: Bitbucket サーバーの管理ページで、[ サーバーの設定 ] をクリックし、[ HTTP(S) が有効] を選択します。

手順 2: 有効化ノートブックを実行する

プロキシを有効にするには:

  1. クラスターを作成するためのアクセス権を持つワークスペース管理者として Azure Databricks ワークスペースにログインします。

  2. このノートブックをインポートします。これにより、Git プロキシを実行するためにクラウド プロバイダーから使用できる最小のインスタンスの種類が選択されます。

    ノートブック: Git フォルダーでプライベート Git サーバー接続に対して Databricks Git フォルダーの Git サーバー プロキシを有効にします

  3. [すべてを 実行] をクリックしてノートブックを実行すると、次のタスクが実行されます。

    • 自動終了しない "Databricks Git Proxy" という名前の 単一ノードコンピューティング リソース を作成します。 このプロキシ サービスは、Git コマンドを処理し、Azure Databricks ワークスペースからプライベート Git サーバーに転送します。
    • Databricks Git フォルダー内の Git 要求がコンピューティング インスタンスを介してプロキシ処理されるかどうかを制御する機能フラグを有効にします。

    ベスト プラクティスとして、Git プロキシ コンピューティング リソースを定期的に実行するジョブを作成します。 これにより、Git プロキシ サービスをユーザーが使用できるようになります。

メモ

実行時間の長いコンピューティング リソースを追加で実行すると、追加の Databricks ユニット (DBU) が発生します。 コストを最小限に抑えるため、ノートブックは、安価なノード タイプの単一ノード コンピューティング リソースを使用するようにプロキシを設定します。 ニーズに合わせてコンピューティング オプションを変更します。 価格情報については、 Databricks 料金計算ツールを参照してください。

手順 3: Git サーバーの構成を検証する

Git サーバーの構成を検証するには、プロキシ クラスターを介してプライベート Git サーバーでホストされているリポジトリを複製します。 複製が成功すると、Git サーバー プロキシがワークスペースで動作していることを確認します。

手順 4: プロキシが有効な Git リポジトリを作成する

ユーザーが Git 資格情報を構成した後は、リポジトリを作成または同期するための追加の手順は必要ありません。 資格情報とアクセス リポジトリをプログラムで構成するには、 Git 資格情報の構成に関するページを参照してください。リモート リポジトリを Azure Databricks に接続します

グローバル「CAN ATTACH TO」権限を削除する

Git サーバー プロキシでは、ユーザーに CAN ATTACH TO アクセス許可は必要ありません。 ユーザーがプロキシ クラスターで任意のワークロードを実行できないようにするには、プロキシ サーバーに対するクラスター アクセス制御リスト (ACL) のアクセス許可を制限します。

  1. サイドバーから [ コンピューティング ] をクリックし、 Kebab メニュー アイコン をクリックします。実行中の Git Server プロキシのコンピューティング エントリの横にある kebab メニューをクリックします。

  2. [ アクセス許可の編集] をクリックします。

  3. ダイアログから、[すべてのユーザーアタッチ可能] エントリを削除します。

トラブルシューティング

このセクションでは、一般的な問題とその診断方法について説明します。

一般的な問題のチェックリスト

エラーの診断を開始する前に、次の内容を確認します。

デバッグ ノートブックの残りの部分を実行し、結果をキャプチャします。 問題を解決できない場合、または報告されたエラーが表示されない場合は、Databricks サポートで結果を確認できます。 要求された場合は、デバッグ ノートブックを DBC アーカイブとしてエクスポートして送信します。

Git プロキシ構成を変更する

Git プロキシ サービスが既定の構成で動作しない場合は、ネットワーク インフラストラクチャをサポートするように環境変数を設定します。

Git プロキシ サービスの構成を更新するには、次の環境変数を使用します。

環境変数 書式 説明
GIT_PROXY_ENABLE_SSL_VERIFICATION true/false プライベート Git サーバーに自己署名証明書を使用している場合は、これを false に設定します。
GIT_PROXY_CA_CERT_PATH ファイルパス (文字列) これを、SSL 検証に使用される CA 証明書ファイルのパスに設定します。 例: /FileStore/myCA.pem
GIT_PROXY_HTTP_PROXY https://<hostname>:<port #> これを、HTTP トラフィック用のネットワークのファイアウォール プロキシの HTTPS URL に設定します。
GIT_PROXY_CUSTOM_HTTP_PORT ポート番号 (整数) Git サーバーの HTTP ポートに割り当てられているポート番号に設定します。

これらの環境変数を設定するには:

  1. Azure Databricks ワークスペースの [ コンピューティング ] タブに移動します。
  2. Git プロキシ サービスのコンピューティング構成を選択します。
  3. [構成] ウィンドウの下部にある [詳細設定] を展開し、[Spark] タブを選択します。
  4. 環境変数フィールドに 環境変数 を追加します。

プロキシ クラスターのログを検査する

プロキシ クラスター上の /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 ファイルを確認します。 証明書の検証に失敗した場合は、システム証明書チェーンに証明機関を追加します。

  1. ブラウザーまたは別の方法を使用してルート証明書を抽出し、Databricks ファイル システムにアップロードします。
  2. Git フォルダー Git Proxy クラスターを編集して、ルート証明書ファイルを指すGIT_PROXY_CA_CERT_PATH環境変数を設定します。 「環境変数」を参照してください。

これらの手順を完了したら、クラスターを再起動します。

よく寄せられる質問

Git サーバー プロキシの構成と使用方法に関する一般的な質問を次に示します。

Git プロキシが実行されているかどうかを確認するにはどうすればよいですか?

Git プロキシ デバッグ ノートブックをインポートして実行します。 結果は、Git プロキシ サービスに問題があるかどうかを示します。

ワークスペースはプロキシ クラスターを共有できますか?

各 Azure Databricks ワークスペースには、独自のプロキシ クラスターが必要です。 複数のワークスペース間でプロキシ クラスターを共有することはできません。また、各ワークスペースに含めることができる Git プロキシ サーバー クラスターは 1 つだけです。

一部の Git トラフィックのみをプロキシ経由でルーティングできますか?

Databricks Git フォルダー関連のすべてのトラフィックは、パブリック Git リポジトリの場合でも、プロキシ クラスターを経由してルーティングされます。 Azure 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 を変更する必要がありますか?

いいえ。 ユーザーは、通常の Git リポジトリ URL ( https://git.company.com/org/repo-name.gitなど) を入力します。 Databricks Git フォルダーのすべての Git トラフィックは、プロキシ経由で透過的にルーティングされます。

認証はプロキシでどのように機能しますか?

はい。プロキシは、ユーザーの Git 資格情報を使用して Git サーバーに対する認証を行います。 アクセスは、その資格情報で指定されたアクセス許可によって制限されます。