Ayrılmış işlem grubu erişimi

Azure Databricks'te adanan grup işlemi, atanmış bir grubun izinlerini kullanarak notebooklar ve işler çalıştırır. Hesaplama kaynağını grup üyeleri ve grubu devralma izni olan kullanıcılarla paylaşabilirsiniz.

Özel grup erişim modu, kullanıcıların standart erişim modu kümesinin operasyonel verimliliğini elde etmesini sağlarken, standart erişim modunda desteklenmeyen dilleri ve iş yüklerini de güvenli bir şekilde destekler; örneğin Databricks Runtime for ML, dayanıklı dağıtık veri seti (RDD) API'leri ve R.

Grup kümeleri, Azure Databricks'te bir rol üstlenmenin yollarından biridir. Bir kullanıcı bir grup kümesine bağlandığında, kullanıcı kimliği izinleri, grubun o kümedeki işlemler için verdiği izinlerle değiştirilir. Bu, küme oturumunun süresi boyunca grubu bir rol olarak varsaymaya eşdeğerdir. Rol değiştirici, CLI ve API dahil olmak üzere diğer rol üstlenme yöntemleri için RBAC rollerini değiştir bölümüne bakın.

Gereksinimler

Ayrılmış grup erişim modunu kullanmak için:

  • Unity Kataloğu için çalışma alanının etkinleştirilmesi gerekir.
  • Databricks Runtime 15.4 veya üzerini kullanmanız gerekir.
  • Grup, çalışma alanına atanan bir hesap grubu olmalıdır.
  • Atanan grubun not defterlerini, ML denemelerini ve grup kümesi tarafından kullanılan diğer çalışma alanı yapıtlarını tutabileceği bir çalışma alanı klasöründe CAN MANAGE izinleri olmalıdır.

Ayrılmış erişim modu nedir?

Özel erişim modu, eskiden tek kullanıcı erişim modu olarak adlandırılan, bir hesaplama kaynağını bir kullanıcıya veya bir gruba atar. Bir gruba atanan hesaplama kaynağı, group cluster olarak adlandırılır. Sadece atanan kullanıcı veya atanan grup olarak hareket edebilen kullanıcılar üzerinde iş yükü çalıştırabilir.

Gruba ayrılmış bir işlem kaynağı oluşturma

Grup işlem kaynağı oluşturmak için, işlem kaynağı ilkesi veya kısıtlanmamış küme oluşturma yetkisini kullanma iznine ihtiyacınız vardır. Workspace yöneticisi değilseniz, atanan grubun bir üyesi olmanız veya bu grubu üstlenme izniniz olmalıdır.

  1. Azure Databricks çalışma alanınızda Compute adresine gidin ve İşlem oluştur öğesine tıklayın.
  2. Gelişmiş bölümünü genişletin.
  3. Erişim modualtında, El ile'e tıklayın ve ardından açılan menüden Ayrılmış (eski adı: Tek kullanıcı) seçin.
  4. Tek kullanıcı veya grup alanında, bu kaynağa atanmasını istediğiniz grubu seçin.
  5. İstenen diğer işlem ayarlarını yapılandırın, ardından Oluştur'a tıklayın.

Grup bilgi işlemine erişim izni verin

Bir grup kümesi kullanmak için aşağıdakilerin ikisine de ihtiyacınız vardır:

  • Hesaplama CAN ATTACH TO kaynağı üzerindeki izin.
  • Atanan gruba üyelik, iç içe geçmiş bir grup aracılığıyla üyelik dahil, veya atanan grubu üstlenme izni.

Bir grubu bir hesaplama kaynağına atamak, o gruba otomatik olarak CAN ATTACH TO sağlar. Ek kullanıcılara veya gruplara hesaplama izinleri verebilirsiniz, ancak bu atanan grubu veya iş yükünün kimliğini değiştirmez. Bu kullanıcıların hâlâ atanan gruba üyelik veya atanan grubun rolünü üstlenme iznine ihtiyacı var. Sadece grup yöneticisi olmak, kümeyi oluşturma, düzenleme, silme veya kullanma izni vermez.

Hesaplama erişimi vermek için, hesaplama kaynağında CAN MANAGE olmalıdır:

  1. Kenar çubuğunda İşlem'e tıklayın.
  2. Hesaplama kaynağının satırında, kebab menüsünü açın Kebab menüsü simgesi. ve İzinleri düzenle seçin.
  3. İzin Ayarları'nda, Kullanıcı, grup veya hizmet sorumlusu seçin... açılır menüsüne tıklayın ve kullanıcıyı veya grubu seçin.
  4. İzin açılır menüsünden CAN ATTACH TO iznini seçin.
  5. Ekle’ye tıklayın, sonra Kaydet’e.

Bkz. İşlem izinleri.

Bir grup kümesini düzenlemek veya kalıcı olarak silmek için hesaplama kaynağında CAN MANAGE gerekir. Düzenleme ayrıca, çalışma alanı yöneticisi olmadığınız sürece, atanan gruba üyelik veya bu grubu üstlenme izni gerektirir.

Bir not defterinden grup işlem kaynaklarını kullanın

Atanan grubun izinleriyle bir not defteri çalıştırmak için:

  1. Atanan grubun erişebileceği bir çalışma alanı klasöründe bir not defteri açın.

  2. Defterin işlem seçicisinde, grup kümesini seçin. Listede yoksa, bulmak için Diğer… seçeneğine tıklayın.

  3. Bir SQL hücresinde veya %sql ile başlayan bir hücrede, oturum kimliğini kontrol etmek için aşağıdaki komutu çalıştırın:

    SELECT session_user();
    

Sonuç, atanan grubun adıdır. Defterin gerçekleştirdiği işlemler için o gruba veri ve çalışma alanı izinleri verin. Kişisel izinleriniz grubun kümedeki izinlerine eklenmez.

Zaten workspace rol değiştiricisi aracılığıyla bir rol olarak hareket ediyorsanız, bu rol kümeye atanan grupla eşleşmelidir. RBAC rollerini değiştirme bölümüne bakın.

Defterleri ekleme hakkında daha fazla bilgi için, bir defteri genel amaçlı bir işlem kaynağına ekleme konusuna bakın.

İşleri bir grup olarak çalıştırma

İşler, API veya SDK üzerinden işi yapılandırmanız da dahil olmak üzere, bir grubun izinleriyle çalışabilir. İş detaylarında, Farklı çalıştır seçeneğini hesaplama kaynağına atanan grup olarak ayarlayın. Grup, işin kullandığı notebook'lara, dosyalara ve verilere erişmek için izin almalıdır.

Bir İşler API isteğinde, run_as.group_name öğesini grubun adına ayarlayın:

{
  "run_as": {
    "group_name": "analytics-team"
  }
}

Yapılandırma adımları, grup gereksinimleri ve bir görev farklı bir kimliğe atanmış özel hesaplama kullandığındaki davranış için Set Run as to a group bölümüne bakın.

Grup kümelerini yönetmek için en iyi yöntemler

Grup kümeleri kullanılırken kullanıcı izinlerinin kapsamı gruba göre belirlendiğinden Databricks, grup kümesiyle kullanmayı planladığınız her grup için bir /Workspace/Groups/<groupName> klasörü oluşturmanızı önerir. Ardından, klasördeki CAN MANAGE izinleri gruba atayın. Bu, grupların izin hatalarından kaçınmasını sağlar. Grubun tüm not defterleri ve çalışma alanı varlıkları grup klasöründe yönetilmelidir.

Grup kümelerinde çalışmak için aşağıdaki iş yüklerini de değiştirmeniz gerekir:

  • MLflow: Not defterini grup klasöründen çalıştırdığınızdan veya mlflow.set_tracking_uri("/Workspace/Groups/<groupName>")çalıştırdığınızdan emin olun.
  • AutoML: AutoML çalıştırmalarınız için isteğe bağlı experiment_dir parametresini “/Workspace/Groups/<groupName>” olarak ayarlayın.
  • dbutils.notebook.run: Grubun yürütülen not defteri üzerinde READ iznine sahip olduğundan emin olun.

Grup kümelerinde izin davranışı

Bir grup kümesinde gerçekleştirilen tüm komutlar, sorgular ve diğer eylemler, tek tek kullanıcıya değil, gruba atanan izinleri kullanır.

Tüm grup üyelerinin Spark API'lerine ve paylaşılan işlem ortamına tam erişimi olduğundan tek tek kullanıcı izinleri zorunlu kılınamaz. Kullanıcı tabanlı izinler uygulandıysa, bir üye kısıtlanmış verileri sorgulayabilir ve erişimi olmayan başka bir üye paylaşılan ortam üzerinden sonuçları almaya devam edebilir. Bu nedenle, grubun üyesi olan kullanıcının değil grubun kendisi, eylemi başarıyla gerçekleştirmek için gerekli izinlere sahip olmalıdır.

Örneğin, grubun bir tabloyu sorgulamak, gizli dizi kapsamına veya gizli diziye erişmek, Unity Kataloğu bağlantı kimlik bilgilerini kullanmak, git klasörüne erişmek veya çalışma alanı nesnesi oluşturmak için açık izne ihtiyacı vardır.

Örnek grup izinleri

Grup kümesini kullanarak bir veri nesnesi oluşturduğunuzda, grup nesnenin sahibi olarak atanır.

Örneğin, bir grup kümesine bağlı bir not defteriniz varsa ve aşağıdaki komutu çalıştırın:

use catalog main;
create schema group_cluster_group_schema;

Ardından şemanın sahibini denetlemek için şu sorguyu çalıştırın:

describe schema group_cluster_group_schema;

Grup şemasının örnek tanımı

Gruba adanmış hesaplama faaliyetinin denetlenmesi

Grup kümesi bir iş yükü çalıştırdığında iki anahtar kimlik söz konusu olur:

  1. Grup kümesinde iş yükünü başlatan kimlik
  2. gerçek iş yükü eylemlerini gerçekleştirmek için izinleri kullanılan grup

denetim günlüğü sistem tablosu bu kimlikleri aşağıdaki parametreler altında kaydeder:

  • identity_metadata.run_by: Eylemi başlatan kimliği doğrulanan kimlik.
  • identity_metadata.run_as: İşlem için izinleri kullanılan yetkilendiren grup.

Etkileşimli iş yükleri için, run_by kullanıcıyı belirtir. İş iş yükleri için, Jobs servisinin uygulama hizmet sorumlusunu belirler. Bkz. Farklı çalıştır'ı bir grup olarak ayarlama.

Aşağıdaki örnek sorgu, grup kümesiyle gerçekleştirilen bir eylem için kimlik meta verilerini çeker:

select action_name, event_time, user_identity.email, identity_metadata
from system.access.audit
where user_identity.email = "uc-group-cluster-group" AND service_name = "unityCatalog"
order by event_time desc limit 100;

Daha fazla örnek sorgu için denetim günlüğü sistem tablolarına başvurun. bkz. Denetim günlüğü sistem tablosuna.

Müşteri deposuna teslim edilen denetim günlükleri, yetkileyici grup ve kimlik doğrulayan kimliği ayrı kimlik metaveri alanları olarak içermez. Bu meta verileri görüntülemek için system.access.audit kullanın.

Bilinen sınırlamalar

Ayrılmış grup erişimi aşağıdaki sınırlamalara sahiptir:

  • Git kullanan işler, işin Git deposunu çekmek için kullandığı geçici dizin yazılabilir olmadığı için başarısız olur. Bunun yerine Git klasörlerini kullanın.
  • Tablo ve sütun soy sistem tablolarındakicreated_by alanı grubu kaydeder. Bu tablolar, iş yükünü başlatan kullanıcıyı ayrı ayrı kaydetmez.
  • Bir grup kümesine eklendiğinde, Katalog Gezgini yalnızca grup tarafından erişilebilen varlıklara göre filtre uygulamaz.
  • Bir grup yeniden adlandırılırsa, grup adına başvuran tüm işlem ilkelerini el ile güncelleştirmeniz gerekir.
  • Grup kümeleri, erişim kontrol listelerinin (ACL) devre dışı bırakıldığı (isWorkspaceAclsEnabledfalse) çalışma alanlarında desteklenmez çünkü bu çalışma alanlarında güvenlik ve veri erişim denetimleri yoktur.
  • %run Komut ve not defteri bağlamındaki diğer işlemler, grubun izinleri yerine kullanıcının izinlerini kullanır. Bunun nedeni, bu eylemlerin kümenin ortamı tarafından değil not defteri ortamı tarafından işlenmesidir. gibi dbutils.notebook.run() alternatif komutlar kümede çalıştırılır ve bu nedenle grubun izinlerini kullanır.
  • is_member(<group>) işlevi, bir grup kümesi üzerinde çağrıldığında false döndürür çünkü grup kendi üyesi değildir. Hem grup kümeleri hem de diğer erişim modları arasında üyeliği kontrol etmek için is_member(<group>) OR session_user() = <group> kullanın.
  • Grup olarak hareket ettiğinizde AI Arama kısıtlamaları vardır. Desteklenen işlemler ve dizin kısıtlamalarına bakın.
  • Dosya ve klasör silme işlemi grup kümelerinde desteklenmez.
  • Dosya yükleme kullanıcı arabirimi grup kümelerini desteklemez.