Megosztás a következőn keresztül:


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_namea group_nameservice_principal_namefelhaszná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és CAN_MANAGE CAN_READ.
    • Feladatok: CAN_MANAGE, CAN_MANAGE_RUN, CAN_VIEWés IS_OWNER.
    • Modellek: CAN_EDIT, CAN_MANAGE, CAN_MANAGE_STAGING_VERSIONS, CAN_MANAGE_PRODUCTION_VERSIONSés CAN_READ.
    • Folyamatok: CAN_MANAGE, CAN_RUN, CAN_VIEWés IS_OWNER.

Az egyes jogosultsági szintekről a következő témakörben olvashat bővebben:

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