Delen via


Machtigingen instellen voor resources in Databricks Asset Bundles

In dit artikel wordt beschreven hoe u machtigingen instelt voor Azure Databricks-taken, DLT-pijplijnen en MLOps-stacks in Databricks Asset Bundles. Bekijk wat zijn Databricks Asset Bundles?.

In Azure Databricks-bundelconfiguratiebestanden kunt u machtigingen definiëren die van toepassing zijn op alle resources die in de bundel zijn gedefinieerd, of u kunt een of meer machtigingen definiëren om toe te passen op specifieke resources.

Notitie

Machtigingen mogen niet overlappen. Met andere woorden, machtigingen voor een gebruiker, groep of service-principal kunnen niet worden gedefinieerd in zowel de toewijzing op het hoogste niveau permissions als binnen de resources toewijzing.

Machtigingen definiëren die moeten worden toegepast op alle resources

U kunt machtigingen definiëren die van toepassing zijn op alle experimenten, taken, modellen en pijplijnen die zijn gedefinieerd in resources en gebruikmaken van de toewijzing op het hoogste niveau permissions. Zie machtigingen.

Databricks raadt deze methode aan voor het beheren van resourcemachtigingen voor Databricks Asset Bundles.

Machtigingen definiëren voor een specifieke resource

U kunt de permissions toewijzing in een experiment, taak, model of pijplijndefinitie resources gebruiken om een of meer machtigingen voor die resource te definiëren.

Elke toestemming in de permissions toewijzing moet de volgende twee toewijzingen bevatten:

  • Respectievelijk user_name, group_nameof service_principal_name, met de naam van de gebruiker, groep of service-principal.
  • level, met de naam van het machtigingsniveau. Toegestane machtigingsniveaus voor elke resource zijn het volgende:
    • Experimenten: CAN_EDITen CAN_MANAGECAN_READ.
    • Taken: CAN_MANAGE, CAN_MANAGE_RUN, CAN_VIEW en IS_OWNER.
    • Modellen: CAN_EDIT, CAN_MANAGE, CAN_MANAGE_STAGING_VERSIONS, , en CAN_MANAGE_PRODUCTION_VERSIONSCAN_READ.
    • Pijplijnen: CAN_MANAGE, CAN_RUN, en CAN_VIEWIS_OWNER.

Zie voor meer informatie over specifieke machtigingsniveaus:

Notitie

Toegestane machtigingsniveaus voor resources zijn mogelijk niet toepasbaar op resources met behulp van de toewijzing op het hoogste niveau permissions. Voor geldige machtigingsniveaus voor de permissions toewijzing, zie machtigingen.

In de volgende syntaxis ziet u hoe u meerdere machtigingen declareert voor elk resourcetype, hetzij in de toewijzing op het hoogste niveau resources of een resources toewijzing binnen een doel (weglatingstekens geven aan dat inhoud wordt weggelaten, ter beknoptheid):

# ...
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>
          # ...
    # ...

Machtigingen die zijn gedeclareerd voor een resource in de toewijzing op het hoogste niveau resources worden gecombineerd met de machtigingen die voor dezelfde resources toewijzing in een afzonderlijke target zijn gedeclareerd. Bijvoorbeeld, de volgende resources mapping voor dezelfde resource op zowel topniveau als bij een doel (beletseltekens geven de weggelaten inhoud aan, voor beknoptheid):

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
          # ...

Wanneer u voor dit voorbeeld uitvoert databricks bundle validate , ziet de resulterende grafiek er als volgt uit (weglatingstekens geven de weggelaten inhoud aan, ter beknoptheid):

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