【发布时间】:2020-11-18 12:44:25
【问题描述】:
我想通过 Databricks REST API 2.0 创建一个 Secret Scope。
当我使用 SPN 进行 az login 时,运行请求 /api/2.0/secrets/scopes/create 时出现下一个错误
{"error_code":"CUSTOMER_UNAUTHORIZED","message":"Unable to grant read/list permission to Databricks service principal to KeyVault 'https://dtbrcks-kvxxx.vault.azure.net/': key not found: https://management.core.windows.net/"}%
但是当我使用用户登录时,相同的代码运行良好!
SPN 和用户对 Databricks(所有者/管理员)和 Keyvault(所有者)资源具有相同的权限。
使用 SPN 进行此操作需要什么?
为了获取访问令牌,我使用命令
az login --service-principal
access_token=$(az account get-access-token \
--resource 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d \
--query "accessToken" \
--output tsv)
下一个使用 Azure Keyvault 创建 Secret Scope 的代码:
curl -X POST \-H "Authorization: Bearer $access_token" \
-H 'Content-Type: application/json' \
-d '{"scope":"keyvault-scope","scope_backend_type":"AZURE_KEYVAULT","backend_azure_keyvault":{"resource_id":"/subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.KeyVault/vaults/$kvname","dns_name":"$kv_url"}}' \
"$dtbrcks_url/api/2.0/secrets/scopes/create"
【问题讨论】:
标签: azure-devops azure-active-directory azure-keyvault azure-databricks