將工作空間的 IP 存取清單遷移至基於情境的入口

Workspace IP 存取清單僅根據來源 IP 位址來限制存取。 基於情境的入口控制讓帳號管理員根據多種條件(包括使用者身份、請求類型及網路來源)建立允許與拒絕規則。 這讓你能更細緻地控制誰能存取你的工作空間,以及從哪裡進入。

Databricks 建議使用基於上下文的入口作為工作空間入口的主要控制。 關於基於上下文的入口如何評估請求的概述,請參見 基於上下文的入口控制。

你可以使用 Databricks Labs 的 migrate-ip-acls CLI 工具 ,將現有工作空間的 IP 存取清單遷移到基於上下文的入口政策。

Requirements

  • 你必須是你遷移工作區的 管理員 。 閱讀工作區 IP 存取清單需要工作區管理員權限。
  • 你必須是 帳號管理員。建立和附加網路政策需要帳號管理員權限。

開始前請先檢視 遷移工具的限制 ,因為該工具無法遷移所有工作區。

Note

政策變更通常需10至15分鐘才能生效。 在此期間,隨著變更的擴散,執法可能會不一致。 在依據已移轉的原則之前,請先將這段延遲納入考量。

遷移工具的運作方式

遷移工具執行以下步驟:

  1. 用你的工作區管理員權限驗證所選工作空間,並用帳號管理員權限驗證 Azure 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 啟用,工具會將產生的政策附加到所選的工作區。 由於工作區只有一個網路政策指派,這會取代該工作區先前的政策指派。
  10. 若已指定 --disable-existing-ip-acls,工具會在新的強制執行原則成功建立並套用後,停用工作區 IP 存取清單的強制執行。 現有的 IP 存取清單會被保留,但不再強制執行。

--auto-assign 預設是啟用的。 --disable-existing-ip-acls 預設為停用。

當工作區 IP 存取清單仍處於啟用狀態時,系統會持續將其與以情境為基礎的傳入存取一同評估。 請求必須同時滿足這兩個控制條件。

從工作區 IP 存取清單遷移到產生的基於情境的入口網路政策。

使用遷移工具

請依照以下步驟從工作區的 IP 存取清單中產生基於情境的入口政策,並可選擇建立並附加該政策。

Important

產生的原則是一種強制執行安全性的控制項。 在強制模式下,任何規則不符的請求都會被封鎖。 遷移工具會保留你現有工作空間 IP 存取清單的政策。 不過,如果你願意,也可以先用試跑模式執行遷移工具(--policy-mode dry_run),再檢查 拒絕日誌 ,再把產生的政策切換到強制模式。

複製移轉工具

複製 Databricks Labs 的遷移工具倉庫:

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

安裝工具的相依性:

uv sync

以工作區管理員身分驗證登入工作區

閱讀和修改工作區 IP 存取清單需要工作區管理員權限。

透過執行以下指令來驗證工作區:

databricks auth login \
   --host https://adb-<WORKSPACE_URL>.azuredatabricks.net/

認證指令會為工作區建立一個 Azure Databricks CLI 設定檔。 你在執行遷移工具時會使用這個設定檔。

以帳號管理員身份驗證該帳號

建立和指派網路政策需要帳號管理員權限。

請執行以下指令驗證帳號:

databricks auth login \
   --host https://accounts.azuredatabricks.net \
   --account-id <ACCOUNT_ID>

使用包含您要移轉之工作區的帳戶。

啟動遷移工具

啟動遷移工具時,請執行以下指令:

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

輸入參數

參數 說明 有效數值 預設值 推薦或選修
--profile <value> 要移轉之工作區的 Azure Databricks CLI 工作區設定檔。 任何列於 databricks auth profiles 中的工作區設定檔名稱,皆由 databricks auth login --host <workspace-url> 產生 不適用 建議。 若未提供,將被提示。
--account-id <value> Azure Databricks 帳號 ID 包含所選工作區。 任何有效的 Azure Databricks 帳號 ID(必須與所選工作區相關聯) 不適用 建議。 若未提供,將被提示。
--export <value> 寫入所產生原則之 JSON 與 Terraform 檔案的檔案路徑。 --export . 寫入目前的目錄。 任何有效的檔案路徑 不適用 建議。 如果遺漏了檔案,我就不會匯出任何檔案。
--policy-name <value> 產生的網路政策名稱。 該名稱必須不已被帳號內的其他網路政策使用。 不適用 選擇性。 若未提供,將被提示。
--policy-mode <value> 無論產生的基於情境的入口政策是被強制執行,還是模擬演練模式。 強制模式 會強制執行該政策。 試跑模式 僅記錄日誌(記錄入侵拒絕,無強制執行)。 enforce、dry_run enforce 選擇性。 如果省略,則使用預設值。
--auto-assign / --no-auto-assign 控制建立後產生的政策是否會附加到所選工作區。 附加新政策會取代工作區先前的網路政策指派。 不適用 --auto-assign 選擇性。 如果省略,則使用預設值。
--create-policy / --no-create-policy 建立新的網路政策。 使用 --no-create-policy --no-auto-assign 進行僅提議的執行。 不適用 --create-policy 選擇性。 如果省略,則使用預設值。
--disable-existing-ip-acls 成功建立並附加強制政策後,會停用工作區 IP 存取清單的強制執行。 IP 存取清單的設定本身會被保留。 不適用 不會停用現有的 IP 存取清單 選擇性。 如果省略,則使用預設值。

該工具會拒絕可能在遷移後以不同入口政策離開工作區的參數組合。 例如,--disable-existing-ip-acls除非工具同時建立並附加強制網路政策,否則無法使用。 它也拒絕無意義的組合,如 --no-create-policy --auto-assign。

檢查並核准輸出

在建立、附加或執行產生的政策之前,工具會先列印產生的網路政策以供檢查與驗證。 一旦你核准,工具會根據你的輸入參數套用這些變更。

套用生成的 Terraform 腳本

如果您指定 --export,工具會建立產生的政策的 JSON 表示及對應的 Terraform 設定。

在將生成的 Terraform 加入你的基礎設施即程式碼配置或執行 terraform apply之前,請先檢視它。 Terraform 的輸出結果旨在作為以基礎結構即程式碼管理所產生原則的起點。

確認移轉

工具建立並附加原則後,請先確認其運作符合預期,再加以依賴:

  1. 在帳號主控台中,點選 工作區,選擇工作區,並確認產生的政策是否列在 網路政策中。
  2. 如果你是在試運行模式下建立原則,請產生一般的工作區流量,然後檢視拒絕記錄,以確認轉換後的規則是否符合你預期的存取設定。 當規則正確時,將政策切換為強制模式。 參見 設定執行模式。

拒絕記錄會儲存在 Unity 目錄 system.access.inbound_network 資料表中。 試行拒絕在 DROP 欄中會顯示為 DRY_RUN_DENIAL 值,而強制拒絕則會顯示為 access_type。 請參閱 檢查拒絕記錄。

遷移工具的限制

遷移工具不支援以下配置:

  • 工作區已經指派了一項限制性的基於上下文的入口政策。 如果工具設定為建立並指派新政策,若工作區已有包含強制或預執行的入門規則的指派政策,工具會中止。 允許所有基準政策不會觸發此檢查。

下一步

資源 說明
管理工作空間基於情境的入口政策 調整產生的政策、新增或編輯規則,或更改執行模式。
基於上下文的入口控制 瞭解基於情境的 Ingress 如何評估請求。