列出databricks秘密范围并在azure databricks中查找引用的keyvault

问题描述 投票:0回答:5

我们如何在 databricks 工作区中找到现有的秘密范围。 Azure Databricks 中的特定 SecretScope 引用了哪个 keyvault?

databricks azure-databricks azure-keyvault
5个回答
13
投票

此命令列出了数据块上的可用范围:

dbutils.secrets.listScopes()

5
投票

您可以使用以下任一方法执行此操作:


3
投票

如果您想快速了解秘密范围指的是哪个密钥保管库,保管库的数量相对较少,您可以通过 Azure 门户进行列表访问,并且保管库之间的密钥不同,您可以尝试以下操作:

首先使用以下方式列出范围:

dbutils.secrets.listScopes()
(感谢Matkurek)

然后使用以下方法列出特定范围内的秘密名称:

dbutils.secrets.list("SCOPE_NAME")

这可能会帮助您确定范围指向哪个保管库。

看来唯一的选择是 Alex Ott 描述的 CLI 选项


0
投票

您可以在 Python 中尝试此代码片段:

import pandas
import json
import requests

# COMMAND ----------

# MAGIC %md ### define variables

# COMMAND ----------

pat           = 'EnterPATHere'           # paste PAT. Get it from settings > user settings
workspaceURL  = 'EnterWorkspaceURLHere'  # paste the workspace url in the format of 'https://adb-1234567.89.azuredatabricks.net' Note, the URL must not end with '/'

# COMMAND ----------

# MAGIC %md ### list secret scopes

# COMMAND ----------

response = requests.get(workspaceURL + '/api/2.0/secrets/scopes/list',\
            headers = {'Authorization' :      'Bearer '+ pat,\
            'Content-Type': 'application/json'})

pandas.json_normalize(json.loads(response.content), record_path = 'scopes')

我碰巧写了一篇关于此的博客文章,其中提供了完整的 Python 脚本来管理 Azure Databricks 中的秘密范围。


0
投票

我发现识别范围指向的密钥保管库的最快方法是使用 Secret API。首先,在 Databricks 工作区中,转到设置 → 开发人员 → 管理访问令牌以生成 PAT。然后您可以在终端中运行curl命令来检索范围的详细信息:

curl -X GET -H "Authorization: Bearer <your-PAT> \
https://<databricks-host>/api/2.0/secrets/scopes/list

# response
{
  "scopes": [
    {
      "name": "<scope-name",
      "backend_type": "AZURE_KEYVAULT",
      "keyvault_metadata": {
        "resource_id": "<resource-id>",
        "dns_name": "<dns-name>"
      }
    },
    ...
}

参考:https://docs.databricks.com/api/azure/workspace/secrets/listscopes

© www.soinside.com 2019 - 2024. All rights reserved.