Bildirim temelli Otomasyon Paketlerindeki kaynaklar için izinleri ayarlama

Bu makalede, Bildirim temelli Otomasyon Paketlerinde kaynaklar için izinlerin nasıl ayarlanacağı açıklanmaktadır. Paketlerde desteklenen kaynaklar hakkında bilgi için bkz . Bildirim temelli Otomasyon Paketleri kaynakları.

Azure Databricks bundle yapılandırma dosyalarında, pakette tanımlanan tüm kaynaklara uygulanacak izinleri en üst düzeyde tanımlayabilir veya belirli kaynaklara uygulanacak izinler 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 alt düzey resources eşlemede tanımlanamaz.

Tip

Yönetici olmayan kullanıcıların dağıtıldıktan sonra varlıkları değiştirmesini önlemek için paketinizi sabit, salt okunur bir klasöre dağıtın. Bkz. immutable_folder.

Tüm kaynaklara uygulanacak izinleri tanımlama

en üst düzey resources eşlemeyi kullanarak içinde permissions tanımlanan tüm desteklenen kaynaklara uygulanacak izinleri tanımlayabilirsiniz. Databricks, Bildirim temelli Otomasyon Paketleri kaynak izinlerini yönetmek için bu yaklaşımı önerir.

İzinler , user_namegroup_nameveya service_principal_nameiçin izin verilen izin düzeyini tanımlar. İzin verilen en üst düzey izin düzeyleri , CAN_VIEWve CAN_MANAGE'dırCAN_RUN. Üst düzey permissions eşleme hakkında daha fazla bilgi için bkz. izinler.

Aşağıdaki örnek, hedef için dev üst düzey izinleri ayarlar. Kullanıcının someone@example.com üzerinde CAN_RUNizinleri olacaktırmy-job:

bundle:
  name: my-bundle

resources:
  jobs:
    my-job:
      # ...

targets:
  dev:
    # ...
    permissions:
      - user_name: someone@example.com
        level: CAN_RUN

Belirli bir kaynak için izinleri tanımlama

Bir pano, deneme, iş, model veya işlem hattı tanımında permissions eşlemeyi kullanarak, bu kaynak için bir veya daha fazla izin tanımlayabilirsinizresources.

Eşlemedeki permissions her izin aşağıdakileri içermelidir:

  • Sırasıyla user_name, , group_nameveya service_principal_name, kullanıcı, grup veya hizmet sorumlusunun adına ayarlanır.
  • level, izin seviyesinin adı olarak ayarlayın. Her kaynak için izin verilen izin düzeyleri şunlardır:

* Çalışma alanı kullanıcı arabirimi yalnızca görüntüleme erişimini CAN VIEW olarak ifade ederken, İzinler API'sinde aynı erişim düzeyini temsil eden CAN READ kullanılır.

Önemli

Kaynaklar için izin verilen izin düzeyleri, üst düzey permissions eşlemesinin kullanılmasıyla kaynaklara her zaman uygulanamayabilir. En üst düzey permissions eşleme için geçerli izin düzeyleri için bkz. izinler.

Aşağıdaki söz dizimi, en üst düzey resources eşlemede ve resources bir hedef içindeki eşlemede bir kaynak türü (bu örnekte işlem hatları) için izinleri bildirmeyi gösterir:

# ...
resources:
  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:
      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şlemesi göz önünde bulundurulduğunda:

bundle:
  name: my-bundle

resources:
  jobs:
    my-job:
      # ...
      permissions:
        - group_name: test-group
          level: CAN_VIEW
      # ...

targets:
  dev:
    # ...
    resources:
      jobs:
        my-job:
          # ...
          permissions:
            - user_name: someone@example.com
              level: CAN_MANAGE_RUN
          # ...

Bu örnek için databricks bundle validate çalıştırdığınızda, sonuçta elde edilen grafik aşağıdaki gibidir:

{
  "...": "...",
  "resources": {
    "jobs": {
      "my-job": {
        "permissions": [
          {
            "level": "CAN_VIEW",
            "group_name": "test-group"
          },
          {
            "level": "CAN_MANAGE_RUN",
            "user_name": "someone@example.com"
          }
        ],
        "...": "..."
      }
    }
  }
}

Öncelik izin sırası

Paket yapılandırmanızda birden çok yerde tanımladıysanız permissions , kaynaklara, çalışma alanı dizinlerine ve pakette belirtilen dosyalara verilen izinler aşağıdaki sıradadır:

  1. Hedef dağıtımda kaynak için tanımlanan izinler
  2. Hedef dağıtım için tanımlanan izinler
  3. Paketteki kaynak için tanımlanan izinler
  4. Paketin en üst düzey izinlerinde tanımlanan izinler

Örneğin, aşağıdaki yapılandırmada, test-group grubunun CAN_MANAGE hedefindeki iş için dev izinleri, ancak CAN_MANAGE_RUN hedefindeki iş için prod izinleri olacaktır.

bundle:
  name: my-bundle

permissions:
  - group_name: test-group
    level: CAN_VIEW

resources:
  jobs:
    my-job:
      # ...
      permissions:
        - group_name: test-group
          level: CAN_MANAGE_RUN
      # ...

targets:
  dev:
    # ...
    resources:
      jobs:
        my-job:
          # ...
          permissions:
            - group_name: test-group
              level: CAN_MANAGE
          # ...
  prod:
    # ...
    resources:
      jobs:
        my-job:
          # ...