Allowlist-bibliotheken en init-scripts op gedeelde rekenkracht

In Databricks Runtime 13.3 LTS en hoger kunt u bibliotheken en init-scripts toevoegen aan de allowlist in Unity Catalog. Hierdoor kunnen gebruikers gebruikmaken van deze artefacten op rekenkracht die is geconfigureerd met de modus voor gedeelde toegang.

U kunt een map of bestandspad toestaan voordat die map of dat bestand bestaat. Zie Bestanden uploaden naar een Unity Catalog-volume.

Notitie

U moet een metastore-beheerder zijn of de MANAGE ALLOWLIST bevoegdheid hebben om de acceptatielijst te wijzigen. Zie ALLOWLIST BEHEREN.

Belangrijk

Voor bibliotheken die worden gebruikt als JDBC-stuurprogramma's of aangepaste Spark-gegevensbronnen op gedeelde compute met Unity Catalog zijn machtigingen vereist ANY FILE .

Sommige geïnstalleerde bibliotheken slaan gegevens van alle gebruikers op in één algemene tijdelijke map. Deze bibliotheken kunnen gebruikersisolatie in gevaar komen.

Items toevoegen aan de acceptatielijst

U kunt items toevoegen aan catalog allowlistexplorer of de REST API.

Ga als volgt te werk om het dialoogvenster voor het toevoegen van items aan de acceptatielijst in Catalog Explorer te openen:

  1. Klik in uw Azure Databricks-werkruimte op CataloguspictogramCatalogus.
  2. Klik Tandwielpictogram hier om de details en machtigingen van de metastore te openen.
  3. Selecteer Toegestane JARs/Init-scripts.
  4. Klik op Toevoegen.

Belangrijk

Deze optie wordt alleen weergegeven voor gebruikers met voldoende bevoegdheden. Als u geen toegang hebt tot de gebruikersinterface van de acceptatielijst, neemt u contact op met uw metastore-beheerder voor hulp bij het toestaan van bibliotheken en init-scripts.

Een init-script toevoegen aan de acceptatielijst

Voer de volgende stappen uit in het dialoogvenster Allowlist om een init-script toe te voegen aan de acceptatielijst:

  1. Voor Type selecteert u Init-script.
  2. Voor brontype selecteert u Volume of het protocol voor objectopslag.
  3. Geef het bronpad op dat moet worden toegevoegd aan de acceptatielijst. Zie Hoe worden machtigingen voor paden afgedwongen in de acceptatielijst?

Een JAR toevoegen aan de acceptatielijst

Voer de volgende stappen uit in het dialoogvenster Allowlist om een JAR toe te voegen aan de acceptatielijst:

  1. Selecteer JAR voor Type.
  2. Voor brontype selecteert u Volume of het protocol voor objectopslag.
  3. Geef het bronpad op dat moet worden toegevoegd aan de acceptatielijst. Zie Hoe worden machtigingen voor paden afgedwongen in de acceptatielijst?

Maven-coördinaten toevoegen aan de acceptatielijst

Voer de volgende stappen uit in het dialoogvenster Allowlist om Maven-coördinaten toe te voegen aan de acceptatielijst:

  1. Selecteer Maven bij Type.
  2. Selecteer Coördinaten voor brontype.
  3. Voer coördinaten in de volgende indeling in: groudId:artifactId:version.
    • U kunt alle versies van een bibliotheek opnemen door de volgende indeling toe te staan: groudId:artifactId
    • U kunt alle artefacten in een groep opnemen door de volgende indeling toe te staan: groupId

Hoe worden machtigingen voor paden afgedwongen in de acceptatielijst?

U kunt de acceptatielijst gebruiken om toegang te verlenen tot JAR's of init-scripts die zijn opgeslagen in Unity Catalog-volumes en objectopslag. Als u een pad voor een map in plaats van een bestand toevoegt, worden machtigingen voor acceptatielijsten doorgegeven aan ingesloten bestanden en mappen.

Voorvoegselkoppeling wordt gebruikt voor alle artefacten die zijn opgeslagen in Unity Catalog-volumes of objectopslag. Als u wilt voorkomen dat het voorvoegsel op een bepaald adreslijstniveau overeenkomt, moet u een afsluitende slash (/) opnemen. Voorbeeld: /Volumes/prod-libraries/.

U kunt machtigingen definiëren op de volgende niveaus:

  1. Het basispad voor het volume of de opslagcontainer.
  2. Een map die is genest op elke diepte van het basispad.
  3. Eén bestand.

Het toevoegen van een pad aan de acceptatielijst betekent alleen dat het pad kan worden gebruikt voor init-scripts of JAR-installatie. Azure Databricks controleert nog steeds op machtigingen voor toegang tot gegevens op de opgegeven locatie.

De gebruikte principal moet machtigingen hebben READ VOLUME voor het opgegeven volume. Zie SELECT.

In de toegangsmodus voor één gebruiker wordt de identiteit van de toegewezen principal (een gebruiker of service-principal) gebruikt.

In de modus voor gedeelde toegang:

  • Bibliotheken gebruiken de identiteit van het installatieprogramma voor bibliotheken.
  • Init-scripts gebruiken de identiteit van de clustereigenaar.

Notitie

Gedeelde toegangsmodus zonder isolatie biedt geen ondersteuning voor volumes, maar maakt gebruik van dezelfde identiteitstoewijzing als de modus voor gedeelde toegang.

Databricks raadt aan om alle bevoegdheden voor objectopslag te configureren die betrekking hebben op init-scripts en -bibliotheken met alleen-lezenmachtigingen. Gebruikers met schrijfmachtigingen op deze locaties kunnen mogelijk code wijzigen in bibliotheekbestanden of init-scripts.

Databricks raadt aan om service-principals van Microsoft Entra ID te gebruiken om de toegang tot JAR's of init-scripts te beheren die zijn opgeslagen in Azure Data Lake Storage Gen2. Gebruik de volgende gekoppelde documentatie om deze installatie te voltooien:

  1. Maak een service-principal met lees- en lijstmachtigingen voor uw gewenste blobs. Zie Access Storage met behulp van een service-principal en Microsoft Entra ID (Azure Active Directory).

  2. Sla uw referenties op met behulp van geheimen. Zie geheimen.

  3. Stel de eigenschappen in de Spark-configuratie en omgevingsvariabelen in tijdens het maken van een cluster, zoals in het volgende voorbeeld:

    Spark-configuratie:

    spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth
    spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
    spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id>
    spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}}
    spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<tenant-id>/oauth2/token
    

    Omgevingsvariabelen:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Optioneel) Init-scripts herstructureren met azcopy of de Azure CLI.

    U kunt verwijzen naar omgevingsvariabelen die zijn ingesteld tijdens de clusterconfiguratie in uw init-scripts om referenties door te geven die zijn opgeslagen als geheimen voor validatie.

Notitie

Allowlist-machtigingen voor JAR's en init-scripts worden afzonderlijk beheerd. Als u dezelfde locatie gebruikt om beide typen objecten op te slaan, moet u de locatie voor elk object toevoegen aan de acceptatielijst.