秘密範圍有兩種類型:Azure 金鑰保存庫支援和 Databricks 支援。

Azure 金鑰保存庫支援的範圍

若要參考儲存在 Azure 金鑰保存庫 中的秘密,您可以建立 Azure 金鑰保存庫所支援的秘密範圍。 然後,您可以從該秘密範圍利用對應金鑰保存庫實例中的所有秘密。 因為 Azure 金鑰保存庫支援的秘密範圍是金鑰保存庫的唯讀介面, PutSecret 所以不允許和 DeleteSecret 秘密 API 作業。 若要管理 Azure 金鑰保存庫中的秘密,您必須使用 Azure Set Secret REST API 或 Azure 入口網站 UI。

Databricks 支援的範圍

Databricks 支援的秘密範圍會儲存在 (,) 由 Azure Databricks 所擁有和管理的加密資料庫所支援。 秘密範圍名稱:

  • 在工作區內必須是唯一的。
  • 必須包含英數位元、破折號、底線、 @ 和句號,而且不能超過 128 個字元。
  • 名稱會被視為不區分,而且可由工作區中的所有使用者讀取。

    您可以使用 Databricks CLI 教學課程建立 Databricks 支援的秘密範圍, (0.7.1 版和更新版本) 。 或者,您可以使用 秘密 API

    範圍許可權

    範圍是使用 秘密 ACL 所控制的許可權所建立。 根據預設,系統會為 MANAGE 建立範圍的使用者建立範圍的許可權, (「creator」) ,讓建立者讀取範圍中的秘密、將秘密寫入範圍,以及變更範圍的 ACL。 如果您的帳戶有 進階方案 ,您可以在建立範圍之後隨時指派細微的許可權。 如需詳細資訊,請參閱 秘密存取控制

    您也可以覆寫預設值,並在建立範圍時明確授 MANAGE 與所有使用者的許可權。 事實上,如果您的帳戶沒有 進階方案 則必須 執行此動作。

    秘密 ACL 位於範圍層級。 如果您使用 Azure 金鑰保存庫支援的範圍,則授與範圍存取權的使用者可以存取 Azure 金鑰保存庫中的所有秘密。 若要限制存取,請使用個別的 Azure 金鑰保存庫實例。

    建立 Azure 金鑰保存庫支援的秘密範圍

    您可以使用 UI 或使用 Databricks CLI 來建立 Azure 金鑰保存庫支援的秘密範圍。

  • 您必須擁有 Azure Active Directory 租使用者中的目錄讀取者角色。

  • 您必須在想要用來備份秘密範圍的 Azure 金鑰保存庫實例上擁有參與者或擁有者角色。

    如果您沒有金鑰保存庫實例,請遵循 使用 Azure 入口網站 建立金鑰保存庫 中的指示。

    建立 Azure 金鑰保存庫支援的秘密範圍需要 Azure 金鑰保存庫實例上的參與者或擁有者角色,即使先前已將金鑰保存庫的存取權授與 Azure Databricks 服務也一樣。

    如果金鑰保存庫存在於與 Azure Databricks 工作區不同的租使用者中,建立秘密範圍的 Azure AD 使用者必須具有在金鑰保存庫租使用者中 建立服務主體的許可權 。 否則,會發生下列錯誤:

    Unable to grant read/list permission to Databricks service principal to KeyVault 'https://xxxxx.vault.azure.net/': Status code 403, {"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"XXXXX","date":"YYYY-MM-DDTHH:MM:SS"}}
    
  • [許可權模型 ] 設定為 [ 保存庫存取原則]。

    建立 Azure 金鑰保存庫支援的秘密範圍角色,會使用金鑰保存庫存取原則,將取得列出許可權授與 Azure Databricks 服務的應用程式識別碼。 Azure Databricks 不支援以 Azure 角色為基礎的存取控制許可權模型。

  • 選取 [設定] 底下的 [網路] 索引標籤

  • [防火牆和虛擬網路]中,設定[允許從:允許來自特定虛擬網路和 IP 位址的公用存取] 或 [停用公用存取]。

    [例外狀況] 底下,核 取 [允許受信任的 Microsoft 服務略過此防火牆]。 如果您將 [允許從下列來源存取] 設定為 [允許來自所有網路的公用存取],則不需要這樣做。

    使用 UI 建立 Azure 金鑰保存庫支援的秘密範圍

  • 移至 https://<databricks-instance>#secrets/createScope 。 此 URL 區分大小寫;中的 createScope 範圍必須是大寫。

  • 輸入秘密範圍的名稱。 秘密範圍名稱不區分大小寫。

  • 使用 [ 管理主體 ] 下拉式清單來指定 [所有使用者 ] 是否具有 MANAGE 此秘密範圍的許可權,或僅指定您) (秘密範圍的 建立者

    MANAGE 許可權可讓使用者讀取和寫入此秘密範圍,並在 進階方案帳戶的情況下變更範圍的許可權。

    您的帳戶必須具有 進階方案 ,才能選取 [建立者]。 這是建議的方法:在您建立秘密範圍時授 MANAGE建立者 的許可權,然後在測試範圍之後指派更細微的存取權限。 如需範例工作流程,請參閱 秘密工作流程範例

    如果您的帳戶具有標準方案,您必須將許可權設定 MANAGE 為 「所有使用者」群組。 如果您在這裡選取 [建立者 ],當您嘗試儲存範圍時,將會看到錯誤訊息。

    如需許可權的詳細資訊 MANAGE ,請參閱 秘密存取控制

  • 輸入 DNS 名稱 (,例如) https://databrickskv.vault.azure.net/ 和資源 識別碼,例如:

    /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
    

    這些屬性可從您Azure 入口網站中 Azure 金鑰保存庫的 [屬性] 索引標籤取得。

    如需在存取 Azure Blob 儲存體時使用秘密的範例,請參閱 在 Azure Databricks 上掛接雲端物件儲存體

    使用 Databricks CLI 建立 Azure 金鑰保存庫支援的秘密範圍

  • 安裝 CLI 並將其設定為使用 Azure Active Directory (Azure AD) 權杖 進行驗證。

    您必須使用屬於服務主體或使用者的 Azure AD 權杖,或屬於服務主體的 Azure Databricks 個人存取權杖進行驗證,才能使用 Databricks CLI 建立 Azure 金鑰保存庫支援的秘密範圍。 請注意,您無法使用屬於使用者的個人存取權杖。

    如果金鑰保存庫存在於與 Azure Databricks 工作區不同的租使用者中,建立秘密範圍的 Azure AD 使用者或服務主體必須具有在金鑰保存庫租使用者中 建立服務主體的許可權 。 否則,會發生下列錯誤:

    Unable to grant read/list permission to Databricks service principal to KeyVault 'https://xxxxx.vault.azure.net/': Status code 403, {"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"XXXXX","date":"YYYY-MM-DDTHH:MM:SS"}}
    
  • 建立 Azure 金鑰保存庫範圍:

    databricks secrets create-scope --scope <scope-name> --scope-backend-type AZURE_KEYVAULT --resource-id <azure-keyvault-resource-id> --dns-name <azure-keyvault-dns-name>
    

    根據預設,系統會使用 MANAGE 建立範圍之使用者的許可權來建立範圍。 如果您的帳戶沒有Premium 方案,您必須覆寫該預設值,並在建立範圍時明確將許可權 usersMANAGE 與 (所有使用者) 群組:

    databricks secrets create-scope --scope <scope-name> --scope-backend-type AZURE_KEYVAULT --resource-id <azure-keyvault-resource-id> --dns-name <azure-keyvault-dns-name> --initial-manage-principal users
    

    如果您在進階方案中的帳戶,您可以在建立範圍之後隨時變更許可權。 如需詳細資訊,請參閱 秘密存取控制

    建立 Databricks 支援的秘密範圍之後,您可以 新增秘密

    如需在存取 Azure Blob 儲存體時使用秘密的範例,請參閱 在 Azure Databricks 上掛接雲端物件儲存體

    建立 Databricks 支援的秘密範圍

    秘密範圍名稱不區分大小寫。

    若要使用 Databricks CLI 建立範圍:

    databricks secrets create-scope --scope <scope-name>
    

    根據預設,系統會使用 MANAGE 建立範圍之使用者的許可權來建立範圍。 如果您的帳戶沒有 進階方案您必須 覆寫該預設值,並在建立範圍時明確將許可權授 MANAGE 與「使用者」 (所有使用者) :

    databricks secrets create-scope --scope <scope-name> --initial-manage-principal users
    

    您也可以使用 秘密 API建立 Databricks 支援的秘密範圍。

    如果您的帳戶有 進階方案,您可以在建立範圍之後隨時變更許可權。 如需詳細資訊,請參閱 秘密存取控制

    建立 Databricks 支援的秘密範圍之後,您可以 新增秘密

    列出秘密範圍

    若要使用 CLI 列出工作區中的現有範圍:

    databricks secrets list-scopes
    

    您也可以使用 秘密 API列出現有的範圍。

    刪除秘密範圍

    刪除秘密範圍會刪除套用至範圍的所有秘密和 ACL。 若要使用 CLI 刪除範圍:

    databricks secrets delete-scope --scope <scope-name>
    

    您也可以使用 秘密 API 刪除秘密範圍。

  •