Aracılığıyla paylaş


Microsoft Entra ID hizmet sorumlusuyla iş çalıştırma

İşler, uygulamaları Azure Databricks kümesinde çalıştırmak için etkileşimli olmayan bir yol sağlar. Örneğin, zamanlanmış olarak çalıştırılması gereken bir ETL işi veya veri analizi görevi. Genellikle, bu işler onları oluşturan kullanıcı olarak çalışır, ancak bunun bazı sınırlamaları olabilir:

  • İşlerin oluşturulması ve çalıştırılması, kullanıcının uygun izinlere sahip olmasına bağlıdır.
  • Yalnızca işi oluşturan kullanıcının işe erişimi vardır.
  • Kullanıcı Azure Databricks çalışma alanından kaldırılabilir.

Hizmet hesabı (belirli bir kullanıcı yerine bir uygulamayla ilişkilendirilmiş bir hesap) kullanmak, bu sınırlamaları gidermeye yönelik yaygın bir yöntemdir. Azure'da, hizmet hesabı oluşturmak için Bir Microsoft Entra Id (eski adıyla Azure Active Directory) uygulamasını ve hizmet sorumlusunu kullanabilirsiniz.

Hizmet sorumlularının bir Azure Data Lake Storage 2. Nesil hesabında depolanan verilere erişimi denetlemesi bunun önemli olduğu bir örnektir. İşlerin bu hizmet sorumlularıyla çalıştırılması, işlerin depolama hesabındaki verilere erişmesine olanak tanır ve veri erişim kapsamı üzerinde denetim sağlar.

Bu öğreticide, bir Microsoft Entra Id uygulaması ve hizmet sorumlusu oluşturma ve bu hizmet sorumlusunun bir işin sahibi yapma işlemleri açıklanmaktadır. Ayrıca işin sahibi olmayan diğer gruplara işi çalıştırma izinleri vermeyi de öğreneceksiniz. Aşağıda, bu öğreticinin adım adım ilerlettikleri görevlere üst düzey bir genel bakış sağlanır:

  1. Microsoft Entra Id içinde bir hizmet sorumlusu oluşturun.
  2. Azure Databricks'te kişisel erişim belirteci (PAT) oluşturun. Databricks REST API'sinde kimlik doğrulaması yapmak için PAT kullanacaksınız.
  3. Databricks SCIM API'sini kullanarak hizmet sorumlusunu yönetici olmayan bir kullanıcı olarak Azure Databricks'e ekleyin.
  4. Azure Databricks'te Azure Key Vault destekli gizli dizi kapsamı oluşturun.
  5. Hizmet sorumlusuna gizli dizi kapsamına okuma erişimi verin.
  6. Azure Databricks'te bir iş oluşturun ve iş kümesini gizli dizi kapsamından gizli dizileri okuyacak şekilde yapılandırın.
  7. İşin sahipliğini hizmet sorumlusuna aktarın.
  8. İşi hizmet sorumlusu olarak çalıştırarak test edin.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Not

Hizmet sorumlusuna ait bir işi çalıştırmak için kimlik bilgisi geçişi etkinleştirilmiş bir küme kullanamazsınız. İşiniz azure depolamaya erişmek için bir hizmet sorumlusu gerektiriyorsa bkz. Azure kimlik bilgilerini kullanarak Azure Data Lake Storage 2. Nesil veya Blob Depolama Bağlan.

Gereksinimler

Bu öğretici için aşağıdakilere ihtiyacınız olacaktır:

Microsoft Entra Id'de hizmet sorumlusu oluşturma

Hizmet sorumlusu, Microsoft Entra Id uygulamasının kimliğidir. İşleri çalıştırmak için kullanılacak hizmet sorumlusunu oluşturmak için:

  1. Azure portalında Microsoft Entra ID > Uygulama Kayıtları > Yeni Kayıt'ı seçin. Uygulama için bir ad girin ve Kaydet'e tıklayın.
  2. Sertifikalar ve gizli diziler'e gidin, Yeni istemci gizli dizisi'ne tıklayın ve yeni bir istemci gizli dizisi oluşturun. Gizli diziyi kopyalayıp güvenli bir yere kaydedin.
  3. Genel Bakış'a gidin ve Uygulama (istemci) Kimliği ile Dizin (kiracı) Kimliğini not edin.

Azure Databricks kişisel erişim belirtecini oluşturma

Databricks REST API'sinde kimlik doğrulaması yapmak için bir Azure Databricks kişisel erişim belirteci (PAT) kullanacaksınız. API isteklerinde bulunmak için kullanılabilecek bir PAT oluşturmak için:

  1. Azure Databricks çalışma alanınıza gidin.
  2. Ekranın sağ üst köşesindeki kullanıcı adınıza tıklayın ve Ayarlar'e tıklayın.
  3. Geliştirici'ye tıklayın.
  4. Erişim belirteçleri'nin yanındaki Yönet'e tıklayın.
  5. Yeni Belirteç Oluştur'a tıklayın.
  6. Belirteç değerini kopyalayın ve kaydedin.

İpucu

Bu örnekte kişisel erişim belirteci kullanılır, ancak çoğu API için Microsoft Entra ID belirtecini kullanabilirsiniz. En iyi yöntem, PAT'nin yönetim yapılandırma görevleri için uygun olmasıdır, ancak üretim iş yükleri için Microsoft Entra ID belirteçleri tercih edilir.

PAT'lerin oluşturulmasını yalnızca güvenlik amacıyla yöneticilerle kısıtlayabilirsiniz. Daha fazla ayrıntı için bkz . Kişisel erişim belirteçlerini izleme ve yönetme.

Hizmet sorumlusunu Azure Databricks çalışma alanına ekleme

Hizmet Sorumluları API'sini kullanarak Microsoft Entra ID hizmet sorumlusunu bir çalışma alanına eklersiniz. Otomatik iş kümelerini başlatmak için hizmet sorumlusuna da izin vermeniz gerekir. Bunu izin aracılığıyla allow-cluster-create vekleyebilirsiniz. Hizmet sorumlusunu eklemek ve gerekli izinleri vermek üzere aşağıdaki komutu çalıştırmak için bir terminal açın ve Databricks CLI'yi kullanın:

databricks service-principals create --json '{
  "schemas":[
    "urn:ietf:params:scim:schemas:core:2.0:ServicePrincipal"
  ],
  "applicationId":"<application-id>",
  "displayName": "test-sp",
  "entitlements":[
    {
      "value":"allow-cluster-create"
    }
  ]
}'

değerini Microsoft Entra ID uygulama kaydı için ile Application (client) ID değiştirin<application-id>.

Azure Databricks'te Azure Key Vault destekli gizli dizi kapsamı oluşturma

Gizli dizi kapsamları, gizli dizilerin güvenli bir şekilde depolanmasını ve yönetilmesini sağlar. Hizmet sorumlusuyla ilişkili gizli diziyi bir gizli dizi kapsamında depolayacaksınız. Gizli dizileri Azure Databricks gizli dizi kapsamında veya Azure Key Vault destekli gizli dizi kapsamında depolayabilirsiniz. Bu yönergelerde Azure Key Vault destekli seçeneği açıklanmaktadır:

  1. Azure portalında bir Azure Key Vault örneği oluşturun.
  2. Azure Key Vault örneği tarafından yedeklenen Azure Databricks gizli dizi kapsamını oluşturun.

1. Adım: Azure Key Vault örneği oluşturma

  1. Azure portalında Anahtar Kasaları > + Ekle'yi seçin ve Key Vault'a bir ad verin.

  2. Gözden geçir ve oluştur’a tıklayın.

  3. Doğrulama tamamlandıktan sonra Oluştur'a tıklayın.

  4. Key Vault'ı oluşturduktan sonra yeni Key Vault'un Özellikler sayfasına gidin.

  5. Kasa URI'sini ve Kaynak Kimliğini kopyalayıp kaydedin.

    Azure Key Vault özellikleri

2. Adım: Azure Key Vault destekli gizli dizi kapsamı oluşturma

Azure Databricks kaynakları, Key Vault destekli gizli dizi kapsamı oluşturarak Azure Key Vault'ta depolanan gizli dizilere başvurabilir. Azure Databricks gizli dizi kapsamını oluşturmak için:

  1. konumundaki https://<per-workspace-url>/#secrets/createScopeAzure Databricks Gizli Dizi Kapsamı Oluştur sayfasına gidin. değerini Azure Databricks çalışma alanınızın benzersiz çalışma alanı başına URL'si ile değiştirinper-workspace-url.

  2. Kapsam Adı girin.

  3. 1. Adım: Azure Key Vault örneği oluşturma bölümünde oluşturduğunuz Azure Key Vault için Kasa URI'sive Kaynak Kimliği değerlerini girin.

  4. Oluştur’a tıklayın.

    Gizli dizi kapsamı oluşturma

İstemci gizli dizisini Azure Key Vault'a kaydetme

  1. Azure portalında Anahtar kasaları hizmetine gidin.

  2. 1. Adım: Azure Key Vault örneği oluşturma bölümünde oluşturulan Key Vault'u seçin.

  3. gizli dizileri Ayarlar >altında Oluştur/İçeri Aktar'a tıklayın.

  4. El ile karşıya yükleme seçeneğini belirleyin ve Değer alanına istemci gizli dizisini girin.

     gizli dizisini oluşturun

  5. Oluştur’a tıklayın.

Hizmet sorumlusuna gizli dizi kapsamına okuma erişimi verme

Gizli dizi kapsamı oluşturdunuz ve hizmet sorumlusunun istemci gizli dizisini bu kapsamda depoladiniz. Şimdi hizmet sorumlusuna gizli diziyi gizli dizi kapsamından okuması için erişim vereceksiniz.

Aşağıdaki komutu çalıştırmak için bir terminal açın ve Databricks CLI'sini kullanın:

databricks secrets put-acl <scope-name> <application-id> READ
  • değerini, istemci gizli dizisini içeren Azure Databricks gizli dizisi kapsamının adıyla değiştirin <scope-name> .
  • değerini Microsoft Entra ID uygulama kaydı için ile Application (client) ID değiştirin<application-id>.

Azure Databricks'te bir iş oluşturun ve kümeyi gizli dizi kapsamından gizli dizileri okuyacak şekilde yapılandırın

Artık yeni hizmet sorumlusu olarak çalışabilecek bir iş oluşturmaya hazırsınız. Azure Databricks kullanıcı arabiriminde oluşturulmuş bir not defteri kullanacak ve iş kümesinin hizmet sorumlusunun gizli dizisini almasına izin vermek için yapılandırmayı ekleyeceksiniz.

  1. Azure Databricks giriş sayfanıza gidin ve Yeni Not Defteri'ni >seçin. Not defterinize bir ad verin ve varsayılan dil olarak SQL'i seçin.

  2. Not defterinin ilk hücresine girin SELECT 1 . Bu, başarılı olursa yalnızca 1'i görüntüleyen basit bir komutdur. Azure Data Lake Depolama 2. Nesil'deki belirli dosyalara veya yollara hizmet sorumlusu erişimi verdiyseniz, bunun yerine bu yollardan okuyabilirsiniz.

  3. İş Akışları'nagidin ve İş Oluştur'a tıklayın. İşe ve göreve bir ad verin, Not Defteri Seç'e tıklayın ve yeni oluşturduğunuz not defterini seçin.

  4. Küme bilgilerinin yanındaki Düzenle'ye tıklayın.

  5. Kümeyi Yapılandır sayfasında Gelişmiş Seçenekler'e tıklayın.

  6. Spark sekmesinde aşağıdaki Spark Config değerini girin:

    fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth
    fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
    fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id>
    fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope-name>/<secret-name>}}
    fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<directory-id>/oauth2/token
    
    • değerini verilerinizi içeren depolama hesabının adıyla değiştirin <storage-account> .
    • değerini, istemci gizli dizisini içeren Azure Databricks gizli dizisi kapsamının adıyla değiştirin <secret-scope-name> .
    • değerini Microsoft Entra ID uygulama kaydı için ile Application (client) ID değiştirin<application-id>.
    • değerini gizli dizi kapsamındaki istemci gizli anahtarı değeriyle ilişkilendirilmiş adla değiştirin <secret-name> .
    • değerini Microsoft Entra ID uygulama kaydı için ile Directory (tenant) ID değiştirin<directory-id>.

İşin sahipliğini hizmet sorumlusuna aktarma

Bir işin tam olarak bir sahibi olabileceğinden, işin sahipliğini kendinizden hizmet sorumlusuna aktarmanız gerekir. Diğer kullanıcıların işi yöneteebilmesini sağlamak için, bir gruba CAN MANAGE izinleri de verilmektedir. Bu örnekte, bu izinleri ayarlamak için İzinler API'sini kullanırız.

Aşağıdaki komutu çalıştırmak için bir terminal açın ve Databricks CLI'sini kullanın:

databricks permissions set jobs <job-id> --json '{
  "access_control_list": [
    {
      "service_principal_name": "<application-id>",
      "permission_level": "IS_OWNER"
    },
    {
      "group_name": "admins",
      "permission_level": "CAN_MANAGE"
    }
  ]
}'
  • değerini işin benzersiz tanımlayıcısıyla değiştirin <job-id> . İş kimliğini bulmak için kenar çubuğunda İş Akışları'na tıklayın ve iş adına tıklayın. İş kimliği İş ayrıntıları yan panelinde yer alır.
  • değerini Microsoft Entra ID uygulama kaydı için ile Application (client) ID değiştirin<application-id>.

İşin not defteri için okuma izinlerine de sahip olması gerekir. Gerekli izinleri vermek üzere aşağıdaki komutu çalıştırmak için Databricks CLI'yi kullanın:

databricks permissions set notebooks <notebook-id> --json '{
  "access_control_list": [
    {
      "service_principal_name": "<application-id>",
      "permission_level": "CAN_READ"
    }
  ]
}'
  • değerini, işle ilişkilendirilmiş not defterinin kimliğiyle değiştirin <notebook-id> . Kimliği bulmak için Azure Databricks çalışma alanında not defterine gidin ve not defterinin URL'sinde aşağıdaki notebook/ sayısal kimliği arayın.
  • değerini Microsoft Entra ID uygulama kaydı için ile Application (client) ID değiştirin<application-id>.

İşi test edin

İşleri, kullanıcı arabirimi, API veya CLI aracılığıyla işleri kullanıcı olarak çalıştırdığınız gibi hizmet sorumlusuyla da çalıştırırsınız. Azure Databricks kullanıcı arabirimini kullanarak işi test etmek için:

  1. Azure Databricks kullanıcı arabiriminde İş Akışları'na gidin ve işi seçin.
  2. Şimdi Çalıştır'a tıklayın.

Her şey düzgün çalışıyorsa iş için Başarılı durumunu görürsünüz. Çıktıyı doğrulamak için kullanıcı arabiriminde işi seçebilirsiniz:

İş çıktısı

Daha fazla bilgi edinin

İşleri oluşturma ve çalıştırma hakkında daha fazla bilgi edinmek için bkz . Azure Databricks İşleri oluşturma ve çalıştırma.