Ustawianie uprawnień dla zasobów w pakietach zasobów usługi Databricks
W tym artykule opisano sposób ustawiania uprawnień dla zadań usługi Azure Databricks, potoków delta live tables i stosów MLOps w pakietach zasobów usługi Databricks. Zobacz Co to są pakiety zasobów usługi Databricks?.
W plikach konfiguracji pakietu usługi Azure Databricks można zdefiniować uprawnienia do zastosowania do wszystkich zasobów zdefiniowanych w pakiecie lub zdefiniować co najmniej jedno uprawnienie do zastosowania do określonych zasobów.
Uwaga
Uprawnienia nie mogą się nakładać. Innymi słowy, nie można zdefiniować uprawnień dla użytkownika, grupy lub jednostki usługi zarówno w mapowaniu najwyższego poziomu permissions
, jak i w resources
ramach mapowania.
Definiowanie uprawnień do zastosowania do wszystkich zasobów
Uprawnienia do stosowania do wszystkich eksperymentów, zadań, modeli i potoków zdefiniowanych w resources
programie można zdefiniować przy użyciu mapowania najwyższego poziomu permissions
. Zobacz uprawnienia.
Definiowanie uprawnień dla określonego zasobu
Tablicę można użyć w definicji eksperymentu permissions
, zadania, modelu lub potoku, resources
aby zdefiniować co najmniej jedno uprawnienie dla tego zasobu.
Każde uprawnienie w tablicy permissions
musi zawierać następujące dwa mapowania:
- Albo
user_name
,group_name
lubservice_principal_name
, z nazwą użytkownika, grupy lub jednostki usługi, odpowiednio. level
, z nazwą poziomu uprawnień. Dozwolone poziomy uprawnień dla każdego zasobu są następujące:- Eksperymenty:
CAN_EDIT
,CAN_MANAGE
iCAN_READ
. - Zadania:
CAN_MANAGE
, ,CAN_VIEW
CAN_MANAGE_RUN
iIS_OWNER
. - Modele:
CAN_EDIT
, ,CAN_MANAGE_STAGING_VERSIONS
CAN_MANAGE
,CAN_MANAGE_PRODUCTION_VERSIONS
iCAN_READ
. - Potoki:
CAN_MANAGE
, ,CAN_VIEW
CAN_RUN
iIS_OWNER
.
- Eksperymenty:
Aby uzyskać informacje o określonych poziomach uprawnień, zobacz:
- Eksperymenty: listy ACL eksperymentu MLflow
- Zadania: listy ACL zadań
- Modele: listy ACL modelu MLflow
- Potoki: listy ACL tabel delta live
Poniższa składnia pokazuje, jak zadeklarować wiele uprawnień dla każdego typu zasobu w mapowaniu najwyższego poziomu resources
lub resources
mapowanie w obiekcie docelowym (wielokropek wskazuje pominiętą zawartość dla zwięzłości):
# ...
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>
# ...
# ...
Wszystkie uprawnienia zadeklarowane dla zasobu w mapowaniu najwyższego poziomu resources
są łączone ze wszystkimi uprawnieniami zadeklarowanymi dla tego samego resources
mapowania w pojedynczym obiekcie docelowym. Na przykład biorąc pod uwagę następujące resources
mapowanie dla tego samego zasobu zarówno na najwyższym poziomie, jak i w obiekcie docelowym (wielokropek wskazuje pominiętą zawartość dla zwięzłości):
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
# ...
Po uruchomieniu databricks bundle validate
tego przykładu wynikowy wykres jest następujący (wielokropek wskazuje pominiętą zawartość w celu zwięzłości):
{
"...": "...",
"resources": {
"jobs": {
"my-job": {
"permissions": [
{
"level": "CAN_VIEW",
"user_name": "someone@example.com"
},
{
"level": "CAN_RUN",
"user_name": "someone@example.com"
}
],
"...": "..."
}
}
}
}
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla