我们如何在 databricks 工作区中找到现有的秘密范围。 Azure Databricks 中的特定 SecretScope 引用了哪个 keyvault?
此命令列出了数据块上的可用范围:
dbutils.secrets.listScopes()
您可以使用以下任一方法执行此操作:
databricks secrets list-scopes
命令将显示您的 KeyVault URL如果您想快速了解秘密范围指的是哪个密钥保管库,保管库的数量相对较少,您可以通过 Azure 门户进行列表访问,并且保管库之间的密钥不同,您可以尝试以下操作:
首先使用以下方式列出范围:
dbutils.secrets.listScopes()
(感谢Matkurek)
然后使用以下方法列出特定范围内的秘密名称:
dbutils.secrets.list("SCOPE_NAME")
这可能会帮助您确定范围指向哪个保管库。
看来唯一的选择是 Alex Ott 描述的 CLI 选项
您可以在 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 中的秘密范围。
我发现识别范围指向的密钥保管库的最快方法是使用 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