Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.
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.
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.