Databricks Varlık Paketlerindeki kaynaklar için izinleri ayarlama
Bu makalede, Databricks Varlık Paketlerinde Azure Databricks işleri, Delta Live Tables işlem hatları ve MLOps Yığınları için izinlerin nasıl ayarlanacağı açıklanmaktadır. Bkz . Databricks Varlık Paketleri nedir?.
Azure Databricks paket yapılandırma dosyalarında, pakette tanımlanan tüm kaynaklara uygulanacak izinleri tanımlayabilir veya belirli kaynaklara uygulanacak bir veya daha fazla izin tanımlayabilirsiniz.
Not
İzinler çakışamaz. Başka bir deyişle, kullanıcı, grup veya hizmet sorumlusu izinleri hem üst düzey permissions
eşlemede hem de eşleme içinde resources
tanımlanamaz.
Tüm kaynaklara uygulanacak izinleri tanımlama
En üst düzey permissions
eşlemeyi kullanarak içinde resources
tanımlanan tüm denemelere, işlere, modellere ve işlem hatlarına uygulanacak izinleri tanımlayabilirsiniz. Bkz. izinler.
Belirli bir kaynak için izinleri tanımlama
Bu kaynak için bir veya daha fazla izin tanımlamak için içindeki bir deneme, iş, model veya işlem hattı tanımında resources
eşlemeyi kullanabilirsinizpermissions
.
Eşlemedeki permissions
her izin aşağıdaki iki eşlemeyi içermelidir:
group_name
Sırasıylauser_name
kullanıcı, grup veyaservice_principal_name
hizmet sorumlusu adıyla , veya .level
, izin düzeyinin adıyla birlikte. Her kaynak için izin verilen izin düzeyleri şunlardır:- Denemeler:
CAN_EDIT
,CAN_MANAGE
veCAN_READ
. - İşler:
CAN_MANAGE
,CAN_MANAGE_RUN
,CAN_VIEW
veIS_OWNER
. - Modeller:
CAN_EDIT
,CAN_MANAGE
,CAN_MANAGE_STAGING_VERSIONS
,CAN_MANAGE_PRODUCTION_VERSIONS
veCAN_READ
. - İşlem hatları:
CAN_MANAGE
,CAN_RUN
,CAN_VIEW
veIS_OWNER
.
- Denemeler:
Belirli izin düzeyleri hakkında bilgi için bkz:
- Denemeler: MLflow deneme ACL'leri
- İşler: İş ACL'leri
- Modeller: MLflow modeli ACL'leri
- İşlem Hatları: Delta Live Tables ACL'leri
Not
Kaynaklar için izin verilen izin düzeyleri, üst düzey permissions
eşleme kullanılarak kaynaklara uygulanamaz. Eşleme için geçerli izin düzeyleri için permissions
bkz . izinler.
Aşağıdaki söz dizimi, her kaynak türü için en üst düzey resources
eşlemede veya bir hedef içindeki eşlemede resources
birden çok izin bildirmeyi gösterir (üç nokta, kısa süre için atlanmış içeriği gösterir):
# ...
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>
# ...
# ...
Üst düzey resources
eşlemedeki bir kaynak için bildirilen tüm izinler, tek bir hedefte aynı resources
eşleme için bildirilen izinlerle birleştirilir. Örneğin, aynı kaynak için hem üst düzeyde hem de hedefte aşağıdaki resources
eşleme göz önünde bulundurulduğunda (üç nokta, kısa süre için atlanmış içeriği gösterir):
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
# ...
Bu örnek için çalıştırdığınızda databricks bundle validate
, sonuçta elde edilen grafik aşağıdaki gibidir (üç nokta kısalık için atlanmış içeriği gösterir):
{
"...": "...",
"resources": {
"jobs": {
"my-job": {
"permissions": [
{
"level": "CAN_VIEW",
"user_name": "someone@example.com"
},
{
"level": "CAN_RUN",
"user_name": "someone@example.com"
}
],
"...": "..."
}
}
}
}