PERMISSION_DENIED:指定 KeyVault 的权限无效

问题描述 投票:0回答:4
com.databricks.common.client.DatabricksServiceHttpClientException:
PERMISSION_DENIED: Invalid permissions on the specified KeyVault https://azkv*.vault.azure.net/.
Wrapped Message:
  Status code 403,
  {"error":
    {"code":"Forbidden","message":
       "Caller is not authorized to perform action on resource.\r\n
        If role assignments, deny assignments or role definitions were changed recently, please observe propagation time.\r\n
        Caller: name=AzureDatabricks;appid=2vf8v4a6-3304-4ab8-85cb-cd0e6f879c1d;oid=4e924d0e-ad49-4acc-baec-6d612e920502;iss=https://sts.windows.net/552af62d-5878-4131-8695-1e87b0f89945/\r\n
        Action: 'Microsoft.KeyVault/vaults/secrets/getSecret/action'\r\n
        Resource: '/subscriptions/6b60a61d-3e92-4501-8794-fd7725066113/resourcegroups/streamproject/providers/microsoft.keyvault/vaults/azkv*/secrets/clientsecret'\r\n
        Assignment: (not found)\r\n
        DecisionReason: 'DeniedWithNoValidRBAC' \r\n
        Vault: azkv*;location=eastus\r\n",
      "innererror":{"code":"ForbiddenByRbac"}
    }
  }

我一直在尝试使用服务主体和秘密范围将 ADLS 安装到 databricks。我似乎无法访问密钥保管库。

我该如何解决这个问题?

azure azure-databricks azure-keyvault azure-data-lake-gen2
4个回答
2
投票

您必须在访问策略边栏选项卡中添加身份

然后设置秘密范围所需的权限

稍后选择您的databrick对应的服务主体

然后您创建策略

希望这有帮助!


1
投票

首先,在 Azure 门户上的 Key Vault -> 设置 -> 访问配置下检查您的 Key-Vault 权限模型。

Azure keyvault 主要允许使用两种权限模型访问 Key Vault。

  1. Azure 基于角色的访问控制(推荐)
  2. 保险库访问政策

如果您使用的是 Azure 基于角色的访问控制(推荐),请确保您已从密钥保管库的访问控制 (IAM) 部分向服务主体授予“密钥保管库管理员”角色。

如果您使用保管库访问策略,请确保您已在密钥保管库的访问策略部分下为您的服务主体添加了具有必要权限的策略。

大多数情况下,这可能会解决您的问题。


1
投票

我刚刚遇到了类似的问题。这是我解决问题的方法。或许对你也有帮助。

我在 Key Vault 中使用 RBAC。我必须为我的 Databricks 应用程序授予“Key Vault 管理员”角色。我遇到的问题是,在 Key Vault 的访问控制中列出 Databricks 应用程序的对象 ID 时,我找不到 Databricks 应用程序。因此,我遵循了这些步骤。通过 Azure CLI 添加我的角色后:

az role assignment create --assignee-object-id 11111111-1111-1111-1111-111111111111  --role "Key Vault Administrator" --scope "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}"

然后我就不再收到 RBAC 错误了。这与使用服务主体无关。祝你好运!


0
投票

有这方面的消息吗?我也有同样的情况,我已经根据官方 Databricks/Azure 文档设置了 RBAC 的所有内容。 但是当我尝试从 Databricks 笔记本内部连接时,我被拒绝并收到 OP 的错误消息。

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