Delen via


Allowlist-bibliotheken en init-scripts voor berekening met standaardtoegangsmodus (voorheen modus voor gedeelde toegang)

In Databricks Runtime 13.3 LTS en hoger bepaalt de allowlist in Unity Catalog welke bibliotheken en init-scripts op standaardtoegangsmodus compute kunnen worden uitgevoerd. Hierdoor kunnen gebruikers gebruikmaken van deze artefacten op berekeningen die zijn geconfigureerd met de standaardtoegangsmodus.

De acceptatielijst is standaard leeg. U kunt deze functie niet uitschakelen. Als u de acceptatielijst wilt wijzigen, moet u over de MANAGE ALLOWLIST bevoegdheid beschikken. Zie BEHEREN VAN ALLOWLIST.

U kunt een map of bestand toevoegen aan de acceptatielijst, zelfs als deze nog niet is gemaakt. Zie Werken met bestanden in Unity Catalog-volumes.

Belangrijk

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

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

Beveiligings- en operationele risico's

Inzicht in de beveiligingsproblemen van acceptatielijsten is essentieel voor het onderhouden van clusterisolatie en het beveiligen van uw gegevens op standaardtoegangsmodus berekenen. Het juiste gebruik van de acceptatielijst voorkomt dat gebruikers willekeurige bibliotheken en init-scripts toevoegen. Dit vermindert de kans op beveiligingsproblemen, clusterinstabiliteit en ander onvoorspelbaar gedrag.

Denk goed na over wie de MANAGE ALLOWLIST bevoegdheden ontvangt. Gebruikers met MANAGE ALLOWLIST bevoegdheden kunnen elk pad of Maven-coördinaat toestaan, waardoor effectief kan worden bepaald welke code kan worden uitgevoerd op standaardtoegangsmodus berekenen.

Als metastore-beheerder controleert u regelmatig items op de acceptatielijst en controleert u of ze afkomstig zijn van vertrouwde bronnen. Op de toelatingslijst geplaatste artefacten hebben toegang tot clusterbronnen en gebruikersgegevens, en moeten daarom aan dezelfde beveiligings- en governancecontrolemechanismen worden onderworpen als andere gevoelige onderdelen.

Databricks raadt deze aanbevolen procedures aan voor het beheren van de acceptatielijst:

  • Verdeel de MANAGE ALLOWLIST bevoegdheid alleen aan metastore-beheerders en vertrouwde platformbeheerders. Verleen MANAGE ALLOWLIST aan andere gebruikers alleen tijdelijk en indien nodig.
  • Regelmatig toevoegingen aan de toelatingslijst beoordelen en auditeren.
  • Gebruik specifieke paden en Maven-coördinaten in plaats van brede patronen.
  • Opslaglocaties configureren voor toegestane artefacten met alleen-lezenmachtigingen.
  • Implementeer een formeel goedkeuringsproces voor toegestane toevoegingen in productieomgevingen.
  • Test toegestane bibliotheken en init-scripts in niet-productieomgevingen voordat u ze toevoegt aan acceptatielijsten voor productie.

Hoe items toe te voegen aan de acceptatielijst

U kunt items toevoegen aan de allowlistCatalog Explorer 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 het pictogram Gegevens.Catalogus.
  2. Klik op het tandwielpictogram.
  3. Klik op de naam van de metastore om de UI-details en machtigingen van de metastore te openen.
  4. Selecteer Toegestane JARs/Init-scripts.
  5. 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 toevoegen van bibliotheken en init-scripts aan de acceptatielijst.

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. Voor type, selecteer JAR.
  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

Belangrijk

Voordat u Maven-coördinaten toevoegt aan de acceptatielijst, moet u de machtigingen CAN ATTACH TO en CAN MANAGE hebben ingesteld op de berekening waar u de bibliotheek wilt installeren. Zie rekenmachtigingen.

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 gehandhaafd in de toegestane lijst?

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 directory in plaats van een bestand toevoegt, worden toestemmingen op de toelatingslijst doorgegeven aan de bijbehorende bestanden en directories.

Voorvoegselkoppeling wordt gebruikt voor alle artefacten die zijn opgeslagen in Unity Catalog-volumes of objectopslag. Om te voorkomen dat het voorvoegsel overeenkomt op een bepaald mapniveau, dient u een afsluitende slash (/) toe te voegen. Voert bijvoorbeeld /Volumes/prod-libraries/ geen voorvoegselkoppeling uit voor bestanden met een voorvoegsel prod-libraries. In plaats daarvan worden alle bestanden en mappen in /Volumes/prod-libraries/ de acceptatielijst toegevoegd.

U kunt machtigingen definiëren op de volgende niveaus:

  1. Het basispad voor het volume of de opslagcontainer.
  2. Een map die is ingebed op elke diepte vanaf 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 entiteit die wordt gebruikt als principal moet voor het opgegeven volume READ VOLUME machtigingen hebben. Zie READ VOLUME.

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

In de standaardtoegangsmodus:

  • 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 standaardtoegangsmodus.

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 voor het beheren van toegang tot JAR's of init-scripts die zijn opgeslagen in Azure Data Lake Storage. Gebruik de volgende gekoppelde documentatie om deze installatie te voltooien:

  1. Maak een service-principal met lees- en lijsttoegang voor uw gekozen blobs. Zie Toegang tot opslag met behulp van een service-principal en Microsoft Entra ID (Azure Active Directory).

  2. Sla uw inloggegevens op met geheimen. Zie Geheimen beheren.

  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) Initscripts opnieuw structureren 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.