作为管理员,我希望用户被迫使用 Databricks SQL 风格的权限模型,即使在数据工程和机器学习配置文件中也是如此。
在 Databricks SQL 中,我有一个数据访问策略集,我的 sql 端点/仓库使用它并且模式具有分配给组的权限。用户通过端点查询数据并查看他们有权访问的内容。所以,这很好用。
我希望在数据工程和机器学习角色中发生同样的事情。
作为第一步,我设置了一个集群策略,它定义了 spark 配置(在连接到数据湖的秘密范围内)并且还强制表 ACL。 问题是非管理员,没有权限读取秘密范围。
有没有办法,我仍然可以通过定义的集群策略灵活地让他们创建自己的集群,并仍然强制表 ACL?
我读过的大多数文档似乎都指出我必须明确创建集群供他们使用(共享集群)。
有没有办法解决这个问题。
例如这就是我第一次尝试集群策略的样子(模仿 SQL 端点的数据访问策略)
{
"cluster_type": {
"type": "fixed",
"value": "all-purpose"
},
"num_workers": {
"type": "range",
"maxValue": 4,
"isOptional": true
},
"autotermination_minutes": {
"type": "range",
"minValue": 1,
"maxValue": 60,
"defaultValue": 60
},
"autoscale.max_workers": {
"type": "range",
"maxValue": 4,
"isOptional": true
},
"spark_conf.spark.databricks.acl.dfAclsEnabled": {
"type": "fixed",
"value": "true"
},
"spark_conf.spark.databricks.repl.allowedLanguages": {
"type": "fixed",
"value": "python,sql"
},
"spark_conf.spark.databricks.cluster.profile": {
"type": "fixed",
"value": "serverless"
},
"spark_conf.spark.hadoop.fs.azure.account.auth.type.datalake.dfs.core.windows.net": {
"type": "fixed",
"value": "OAuth"
},
"spark_conf.spark.hadoop.fs.azure.account.oauth.provider.type.datalake.dfs.core.windows.net": {
"type": "fixed",
"value": "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider"
},
"spark_conf.spark.hadoop.fs.azure.account.oauth2.client.id.datalake.dfs.core.windows.net": {
"type": "fixed",
"value": "{{secrets/SQLEndpoint/ClientID}}"
},
"spark_conf.spark.hadoop.fs.azure.account.oauth2.client.secret.datalake.dfs.core.windows.net": {
"type": "fixed",
"value": "{{secrets/SQLEndpoint/ClientSecret}}"
},
"spark_conf.spark.hadoop.fs.azure.account.oauth2.client.endpoint.datalake.dfs.core.windows.net": {
"type": "fixed",
"value": "https://login.microsoftonline.com/123456/oauth2/token"
}
}
但问题当然是,他们(非管理员)无权读取用于连接到数据湖的秘密范围。 即没有阅读权限
{{secrets/SQLEndpoint/ClientSecret}}
没有办法让他们可以创建自己的集群(通过定义的策略)并拥有数据块 sql 样式的权限吗?
唯一的出路是我事先创建一个共享集群供他们使用吗?