Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Op deze pagina wordt uitgelegd hoe Azure Databricks Lakeguard gebruikt om gebruikersisolatie af te dwingen in gedeelde rekenomgevingen en gedetailleerd toegangsbeheer in toegewezen berekeningen.
Wat is Lakeguard?
Lakeguard is een reeks technologieën op Databricks die code-isolatie en gegevensfiltering afdwingen, zodat meerdere gebruikers veilig en kostenefficiënt dezelfde rekenkracht kunnen delen en toegang hebben tot gegevens met gedetailleerde toegangsbeheer, waarbij op de rekenkracht middelen beschikbaar zijn voor geprivilegieerde machine toegang.
Hoe werkt Lakeguard?
In gedeelde rekenomgevingen, zoals standaard klassieke berekeningen, serverloze berekeningen en SQL-magazijnen, isoleert Lakeguard de gebruikerscode van de Spark-engine en van andere gebruikers. Dit ontwerp stelt veel gebruikers in staat om dezelfde rekenresources te delen en tegelijkertijd strikte grenzen te houden tussen gebruikers, het Spark-stuurprogramma en de uitvoerders.
Klassieke Spark-architectuur
In de volgende afbeelding ziet u hoe gebruikerstoepassingen in de traditionele Spark-architectuur een JVM delen met bevoegde toegang tot de onderliggende machine.
Lakeguard-architectuur
Lakeguard isoleert alle gebruikerscode met behulp van beveiligde containers. Hierdoor kunnen meerdere workloads op dezelfde rekenresource worden uitgevoerd, terwijl strikte isolatie tussen gebruikers wordt gehandhaafd.
Spark-clientisolatie
Lakeguard isoleert clienttoepassingen van het Spark-stuurprogramma en van elkaar met behulp van twee belangrijke onderdelen:
Spark Connect: Lakeguard maakt gebruik van Spark Connect (geïntroduceerd met Apache Spark 3.4) om clienttoepassingen los te koppelen van het stuurprogramma. Clienttoepassingen en -stuurprogramma's delen niet langer hetzelfde JVM- of klassepad. Deze scheiding voorkomt onbevoegde toegang tot gegevens. Dit ontwerp voorkomt ook dat gebruikers toegang krijgen tot gegevens die het gevolg zijn van te veel ophalen wanneer query's filters op rij- of kolomniveau bevatten.
Opmerking
Spark Connect zorgt ervoor dat analyse en naamomzetting worden uitgesteld tot uitvoeringstijd, waardoor het gedrag van uw code kan worden gewijzigd. Zie Spark Connect vergelijken met Spark Classic.
Container-sandboxing: elke clienttoepassing wordt uitgevoerd in een eigen geïsoleerde containeromgeving. Dit voorkomt dat gebruikerscode toegang heeft tot de gegevens van andere gebruikers of de onderliggende computer. De sandboxing maakt gebruik van isolatietechnieken op basis van containers om veilige grenzen tussen gebruikers te maken.
UDF-isolatie
Spark-uitvoerders isoleren standaard geen UDF's. Door een gebrek aan isolatie kunnen UDF's bestanden schrijven of toegang krijgen tot de onderliggende computer.
Lakeguard isoleert door de gebruiker gedefinieerde code, inclusief UDF's, op Spark-uitvoerders door:
- Sandboxing van de uitvoeringsomgeving op Spark-uitvoerders.
- Uitgaand netwerkverkeer van UDF's isoleren om onbevoegde externe toegang te voorkomen.
- Het repliceren van de clientomgeving in de UDF-sandbox, zodat gebruikers toegang hebben tot vereiste bibliotheken.
Deze isolatie is van toepassing op UDF's op standaard compute en op Python UDF's op serverloze berekeningen en SQL-warehouses.