Aracılığıyla paylaş


Öğretici: Azure Data Lake Storage'a bağlanma

Önemli

Bu belge kullanımdan kaldırılmıştır ve güncelleştirilmeyebilir.

Bu makalede, Azure Data Lake Storage'a erişimi yapılandırmaya yönelik eski desenler açıklanmaktadır. Databricks, Unity Kataloğu'nu Azure yönetilen kimlikleriyle kullanmanızı önerir. Unity Kataloğu'nda Azure yönetilen kimliklerini kullanarak depolamaya erişim hakkında bilgi için bakınız/c0>.

Bu öğretici, Microsoft Entra ID hizmet sorumlusuyla OAuth 2.0 kullanarak Azure Databricks'ten Azure Data Lake Storage'a bağlanmak için gereken tüm adımlarda size yol gösterir.

Gereksinimler

Bu tura başlamadan önce aşağıdaki görevleri tamamlayın:

1. Adım: Microsoft Entra ID hizmet sorumlusu oluşturma

Azure Data Lake Storage'a bağlanmak için hizmet sorumlularını kullanmak için yönetici kullanıcının yeni bir Microsoft Entra ID uygulaması oluşturması gerekir. Zaten bir Microsoft Entra Id hizmet sorumlunuz varsa, 2. Adım: Hizmet sorumlunuz için istemci gizli dizisi oluşturma bölümüne atlayın.

Microsoft Entra ID hizmet sorumlusu oluşturmak için şu yönergeleri izleyin:

  1. Azure portalınaoturum açın.

    Uyarı

    Kullanılacak portal, Microsoft Entra ID uygulamanızın Azure genel bulutunda mı yoksa ulusal veya bağımsız bir bulutta mı çalıştığına bağlı olarak farklılık gösterir. Daha fazla bilgi için bkz. Ulusal bulutlar.

  2. Birden çok kiracıya, aboneliğe veya dizine erişiminiz varsa, üst menüdeki Dizinler + abonelikler (filtreli dizin) simgesine tıklayarak hizmet sorumlusunu sağlamak istediğiniz dizine geçin.

  3. <Microsoft Entra ID arayın veöğesini seçin.

  4. Yönet'te, >>'a tıklayın.

  5. Ad alanına uygulama için bir ad girin.

  6. Desteklenen hesap türleri bölümünde Yalnızca bu kuruluş dizinindeki hesaplar (Tek kiracı) öğesini seçin.

  7. Kaydet’e tıklayın.

2. Adım: Hizmet asıl nesnesi için bir istemci sırrı oluşturma

  1. Yönet bölümünde, Sertifikalar ve gizli bilgiler'e tıklayın.

  2. İstemci sırları sekmesinde Yeni istemci sırrı'na tıklayın.

    Yeni müşteri sırrı

  3. İstemci sırrı ekle bölmesinde, Açıklama için istemci sırrı için bir açıklama girin.

  4. Süre Sonu için, istemci sırrı için bir süre sonu süresi seçin ve ardından Ekle'ye tıklayın.

  5. Bu istemci gizli dizisi uygulamanızın parolası olduğundan istemci gizli dizisinin Değerini kopyalayın ve güvenli bir yerde depolayın.

  6. Uygulama sayfasının Genel Bakış sayfasının Temel Parçalar bölümünde aşağıdaki değerleri kopyalayın:

    • Uygulama (istemci) kimliği
    • Dizin (kiracı) ID'si

Adım 3: Hizmet sorumlusuna Azure Data Lake Storage erişimi verme

Hizmet sorumlunuza roller atayarak depolama kaynaklarına erişim verirsiniz. Bu öğreticide, Depolama Blobu Veri Katkıda Bulunanı Azure Data Lake Storage hesabınızdaki hizmet sorumlusuna atarsınız. Belirli gereksinimlere bağlı olarak başka roller atamanız gerekebilir.

  1. Azure portalında Depolama hesapları hizmetine gidin.
  2. Kullanılacak azure depolama hesabını seçin.
  3. Erişim Denetimi (IAM) öğesine tıklayın.
  4. + Ekle'ye tıklayın ve açılır menüden Rol ataması ekle'yi seçin.
  5. Select alanını 1. adımda oluşturduğunuz Microsoft Entra ID uygulama adı olarak ayarlayın ve Rol'u Depolama Blob Verisi Katkıcısıolarak ayarlayın.
  6. Kaydet'e tıklayın.

4. Adım: İstemci sırrını Azure Key Vault'a ekleyin

1. adımdaki istemci sırrını Azure Key Vault'ta depolayabilirsiniz.

  1. Azure portalında Anahtar kasası hizmetine gidin.
  2. Kullanmak için bir Azure Key Vault seçin.
  3. Key Vault ayarları sayfalarında Gizliseçin.
  4. + Oluştur/İçeri Aktaröğesine tıklayın.
  5. Karşıya yükleme seçenekleribölümünde, El ileseçin.
  6. Ad için, gizli bilgiye bir ad girin. Gizli ad, bir Anahtar Kasası içinde benzersiz olmalıdır.
  7. Değer için, 1. Adımda depoladığınız İstemci Gizli Anahtarını yapıştırın.
  8. Oluştur'utıklayın.

5. Adım: Azure Databricks için Azure anahtar kasası örneğinizi yapılandırma

  1. Azure Portalı'nda Azure anahtar kasası örneğine gidin.
    1. Ayarlaraltında, Erişim yapılandırması sekmesini seçin.

    2. İzin modeli'i Vault erişim ilkesiolarak ayarlayın.

      Uyarı

      Azure Key Vault destekli gizli dizi kapsamı rolü oluşturmak, anahtar kasası erişim ilkelerini kullanarak Azure Databricks hizmetinin uygulama kimliğine Alma ve Listeleme izinleri verir. Azure rol tabanlı erişim kontrolü izin modeli, Azure Databricks ile desteklenmemektedir.

    3. Ayarlar'ın altında Ağ İletişimi’ni seçin.

    4. Güvenlik duvarları ve sanal ağlarErişime izin ver:belirli sanal ağlardan ve IP adreslerinden genel erişime izin ver olarak ayarlayın.

      İstisnalar altında, Güvenilen Microsoft hizmetlerinin bu güvenlik duvarını atlamasına izin ver seçeneğini işaretleyin.

      Uyarı

      Şunlarla erişime izin ver ayarını da yapabilirsiniz: Şuradan erişime izin ver:Tüm ağlardan genel erişime izin ver.

6. Adım: Azure Databricks çalışma alanınızda Azure Key Vault destekli gizli dizi kapsamı oluşturma

Azure Key Vault'ta depolanan istemci gizli anahtarına başvurmak için, Azure Databricks'te Azure Key Vault tarafından desteklenen bir gizli bilgi kapsamı oluşturabilirsiniz.

  1. https://<databricks-instance>#secrets/createScope'e gidin. Bu URL büyük/küçük harfe duyarlıdır; createScope içindeki kapsamın büyük harf olması gerekir.

    Kapsam oluşturma

  2. Gizli kapsamın adını girin. Gizli scope adları büyük/küçük harfe duyarlı değildir.

  3. Sır alanı için Tüm Kullanıcılar'ın mı yoksa yalnızca sır alanının Yaratıcısı, yani sizin mi izniniz olduğunu belirtmek için MANAGE açılır menüsünü kullanın.

  4. DNS Adını (örneğin, https://databrickskv.vault.azure.net/) ve Kaynak Kimliğini girin, örneğin:

    /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
    

    Bu özellikler, Azure portalınızdaki Azure Key Vault 'un *Ayarlar > Özellikler sekmesinden kullanılabilir.

  5. Oluştur düğmesine tıklayın.

7. Adım: Python kullanarak Azure Data Lake Storage'a bağlanma

Artık Azure Databricks not defterinden kimlik doğrulaması için Microsoft Entra ID uygulama hizmet sorumlunuzla OAuth 2.0 kullanarak Azure depolama hesabındaki verilere güvenli bir şekilde erişebilirsiniz.

  1. Azure Databricks çalışma alanınıza gidin ve yeni bir Python not defteri oluşturun.

  2. Azure Data Lake Storage'a bağlanmak için aşağıdaki python kodunu ve aşağıdaki değişiklikleri çalıştırın.

    service_credential = dbutils.secrets.get(scope="<scope>",key="<service-credential-key>")
    
    spark.conf.set("fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net", "OAuth")
    spark.conf.set("fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
    spark.conf.set("fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net", "<application-id>")
    spark.conf.set("fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net", service_credential)
    spark.conf.set("fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net", "https://login.microsoftonline.com/<directory-id>/oauth2/token")
    

    Değiştir

    • <scope> 5. adımdaki özel kapsam adıyla.
    • <service-credential-key> istemci sırrını içeren anahtarın adıyla birlikte.
    • <storage-account> Azure depolama hesabının adıyla.
    • <application-id>Microsoft Entra ID uygulamasının Uygulama (istemci) kimliği ile.
    • <directory-id> Microsoft Entra ID uygulamasının Dizin (kiracı) kimliği.

    Artık Azure Databricks çalışma alanınızı Azure Data Lake Storage hesabınıza başarıyla bağladınız.

Azure Databricks çalışma alanınıza Azure Data Lake Storage erişimi verme

Azure Data Lake Storage'da bir güvenlik duvarı yapılandırıyorsanız Azure Databricks çalışma alanınızın Azure Data Lake Storage'a bağlanmasına izin vermek için ağ ayarlarını yapılandırmanız gerekir. İlk olarak, Azure Databricks'i Azure sanal ağınıza dağıtma (VNet ekleme) sonrasında Azure Databricks çalışma alanınızın kendi sanal ağınıza dağıtıldığından emin olun. Ardından, alt ağlarınızdan Azure Data Lake Storage hesabınıza bağlantılara izin vermek için sanal ağ özel uç noktaları veya erişimi yapılandırabilirsiniz.

Sunucusuz SQL ambarları gibi sunucusuz işlem kullanıyorsanız sunucusuz işlem düzleminden Azure Data Lake Storage'a erişim vermelisiniz. Bkz. Sunucusuz işlem düzlemi ağı.

Özel uç noktaları kullanarak erişim izni verme

Azure Databricks çalışma alanınızın özel bağlantı üzerinden verilere güvenli bir şekilde erişmesine izin vermek için Azure Data Lake Storage hesabınız için özel uç noktaları kullanabilirsiniz.

Azure Portal'ı kullanarak özel uç nokta oluşturmak için bkz . Öğretici: Azure Özel Uç Noktası kullanarak depolama hesabına bağlanma. Azure Databricks çalışma alanınızın dağıtılacağı sanal ağda özel uç nokta oluşturduğunuzdan emin olun.

Sanal ağınızdan erişim izni verme

Sanal Ağ hizmet uç noktaları, kritik Azure hizmet kaynaklarınızı yalnızca sanal ağlarınızla güvenlik altına almanızı sağlar. Azure Databricks çalışma alanınız için kullandığınız sanal ağ içinde Azure Depolama için bir hizmet uç noktasını etkinleştirebilirsiniz.

Azure CLI ve PowerShell yönergeleri de dahil olmak üzere daha fazla bilgi için bkz. Sanal ağdan erişim izni verme.

  1. Azure Portal'da, Azure Data Lake Storage hesabınızda Depolama Hesabı Katkıda Bulunanı rolüne sahip bir kullanıcı olarak oturum açın.
  2. Azure Depolama hesabınıza gidin ve Ağ sekmesine gidin.
  3. Seçili sanal ağlardan ve IP adreslerinden erişime izin vermek için seçtiğinizi denetleyin.
  4. Sanal ağlaraltında Mevcut sanal ağı ekleseçin.
  5. Yan panelde, abonelikaltında sanal ağınızın içinde olduğu aboneliği seçin.
  6. sanal ağlaraltında Azure Databricks çalışma alanınızın dağıtılacağı sanal ağı seçin.
  7. alt ağlaraltında Tümünü seçseçin seçeneğini seçin.
  8. Etkinleştir’e tıklayın.
  9. Yaptığınız değişiklikleri uygulamak için Kaydet'i seçin.

Sorun giderme

Hata: IllegalArgumentException: Gizli kapsam içinde yok: KeyVaultScope ve anahtar

Bu hata büyük olasılıkla şu anlama gelir:

  • Kodda atıfta bulunulan Databricks destekli kapsam geçerli değil.

Bu makaledeki 4. adımda belirlediğiniz gizlinizin adını gözden geçirin.

Hata: com.databricks.common.client.DatabricksServiceHttpClientException: INVALID_STATE: Databricks keyvault'a erişemedi

Bu hata büyük olasılıkla şu anlama gelir:

  • Kodda başvuruda bulunılan Databricks destekli kapsam geçerli değil. veya Key Vault'ta saklanan gizli bilginin süresi doldu.

Azure Key Vault gizli dizinizin geçerli olduğundan emin olmak için 3. adımı gözden geçirin. Bu makaledeki 4. adımda belirlediğiniz gizlinizin adını gözden geçirin.

Hata: ADAuthenticator$HttpException: HTTP Hatası 401: AzureAD yanıtından belirteç alınamadı.

Bu hata büyük olasılıkla şu anlama gelir:

  • Hizmet sorumlusunun istemci gizli anahtarı süresi doldu.

Bu makaledeki 2. adımın ardından yeni bir istemci gizli dizisi oluşturun ve Azure Key Vault'unuzda gizli diziyi güncelleştirin.

Kaynaklar