メインコンテンツまでスキップ

Databricks サーバレス プライベート Git の始め方

注記

Databricks サーバレス プライベート Git は パブリック プレビュー段階です。 サーバレス コンピュート リソースが外部リソースに接続することで発生するコンピュートおよびネットワーク費用には料金がかかります。 請求に関する詳細については Databricksサーバレスのネットワークコストを理解するを参照ください。

サーバレスプライベートGitとは

Databricksサーバレス Private Git使用すると、サーバレス コンピュートと PrivateLink を使用して、 DatabricksワークスペースをプライベートGitサーバーに接続できます。 Git サーバーは、インターネットからアクセスできない場合はプライベートです。

次の図は、システム全体のアーキテクチャを示しています。

Databricks サーバレス Private Repos アーキテクチャ

サーバレスプライベートGitを使用する理由

Git プロキシと比較して、サーバレスプライベートGit には次の利点があります。

  • サーバレスプライベート Git は、 Git 要求を受けた場合にのみサーバレスコンピュートを取得し、使用していないときは非アクティブにすることができます。 これに対し、 Git プロキシでは、ユーザが Git 要求を送信するときにプロキシクラスタリングがアクティブである必要があります。

  • サーバレスプライベートGit は PrivateLink を使用して、プライベート git インスタンスに安全に接続します。

サーバレスプライベートGitの設定

  1. 手順に従って、 プライベート Git サーバーの VPC エンドポイントサービスをセットアップします。この VPC エンドポイントを使用すると、サーバレスから NLB の背後にあるネットワーク内のバックエンドへの AWS PrivateLink 接続を作成できます。

  2. 管理者は、各 Git サーバーの Databricks NCC に AWS インターフェイス VPC エンドポイントを作成する 必要があります 。ワークスペースが複数のプライベート Git サーバーに接続する必要がある場合、管理者は Git サーバーごとに Databricks NCC に AWS インターフェイス VPC エンドポイントを作成する必要があります。

  3. ネットワーク接続構成 (NCC) を作成して、ネットワーク ロード バランサーへのエグレスを構成します。このステップの考慮事項は次のとおりです。

    • プライベート Git のワークスペースに構成できる NCC は 1 つだけです。ワークスペースが複数のプライベート Git サーバーに接続する必要がある場合は、同じ NCC を使用して接続できることを確認します。
    • リージョンでサポートされる NCC の数や NCC に接続できるワークスペースの数などの制限については、「サーバーレス コンピュート アクセス用のファイアウォールの構成」に記載されています。

ネットワーク接続構成を作成する

  1. プライベート エンドポイント ルールを追加します。

プライベート エンドポイント ルールを追加する

  1. NCC プライベート エンドポイント ルールを設定してから少なくとも 10 分待ってから、ワークスペース レベルで、プレビュー ページでサーバーレス プライベートGitパブリック プレビューを有効にします。
  2. ワークスペースに移動して、Git 操作を試してください。サーバーレス Private Gitの UI インジケーターが表示されます。 (このページの読み込みには数秒かかる場合があります。)

設定後、サーバレスプライベート Gitは、クラシック Git プロキシやエンタープライズプライベート Gitなど、すでにプロビジョニングしている他の形式のプライベート Git接続よりも優先されます。Git プロキシ クラスタリングを実行している場合は、サーバレス プライベート Gitの設定後に停止する。

追加構成

構成を使用して git 操作をカスタマイズします。JSON ファイル。

  1. /Workspace/.git_settings/config.jsonで設定ファイルを作成します。
  2. すべての Git ユーザーに、構成ファイルとそれによって参照されるすべての CA 証明書ファイルに対する表示権限を付与します。
  3. Git と対話して、サーバー上のリモートリポジトリの Git フォルダーの複製など、Git リモートへの接続を検証します。
  4. 設定ファイルへの変更が適用されるまでに最大 1 分かかる場合があります。

トップレベルの構成ファイル構造

{
"default": { ... }, // Optional global settings
"remotes": \[ ... \] // Optional list of per-remote settings
}

'デフォルト' セクション (オプション)

グローバルデフォルトは、特定のリモートによってオーバーライドされない限り、すべての Git 操作に適用されます。

フィールド

Type

必須

デフォルト値

説明

sslVerify

boolean

No

True

SSL 証明書を検証するかどうか。

caCertPath

string

No

"" (空)

カスタム CA 証明書へのワークスペース パス。

httpProxy

string

No

"" (空)

Git トラフィックをルーティングするための HTTP プロキシ。

customHttpPort

integer

No

未指定

Git サーバーのカスタム HTTP ポート。

'remotes' セクション (オプション)

個々のリモート Git サーバーの設定を定義するオブジェクトのリスト。これらの設定は、リモートごとに「デフォルト」ブロックを上書きします。

フィールド

Type

必須

デフォルト値

説明

urlPrefix

string

Yes

Git リモート URL に一致するプレフィックス。

sslVerify

boolean

No

True

SSL 証明書を検証するかどうか。

caCertPath

string

No

"" (空)

このリモートのカスタム CA 証明書パスへのワークスペース パス。

httpProxy

string

No

"" (空)

Git トラフィックをルーティングするための HTTP プロキシ。

customHttpPort

integer

No

未指定

Git サーバーのカスタム HTTP ポート。

リモート固有の設定のない設定の例

"default": {
"sslVerify": false
}
}

完全な構成の例

{
"default": {
"sslVerify": true,
"caCertPath": "/Workspace/my_ca_cert.pem",
"httpProxy": "https://git-proxy-server.company.com",
"customHttpPort": "8080",
},
"remotes": \[
{
"urlPrefix": "https://my-private-git.company.com/",
"caCertPath": "/Workspace/my_ca_cert_2.pem"
},
{
"urlPrefix": "https://another-git-server.com/project.git",
"sslVerify": false
}
\]
}

付記

  • defaultセクションは、たとえ部分的であっても存在する必要があります。
  • remotesリストはオプションであり、完全に省略できます。
  • 各リモートエントリには、少なくとも urlPrefixが含まれている必要があります。
  • フィールドの値を指定しない場合は、デフォルト値が使用されます。
  • 不明なフィールドは無視されます。

その他のセキュリティに関する推奨事項

セキュリティで保護されたエグレス ゲートウェイが有効になっている場合は、特定のワークスペースに適用されているアカウント コンソールのネットワーク ポリシーに、許可されたインターネット宛先に Git サーバーの FQDN が含まれていることを確認します。

ワークスペースに、許可されたインターネットの宛先に Git サーバーの FQDN が含まれていることを確認する

制限

  • サーバレスプロキシログは現在利用できません。
  • サーバーレス地域でのみ利用可能です。 サポートされているリージョンの一覧については、 「Databricks クラウドとリージョン」を参照してください。
  • 複数のリージョンのワークスペースを提供する VPC エンドポイントサービスを作成することはできません。現在、AWS NCC はリージョンオブジェクトであり、マルチリージョン VPC エンドポイントをサポートしていません。別のリージョンの別のワークスペースを Git サーバーに接続するには、新しいリージョンに別の NLB と VPC エンドポイント サービスをセットアップします。