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

ワークスペースIPアクセスリストをコンテキストベースのイングレスに移行する

ワークスペースのIPアクセスリストは、ソースIPアドレスのみに基づいてアクセスを制限します。コンテキストベースのイングレスコントロールにより、アカウント管理者は、ユーザーID、リクエストタイプ、ネットワークソースなどの複数の条件に基づいて、許可ルールと拒否ルールを作成できます。これにより、ワークスペースにアクセスできるユーザーとそのアクセス元をよりきめ細かく制御できます。

Databricksでは、ワークスペースのイングレスの主要な制御としてコンテキストベースのイングレスを使用することを推奨しています。コンテキストベースのイングレスがリクエストを評価する方法の概要については、 コンテキストベースのイングレス制御を参照してください。

Databricks Labs の migrate-ip-acls CLI ツールを使用して、既存のワークスペース IP アクセスリストをコンテキストベースのイングレスポリシーに移行できます。

始める前に

  • 移行するワークスペースの ワークスペース管理者 である必要があります。ワークスペースの IP アクセス リストの読み取りには、ワークスペース管理者権限が必要です。

  • You must be an アカウント管理者 。ネットワークポリシーの作成とアタッチには、アカウント管理者権限が必要です。

  • コンテキストベースのイングレスには、Enterprise ティアが必要です。

すべてのワークスペースを移行できるわけではないため、開始する前に 移行ツールの制限事項 を確認してください。

注記

ポリシーの変更が反映されるまで、通常10~15分かかります。この期間中は、変更の反映に伴い、適用状態が一貫しない場合があります。移行したポリシーに依存する前に、この遅延時間を考慮してください。

移行ツールの仕組み

移行ツールは次のステップを実行します。

  1. ワークスペース管理者権限を使用して選択したワークスペースに対して認証を行い、アカウント管理者権限を使用してDatabricksアカウントに対して認証を行います。

  2. ワークスペースを安全に移行できるかどうかを判断するために、移行前チェックを実行します。

  3. 生成されたネットワークポリシーのポリシー名を入力するように求められます。

  4. ワークスペースで有効になっている IP アクセス リストを読み取ります。

    1. 有効な各 許可リスト は、生成されたネットワークポリシー内のコンテキストベースのイングレス 許可ルール に変換されます。
    2. 有効な各 ブロック リスト は、生成されたネットワーク ポリシー内のコンテキストベースのイングレスの 拒否ルール に変換されます。
    3. 既存のIPアクセスリストのラベルは保持されます。
    4. 無効化された個別のリストは移行されず、レビュー対象として報告されます。
    5. ワークスペースにブロック リストのみがある場合、ツールによって包括的な許可ルールが追加され、生成されたコンテキストベースのイングレス ポリシーによって既存の IP アクセス リストの動作が維持されます。
  5. ワークスペースに現在アタッチされているネットワーク ポリシーからの出力構成を、生成されたネットワーク ポリシーにコピーします。ワークスペースに明示的に割り当てられたポリシーがない場合、ツールはアカウントのベースライン default-policy を使用します。

  6. 確認用に生成されたネットワークポリシーが表示されます。

  7. --export で構成されている場合、ツールは提案されたポリシーの JSON および Terraform 表現を書き込みます。

  8. --create-policy が有効な場合、ツールは新しいネットワークポリシーを作成します。

  9. --auto-assign が有効な場合、ツールは生成されたポリシーを,選択したワークスペースにアタッチします。ワークスペースに割り当てられるネットワークポリシーは 1 つであるため、これによりワークスペースの以前のポリシー割り当てが置き換えられます。

  10. --disable-existing-ip-acls が指定されている場合、ツールは、新しく適用されたポリシーの作成とアタッチが正常に完了した後、ワークスペースのIPアクセスリストの適用を無効にします。既存のIPアクセスリストは保持されますが、適用されなくなります。

--auto-assign is enabled by default. --disable-existing-ip-acls は default で無効になっています。

ワークスペースのIPアクセスリストが有効なままである間、それらはコンテキストベースのイングレスとともに評価され続けます。リクエストは両方の制御を満たしている必要があります。

ワークスペースIPアクセスリストから、生成されたコンテキストベースのイングレスネットワークポリシーへの移行。

移行ツールを使用する

ワークスペースのIPアクセスリストからコンテキストベースのイングレスポリシーを生成し、必要に応じて作成およびアタッチするには、次のステップに従います。

重要

生成されたポリシーは、セキュリティを強制するコントロールです。適用モードでは、ルールに一致しないリクエストはすべてブロックされます。移行ツールは、既存のワークスペースの IP アクセス リストのポリシーを保持します。ただし、必要に応じて、最初に移行ツールをドライランモードで実行してから (--policy-mode dry_run)、生成されたポリシーを適用モードに切り替える前に 拒否 Logs を確認することもできます。

移行ツールのクローン作成

Databricks Labs 移行ツールリポジトリのクローンを作成します。

Bash
git clone https://github.com/databrickslabs/migrate-ip-acls.git
cd migrate-ip-acls

ツールの依存関係をインストールします。

Bash
uv sync

ワークスペース管理者としてワークスペースに対して認証を行う

ワークスペースのIPアクセスリストの読み取りと変更には、ワークスペース管理者権限が必要です。

次のコマンドを実行して、ワークスペースに対して認証を行います。

Bash
databricks auth login \
--host https://dbc-<WORKSPACE_URL>.cloud.databricks.com/

認証コマンドにより、ワークスペース用の Databricks CLI プロファイルが作成されます。移行ツールを実行する際にこのプロファイルを使用します。

アカウント管理者としてアカウントに対して認証を行います

ネットワークポリシーを作成および割り当てるには、アカウント管理者権限が必要です。

次のコマンドを実行して、アカウントに対して認証を行います。

Bash
databricks auth login \
--host https://accounts.cloud.databricks.com \
--account-id <ACCOUNT_ID>

移行するワークスペースが含まれるアカウントを使用します。

移行ツールの起動

次のコマンドを実行して、移行ツールを起動します。

Bash
uv run dbx-migrate-ip-acls --profile <my-workspace-profile-name> --account-id <acct-id> --export .

入力パラメーター

パラメーター

説明

有効な値

デフォルト値

推奨またはオプション

--profile <value>

移行するワークスペース用の Databricks CLI ワークスペース プロファイル。

databricks auth profilesにリストされているワークスペースプロファイル名 (生成元: databricks auth login --host <workspace-url>

N/A

推奨 省略した場合はプロンプトが表示されます。

--account-id <value>

選択したワークスペースを含む Databricks アカウント ID。

有効な Databricks アカウント ID(選択したワークスペースに関連付けられている必要があります)

N/A

推奨 省略した場合はプロンプトが表示されます。

--export <value>

生成されたポリシーの JSON および Terraform ファイルが書き込まれるファイル パス。--export . は現在のディレクトリに書き込みを行います。

有効なファイルパス

N/A

[推奨] 省略した場合はファイルをエクスポートしません。

--policy-name <value>

生成されたネットワークポリシーの名前。

名前は、アカウント内の他のネットワーク ポリシーで使用されていない必要があります。

N/A

オプション 。省略した場合はプロンプトが表示されます。

--policy-mode <value>

生成されたコンテキストベースのイングレスポリシーが適用されるか、ドライランモードになるかを示します。 強制モード ではポリシーが強制されます。 Dry run mode はLogsのみ(イングレス拒否をLogsに記録し、強制はしない)です。

enforce, dry_run

enforce

オプション 。省略した場合はdefaultを使用します。

--auto-assign / --no-auto-assign

作成後に、生成されたポリシーを選択したワークスペースにアタッチするかどうかを制御します。新しいポリシーをアタッチすると、ワークスペースの以前のネットワークポリシーの割り当てが置き換えられます。

N/A

--auto-assign

オプション 。省略した場合はdefaultを使用します。

--create-policy / --no-create-policy

新しいネットワーク ポリシーを作成します。提案専用のランには --no-create-policy --no-auto-assign を使用します。

N/A

--create-policy

オプション 。省略した場合はdefaultを使用します。

--disable-existing-ip-acls

強制ポリシーの作成とアタッチに成功した後、ワークスペースの IP アクセス リストの強制を無効にします。IP アクセス リストの設定自体は保持されます。

N/A

既存のIPアクセスリストは無効になりません

オプション 。省略した場合はdefaultを使用します。

パラメーター

説明

有効な値

デフォルト値

推奨またはオプション

--profile <value>

移行するワークスペース用の Databricks CLI ワークスペース プロファイル。

databricks auth profilesにリストされているワークスペースプロファイル名 (生成元: databricks auth login --host <workspace-url>

N/A

推奨 省略した場合はプロンプトが表示されます。

--account-id <value>

選択したワークスペースを含む Databricks アカウント ID。

有効な Databricks アカウント ID(選択したワークスペースに関連付けられている必要があります)

N/A

推奨 省略した場合はプロンプトが表示されます。

--export <value>

生成されたポリシーの JSON および Terraform ファイルが書き込まれるファイル パス。--export . は現在のディレクトリに書き込みを行います。

有効なファイルパス

N/A

[推奨] 省略した場合はファイルをエクスポートしません。

--policy-name <value>

生成されたネットワークポリシーの名前。

名前は、アカウント内の他のネットワーク ポリシーで使用されていない必要があります。

N/A

オプション 。省略した場合はプロンプトが表示されます。

--policy-mode <value>

生成されたコンテキストベースのイングレスポリシーが適用されるか、ドライランモードになるかを示します。 強制モード ではポリシーが強制されます。 Dry run mode はLogsのみ(イングレス拒否をLogsに記録し、強制はしない)です。

enforce, dry_run

enforce

オプション 。省略した場合はdefaultを使用します。

--auto-assign / --no-auto-assign

作成後に、生成されたポリシーを選択したワークスペースにアタッチするかどうかを制御します。新しいポリシーをアタッチすると、ワークスペースの以前のネットワークポリシーの割り当てが置き換えられます。

N/A

--auto-assign

オプション 。省略した場合はdefaultを使用します。

--create-policy / --no-create-policy

新しいネットワーク ポリシーを作成します。提案専用のランには --no-create-policy --no-auto-assign を使用します。

N/A

--create-policy

オプション 。省略した場合はdefaultを使用します。

--disable-existing-ip-acls

強制ポリシーの作成とアタッチに成功した後、ワークスペースの IP アクセス リストの強制を無効にします。IP アクセス リストの設定自体は保持されます。

N/A

既存のIPアクセスリストは無効になりません

オプション 。省略した場合はdefaultを使用します。

移行後にワークスペースで異なるイングレスポリシーが適用される可能性のあるパラメーターの組み合わせは、ツールによって拒否されます。たとえば、ツールが 強制 ネットワークポリシーも 作成 および アタッチ しない限り、--disable-existing-ip-aclsを使用することはできません。また、--no-create-policy --auto-assignなどの無意味な組み合わせも拒否されます。

出力を調べて承認する

生成されたポリシーを作成、アタッチ、または適用する前に、ツールは検査および検証のために生成されたネットワークポリシーを出力します。承認すると、ツールは入力パラメーターに従ってこれらの変更を適用します。

生成された Terraform スクリプトを適用します

--exportを指定すると、ツールは生成されたポリシーのJSON表現と、対応するTerraform構成を作成します。

生成された Terraform を infrastructure-as-code 構成に追加するか、terraform apply を実行する前に確認します。Terraform の出力は、infrastructure as code で生成されたポリシーを管理するための出発点として使用することを目的としています。

移行の検証

ツールがポリシーを作成してアタッチした後は、依存する前に期待どおりに動作することを確認してください:

  1. アカウント コンソールで [ ワークスペース ] をクリックし、ワークスペースを選択して、生成されたポリシーが [ ネットワーク ポリシー ] の下に表示されていることを確認します。
  2. ドライランモードでポリシーを作成した場合は、通常のワークスペースのトラフィックを生成してから、拒否 Logs を確認して、変換されたルールが意図したアクセスと一致していることを確認します。ルールが正しい場合は、ポリシーを強制モードに切り替えます。ポリシー強制モードの設定を参照してください。

拒否Logsは、Unity Catalog の system.access.inbound_network テーブルに格納されます。ドライランの拒否は access_type 列に DRY_RUN_DENIAL 値として表示され、強制された拒否は DROP として表示されます。See Check denial Logs.

移行ツールの制限事項

移行ツールは、次の構成をサポートしていません。

  • 既存の制限付きコンテキストベースのイングレスポリシーがすでにワークスペースに割り当てられています。 ツールが新しいポリシーを作成して割り当てるように構成されている場合、強制またはドライランのイングレスルールを含む割り当てられたポリシーがワークスペースにすでに存在すると、処理が中止されます。すべてを許可するベースラインポリシーでは、このチェックはTriggerされません。

  • インバウンド プライベート接続が構成されました。 アカウントに登録済みのインバウンド プライベート Endpoint がある場合、またはワークスペースにプライベート アクセス設定がアタッチされている場合、ツールは中断します。コンテキストベースのイングレスにおけるインバウンド PrivateLink がベータ版であるため、このツールではインバウンド PrivateLink 構成をコンテキストベースのイングレスに移行しません。

次のステップ