Nastavení oprávnění pro prostředky v balíčcích prostředků Databricks
Tento článek popisuje, jak nastavit oprávnění pro úlohy Azure Databricks, kanály Delta Live Tables a zásobníky MLOps v sadách prostředků Databricks. Podívejte se, co jsou sady prostředků Databricks?
V konfiguračních souborech sady Azure Databricks můžete definovat oprávnění, která se mají použít pro všechny prostředky definované v sadě, nebo můžete definovat jedno nebo více oprávnění, která se mají použít pro konkrétní prostředky.
Poznámka:
Oprávnění se nesmí překrývat. Jinými slovy, oprávnění pro uživatele, skupinu nebo instanční objekt nelze definovat v mapování nejvyšší úrovně permissions
i v rámci resources
mapování.
Definování oprávnění, která se mají použít pro všechny prostředky
Můžete definovat oprávnění, která se mají použít pro všechny experimenty, úlohy, modely a kanály definované pomocí resources
mapování nejvyšší úrovně permissions
. Zobrazit oprávnění
Databricks doporučuje tento přístup ke správě oprávnění prostředků Sady prostředků Databricks.
Definování oprávnění pro konkrétní prostředek
Mapování můžete použít permissions
v definici resources
experimentu, úlohy, modelu nebo kanálu k definování jednoho nebo více oprávnění pro daný prostředek.
Každé oprávnění v permissions
mapování musí obsahovat následující dvě mapování:
- Buď
user_name
,group_name
neboservice_principal_name
, s názvem uživatele, skupiny nebo instančního objektu, v uvedeném pořadí. level
s názvem úrovně oprávnění. Povolené úrovně oprávnění pro každý prostředek jsou následující:- Experimenty:
CAN_EDIT
CAN_MANAGE
aCAN_READ
. - Pracovní místa:
CAN_MANAGE
,CAN_MANAGE_RUN
,CAN_VIEW
aIS_OWNER
. - Modely:
CAN_EDIT
, ,CAN_MANAGE_STAGING_VERSIONS
CAN_MANAGE
,CAN_MANAGE_PRODUCTION_VERSIONS
aCAN_READ
. - Kanály:
CAN_MANAGE
,CAN_RUN
,CAN_VIEW
aIS_OWNER
.
- Experimenty:
Informace o konkrétních úrovních oprávnění najdete tady:
- Experimenty: Seznamy ACL experimentu MLflow
- Úlohy: Seznamy ACL úloh
- Modely: Seznamy ACL modelu MLflow
- Kanály: Seznamy ACL kanálu Delta Live Tables
Poznámka:
Povolené úrovně oprávnění pro prostředky nelze nutně použít u prostředků pomocí mapování nejvyšší úrovně permissions
. Platné úrovně oprávnění pro permissions
mapování najdete v tématu Oprávnění.
Následující syntaxe ukazuje, jak deklarovat více oprávnění pro každý typ prostředku, a to buď v mapování nejvyšší úrovně resources
, nebo resources
mapování v rámci cíle (tři tečky označují vynechaný obsah pro stručnost):
# ...
resources:
experiments:
<some-programmatic-identifier-for-this-experiment>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
jobs:
<some-programmatic-identifier-for-this-job>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
models:
<some-programmatic-identifier-for-this-model>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
pipelines:
<some-programmatic-identifier-for-this-pipeline>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name-1> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
targets:
<some-programmatic-identifier-for-this-target>:
resources:
experiments:
<some-programmatic-identifier-for-this-experiment>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
jobs:
<some-programmatic-identifier-for-this-job>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
models:
<some-programmatic-identifier-for-this-model>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
pipelines:
<some-programmatic-identifier-for-this-pipeline>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
# ...
Všechna oprávnění deklarovaná pro prostředek v mapování nejvyšší úrovně resources
se zkombinují se všemi oprávněními, která jsou deklarována pro stejné resources
mapování v jednotlivých cílech. Například při následujícím resources
mapování pro stejný prostředek na nejvyšší úrovni i v cíli (tři tečky označují vynechaný obsah pro stručnost):
bundle:
name: my-bundle
resources:
jobs:
my-job:
# ...
permissions:
- user_name: someone@example.com
level: CAN_VIEW
# ...
targets:
dev:
# ...
resources:
jobs:
my-job:
# ...
permissions:
- user_name: someone@example.com
level: CAN_RUN
# ...
Při spuštění databricks bundle validate
v tomto příkladu je výsledný graf následující (tři tečky označují vynechaný obsah pro stručnost):
{
"...": "...",
"resources": {
"jobs": {
"my-job": {
"permissions": [
{
"level": "CAN_VIEW",
"user_name": "someone@example.com"
},
{
"level": "CAN_RUN",
"user_name": "someone@example.com"
}
],
"...": "..."
}
}
}
}