Aracılığıyla paylaş


Databricks kullanıcı yalıtımını nasıl zorlar?

Bu sayfada Azure Databricks'in paylaşılan işlem ortamlarında kullanıcı yalıtımını ve ayrılmış işlemde ayrıntılı erişim denetimini zorlamak için Lakeguard'ı nasıl kullandığı açıklanmaktadır.

Lakeguard nedir?

Lakeguard, Databricks'te birden çok kullanıcının aynı işlem kaynağını güvenli ve uygun maliyetli bir şekilde paylaşabilmesi ve ayrıcalıklı makine erişimi sunan işlemde ayrıntılı erişim denetimleriyle verilere erişebilmesi için kod yalıtımını ve veri filtrelemeyi zorunlu kılan bir dizi teknolojidir.

Lakeguard nasıl çalışır?

Standart klasik işlem, sunucusuz işlem ve SQL ambarları gibi paylaşılan işlem ortamlarında Lakeguard, kullanıcı kodunu Spark altyapısından ve diğer kullanıcılardan yalıtır. Bu tasarım birçok kullanıcının aynı işlem kaynaklarını paylaşmasına olanak tanırken kullanıcılar, Spark sürücüsü ve yürütücüler arasında katı sınırlar sağlar.

Klasik Spark mimarisi

Aşağıdaki görüntüde, geleneksel Spark mimarisinde kullanıcı uygulamalarının temel makineye ayrıcalıklı erişimi olan bir JVM'yi nasıl paylaştığı gösterilmektedir.

Geleneksel Spark mimarisi

Lakeguard mimarisi

Lakeguard, güvenli kapsayıcılar kullanarak tüm kullanıcı kodlarını yalıtır. Bu, kullanıcılar arasında katı yalıtım sağlarken aynı işlem kaynağında birden çok iş yükünün çalışmasına olanak tanır.

Lakeguard mimarisi

Spark istemci yalıtımı

Lakeguard, istemci uygulamalarını Spark sürücüsünden ve iki anahtar bileşeni kullanarak birbirinden yalıtır:

  • Spark Connect: Lakeguard, istemci uygulamalarını sürücüden ayrıştırmak için Spark Connect'i (Apache Spark 3.4 ile kullanıma sunulmuştur) kullanır. İstemci uygulamaları ve sürücüleri artık aynı JVM'yi veya sınıfyolunu paylaşmaz. Bu ayrım yetkisiz veri erişimini engeller. Bu tasarım, sorgular satır veya sütun düzeyi filtreler içerdiğinde kullanıcıların aşırı getirmeden kaynaklanan verilere erişmesini de engeller.

    Uyarı

    Spark Connect, analiz ve ad çözümlemeyi yürütme zamanına erteler, bu da kodunuzun davranışını değiştirebilir. Bkz. Spark Connect ile Spark Klasik'i karşılaştırma.

  • Kapsayıcı korumalı alanı: Her istemci uygulaması kendi yalıtılmış kapsayıcı ortamında çalışır. Bu, kullanıcı kodunun diğer kullanıcıların verilerine veya temel alınan makineye erişmesini engeller. Korumalı alan, kullanıcılar arasında güvenli sınırlar oluşturmak için kapsayıcı tabanlı yalıtım tekniklerini kullanır.

UDF yalıtımı

Varsayılan olarak, Spark yürütücüleri UDF'leri yalıtmaz. Bu yalıtım eksikliği UDF'lerin dosya yazmasına veya temel makineye erişmesine izin verebilir.

Lakeguard, Spark yürütücüleri üzerinde UDF'ler dahil olmak üzere kullanıcı tanımlı kodu şu şekilde yalıtır:

  • Spark yürütücülerinde yürütme ortamını korumalı alan oluşturma.
  • Yetkisiz dış erişimi önlemek için UDF'lerden çıkış ağ trafiğini yalıtma.
  • Kullanıcıların gerekli kitaplıklara erişebilmesi için istemci ortamını UDF korumalı alanına çoğaltma.

Bu yalıtım, standart işlemdeki UDF'ler ve sunucusuz işlem ve SQL ambarlarında Python UDF'leri için geçerlidir.