Erőforrások engedélyeinek beállítása a Databricks-eszközcsomagokban
Ez a cikk bemutatja, hogyan állíthat be engedélyeket az Azure Databricks-feladatokhoz, a Delta Live Tables-folyamatokhoz és az MLOps Stackshez a Databricks-eszközcsomagokban. Lásd: Mik azok a Databricks-eszközcsomagok?.
Az Azure Databricks csomagkonfigurációs fájljaiban meghatározhatja a csomagban definiált összes erőforrásra vonatkozó engedélyeket, vagy meghatározhat egy vagy több, adott erőforrásokra vonatkozó engedélyeket.
Feljegyzés
Az engedélyek nem fedhetők át. Más szóval egy felhasználó, csoport vagy szolgáltatásnév engedélyei nem határozhatók meg mind a legfelső szintű permissions
leképezésben, mind a leképezésen resources
belül.
Az összes erőforrásra vonatkozó engedélyek meghatározása
A legfelső szintű permissions
leképezéssel definiált resources
összes kísérletre, feladatra, modellre és folyamatra vonatkozó engedélyek definiálhatók. Tekintse meg az engedélyeket.
A Databricks ezt a megközelítést javasolja a Databricks Asset Bundles erőforrás-engedélyeinek kezeléséhez.
Adott erőforrás engedélyeinek definiálása
A leképezést permissions
egy kísérletben, feladatban, modellben vagy folyamatdefinícióban resources
használhatja az adott erőforrás egy vagy több engedélyének meghatározásához.
A leképezés minden engedélyének permissions
tartalmaznia kell a következő két leképezést:
- Vagy
user_name
agroup_name
service_principal_name
felhasználó, csoport vagy szolgáltatásnév nevével. level
, az engedélyszint nevével. Az egyes erőforrások engedélyezett engedélyszintjei a következők:- Kísérletek:
CAN_EDIT
ésCAN_MANAGE
CAN_READ
. - Feladatok:
CAN_MANAGE
,CAN_MANAGE_RUN
,CAN_VIEW
ésIS_OWNER
. - Modellek:
CAN_EDIT
,CAN_MANAGE
,CAN_MANAGE_STAGING_VERSIONS
,CAN_MANAGE_PRODUCTION_VERSIONS
ésCAN_READ
. - Folyamatok:
CAN_MANAGE
,CAN_RUN
,CAN_VIEW
ésIS_OWNER
.
- Kísérletek:
Az egyes jogosultsági szintekről a következő témakörben olvashat bővebben:
- Kísérletek: MLflow kísérlet ACL-ek
- Feladatok: Feladat ACL-ek
- Modellek: MLflow-modell ACL-jei
- Folyamatok: Delta Live Tables-folyamat ACL-jei
Feljegyzés
Az erőforrások engedélyezett engedélyszintjei nem feltétlenül alkalmazhatók a legfelső szintű permissions
leképezést használó erőforrásokra. A leképezés érvényes engedélyszintjeiért tekintse meg az permissions
engedélyeket.
Az alábbi szintaxis bemutatja, hogyan deklarálhat több engedélyt az egyes erőforrástípusokhoz, akár a legfelső szintű resources
leképezésben, akár egy resources
célon belüli leképezésben (a három pont a kihagyott tartalmat jelzi a rövidség kedvéért):
# ...
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>
# ...
# ...
A legfelső szintű resources
megfeleltetésben lévő erőforrásokhoz deklarált engedélyek összesítve lesznek az adott leképezéshez resources
deklarált engedélyekkel egy adott célban. Ha például ugyanazt az resources
erőforrást a legfelső szinten és a célban is megfelelteti (a három pont a kihagyott tartalmat jelöli, a rövidség kedvéért):
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
# ...
Ebben databricks bundle validate
a példában az eredményként kapott gráf a következő (a három pont a kihagyott tartalmat jelzi a rövidítéshez):
{
"...": "...",
"resources": {
"jobs": {
"my-job": {
"permissions": [
{
"level": "CAN_VIEW",
"user_name": "someone@example.com"
},
{
"level": "CAN_RUN",
"user_name": "someone@example.com"
}
],
"...": "..."
}
}
}
}