祕密管理

Azure Databricks 的祕密會儲存敏感值,例如密碼、API 金鑰或雜湊鹽,讓筆記本、工作和函式都能使用它,而不會讓該值出現在程式碼中。 你可以在兩個地方管理密鑰:

  • 工作區密碼範圍:同一工作區中具名的密碼集合。 權限適用於整個範疇。 請參閱 工作區密鑰範圍。
  • Unity Catalog 中的秘密:可保護的物件(catalog.schema.secret),這些物件在連接至中繼存放區的每個工作區中都可用。 你可以授與每個機密項目的存取權限。 詳見 Unity 目錄中的秘密。

Unity Catalog secrets 可以由 Azure Databricks 管理,或以 Azure Key Vault 為後端。 請參閱 Unity 目錄中的 Azure Key Vault secrets。

選擇要存放密鑰的位置

下表比較每個選項儲存秘密值的位置、哪些工作區可以使用這些值,以及你如何控制存取權限。

  工作區秘密範疇 Unity Catalog 中由 Azure Databricks 管理的祕密 Unity Catalog 中由 Azure Key Vault 支援的秘密(測試版)
該數值儲存在哪裡 Azure Databricks、在工作區中,或您的 Azure Key Vault 具有 金鑰保存庫 支援範圍 Azure Databricks, in Unity Catalog Azure Key Vault (Azure Databricks 只儲存 Unity Catalog 中的秘密名稱)
用自己的金鑰加密 是的,使用 適用於受管理服務的客戶管理金鑰 是的,目錄上有 客戶管理的金鑰
提供於 單一工作區 所有連接到元儲存區的工作區 所有連接到元儲存區的工作區
存取控制 Secret 範圍權限 (無 Secret 層級存取控制) 對密鑰、結構描述或目錄的 Unity Catalog 權限 Unity Catalog 對秘密、結構描述或目錄的權限
旋轉 在 Azure Databricks 中,或針對 金鑰保存庫 支援的範圍在 金鑰保存庫 中更新值 在 Azure Databricks 中更新值 在 Azure Key Vault 中輪替。 Azure Databricks 沒有變更。

你可以在哪裡使用密鑰

Workspace 祕密範圍與 Unity Catalog 祕密在不同地方都支援。 在你選擇之前,先確認它在你程式碼執行的地方是否能運作。

Surface 工作區密鑰範圍 Unity Catalog 中的祕密
dbutils.secrets 收錄於筆記簿與作業 Yes. 請參見 閱讀一個秘密。 是的,在無伺服器環境版本 4 及以上版本或 Databricks Runtime 17.3 LTS 及以上版本上。 請參見 閱讀一個秘密。
REST API 與 Databricks CLI Yes. API 回傳的數值不會被遮蔽。 Yes. API 回傳的數值不會被隱去敏感內容。
遠端開發,例如 Databricks Connect 是的,dbutils.secrets 在 Databricks Connect 用戶端中。 請參考 Databricks Utilities with Databricks Connect for Python。 No
Unity Catalog Python 與 Scala UDFs No Yes. 來電者只需 EXECUTE。 參見 在 UDF 中使用 Secrets。
SQL 數據倉庫 是的,透過秘密功能 只有透過宣告該祕密的 Unity Catalog Python 或 Scala UDF
Spark 配置屬性與環境變數在計算資源上 Yes. 請參閱在 Spark 組態屬性或環境變數中使用祕密。 No
模型服務端點環境變數 Yes. 請參閱 新增秘密型環境變數。 No
預設套件存放庫 是的,在瞄準鏡裡 databricks-package-management 。 請參見 「配置預設套件庫」。 No

其他資源

資源 Description
Unity 目錄中的秘密 建立 Unity Catalog 密鑰、授與存取權限,並在筆記本、作業和 UDF 中讀取它們。
Unity Catalog 密鑰的最佳實務 依環境、應用程式或團隊來組織機密,讓工作負載無需讀取其內容即可使用機密。