Important
這項功能位於 測試版 (Beta) 中。 工作區管理員可以從 「預覽 」頁面控制對此功能的存取。 請參閱 管理 Azure Databricks 預覽。
外部秘密將 Unity 目錄架構連接到外部秘密管理器。 與 Azure Databricks 儲存秘密值不同,這些秘密會保留在你的雲端秘密管理器中,並以可保護的物件形式出現在 Unity Catalog 中,供你治理和參考。
- 關於 Unity 目錄秘密以及 Azure Databricks 為你儲存和管理的秘密的介紹,請參見 Unity 目錄中的秘密。
- 若要支援帶有外部秘密管理器的結構,請參見 Unity 目錄中的外部秘密配置。
外部秘密的運作原理
你要依照結構設定秘密後端。 預設情況下,Azure Databricks 會儲存和管理結構中的所有秘密,除非有外部秘密管理器支援。 圖式無法同時混合兩者。
當結構由外部秘密管理器支援時,Azure Databricks 會執行以下操作:
-
顯示連線可列出的秘密:連線允許列出的每個秘密,都會在目錄總管
dbutils中以 Unity 目錄秘密的形式出現,並使用 Unity Catalog REST API。 命名有限制。 請參見 命名限制。 - 按需讀取值:Azure Databricks 不會在 Unity Catalog 中儲存秘密值。 每次擷取都直接從外部秘密管理器讀取當前值,這會增加延遲並可能產生雲端服務提供者的成本。 取回的值可能會如同其他機密資料一樣,快取在發出要求的運算資源上。
-
透過 Unity Catalog 權限控管存取:
READ SECRET和REFERENCE SECRET,以及權限繼承,其套用方式與由 Azure Databricks 管理的秘密相同。 由於外部祕密為唯讀,Unity Catalog 會拒絕CREATE SECRET、WRITE SECRET和刪除作業。 請參閱限制。 所有對外部秘密管理服務的存取都會透過該連線的服務認證進行,因此雲端端的稽核日誌會將存取歸因於該身分,而 Unity Catalog 的稽核日誌仍會記錄 Azure Databricks 使用者。
列出結構描述的密鑰會觸發匯入。 這不是持續性的背景同步。匯入會以非同步方式執行,因此只有在後續執行清單作業而觸發匯入後,Unity Catalog 才會反映外部秘密管理器中新增或移除的秘密;對於含有大量秘密的儲存區,這個過程最多可能需要幾分鐘。 讀取特定秘密會匯入或刷新該秘密,每次讀取都會取得最新的值。 當你在外部秘密管理器中永久刪除某個秘密時,Azure Databricks 會移除對應的 Unity 目錄秘密,包括其元資料、權限和標籤。
命名限制
外部祕密名稱必須遵守 Unity 目錄的命名慣例才能匯入:
- Unity 目錄不會匯入超過 248 字元的名稱。
- Unity Catalog 的祕密名稱不區分大小寫。 若兩個外部秘密僅因情況不同,Unity 目錄僅使用第一個匯入的秘密,忽略其餘。
- Unity 目錄會替換它不支援的字元:
.變為:,變/為|。 Azure Databricks 建議避免在外部秘密名稱中使用這些字元。
管理秘密配額
Unity Catalog 限制了結構和元儲存庫能儲存的秘密數量。 請參閱限制。 如果結構的秘密數量超過配額允許,Azure Databricks 會依創建日期先匯入外部秘密管理器中最早的秘密,直到配額,其餘則不會匯入。 只在 Azure Databricks 中揭露你需要的秘密,這樣結構才能保持在配額範圍內:
將連線指向一個專用的 金鑰保存庫,該 Vault 只存放你想在 Azure Databricks 中取得的秘密。
Limitations
除了 所有 Unity 目錄秘密的限制外,外部備份的秘密還有以下限制:
- Unity 目錄中的唯讀:你無法在 Azure Databricks 外部支援的架構中建立、更新、重新命名或刪除秘密。 在外部秘密管理器中管理那些秘密。
- 每個架構一個後端:結構中的所有秘密都使用同一個後端。 架構不能混合 Azure Databricks 管理與外部支援的秘密。
- 切換後端會移除匯入的密鑰:變更結構描述的後端,或將其指向不同的連線,會從該結構描述中移除先前匯入的外部密鑰,包括其 Unity Catalog 中繼資料、權限和標籤。
- 不支援跨雲端存取:請使用工作空間所在雲端原生的祕密管理器作為結構描述的後端。
- 讀取延遲與成本:每次讀取都會從外部秘密管理器取得數值,這會增加延遲並可能產生雲端服務提供者的成本。
- 最終一致的清單列示:新增至外部密碼管理器或從中移除的密碼,可能需要幾分鐘才會顯示在 Unity Catalog 中,尤其是在大型密碼存放區中。
- 無標籤過濾:Azure Key Vault 不支援依標籤過濾匯入的秘密。
- 已停用和已刪除的祕密:已停用的 金鑰保存庫 祕密會顯示在 Unity Catalog 中,但在重新啟用之前,無法讀取其值。 Unity Catalog 不再顯示已虛刪除的祕密。 在 金鑰保存庫 裡找回它,讓它再次可用。
Note
資料駐留 如果支撐結構的外部秘密管理器與讀取該架構的元儲存庫或工作區處於不同區域,秘密值及其元資料會跨越區域。 Azure Databricks 並不保證外部秘密能在區域內處理。
Note
秘密中的個人資料。 外部秘密名稱和值可能包含個人資料。 除非你的使用情境需要,否則你有責任將個人資料排除在外。
其他資源
| Feature | Description |
|---|---|
| 在 Unity 目錄中設定外部秘密 | 用 AWS Secrets Manager 或 Azure Key Vault 回來一個架構,然後讀取匯入的秘密。 |
| Unity 目錄中的秘密 | 建立、治理並管理 Azure Databricks 在 Unity Catalog 中儲存的秘密。 |