Aracılığıyla paylaş


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 diziyi kullanabilirsinizpermissions.

Dizideki permissions her izin aşağıdaki iki eşlemeyi içermelidir:

  • group_nameSırasıyla user_namekullanıcı, grup veya service_principal_namehizmet 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 ve CAN_READ.
    • İşler: CAN_MANAGE, CAN_MANAGE_RUN, CAN_VIEWve IS_OWNER.
    • Modeller: CAN_EDIT, CAN_MANAGE, CAN_MANAGE_STAGING_VERSIONS, CAN_MANAGE_PRODUCTION_VERSIONSve CAN_READ.
    • İşlem hatları: CAN_MANAGE, CAN_RUN, CAN_VIEWve IS_OWNER.

Belirli izin düzeyleri hakkında bilgi için bkz:

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"
          }
        ],
        "...": "..."
      }
    }
  }
}