Azure Data Factory ve Synapse Analytics güvenlik ve erişim denetimi sorunlarını giderme
UYGULANANLAR: Azure Data Factory
Azure Synapse Analytics
İpucu
Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!
Bu makalede Azure Data Factory ve Synapse Analytics işlem hatlarında güvenlik ve erişim denetimi için yaygın sorun giderme yöntemleri inceleniyor.
Kaynak veya havuz veri deposunda bağlantı sorunları oluştuğunda çeşitli hata iletileri döndürülebilir.
Soruna genellikle aşağıdaki faktörlerden biri neden olur:
Şirket içinde barındırılan bir IR kullanıyorsanız, şirket içinde barındırılan tümleştirme çalışma zamanı (IR) düğümündeki proxy ayarı.
Şirket içinde barındırılan bir IR kullanıyorsanız şirket içinde barındırılan IR düğümündeki güvenlik duvarı ayarı.
Bulut veri deposundaki güvenlik duvarı ayarı.
Bunun bir bağlantı sorunu olduğundan emin olmak için aşağıdaki noktaları denetleyin:
- Hata kaynak veya havuz bağlayıcılarından oluşturulur.
- Hata, kopyalama etkinliğinin başlangıcındadır.
- Bu hata Azure IR veya tek düğümlü şirket içinde barındırılan IR için tutarlıdır, çünkü yalnızca bazı düğümlerde sorun varsa çok düğümlü şirket içinde barındırılan bir IR'de rastgele bir hata olabilir.
Şirket içinde barındırılan bir IR kullanıyorsanız ara sunucu, güvenlik duvarı ve ağ ayarlarınızı denetleyin çünkü Azure IR kullanıyorsanız aynı veri deposuna bağlanma işlemi başarılı olabilir. Bu senaryoyla ilgili sorunları gidermek için bkz:
Azure IR kullanıyorsanız veri deposunun güvenlik duvarı ayarını devre dışı bırakmaya çalışın. Bu yaklaşım, aşağıdaki iki durumdaki sorunları çözebilir:
- Azure IR IP adresleri izin verilenler listesinde yer almıyor.
- Güvenilen Microsoft hizmetleri bu depolama hesabına erişmesine izin ver özelliği Azure Blob Depolama ve Azure Data Lake Storage 2. Nesil için kapalıdır.
- Azure hizmetlerine erişime izin ver ayarı Azure Data Lake Storage 1. Nesil için etkinleştirilmez.
Yukarıdaki yöntemlerden hiçbiri işe yaramazsa yardım için Microsoft'a başvurun.
ADF'den yönetilen özel uç nokta oluşturdunuz ve onaylı bir özel uç nokta aldınız. Ancak, daha sonra özel uç noktayı sildikten veya reddettikten sonra, ADF'deki yönetilen özel uç nokta mevcut olmaya devam eder ve "Onaylandı" ifadesini gösterir.
Şu anda ADF, onaylandıktan sonra özel uç noktası durumunu çekmeyi durduruyor. Bu nedenle ADF'de gösterilen durum eskidir.
Mevcut özel uç noktalar reddedildikten/kaynak/havuz veri kümelerinden silindikten sonra ADF'de yönetilen özel uç noktayı silmelisiniz.
Hizmet için genel ağ erişimini devre dışı bırakdıktan sonra, şirket içinde barındırılan tümleştirme çalışma zamanı aşağıdaki hataları oluşturur: The Authentication key is invalid or empty.
veya Cannot connect to the data factory. Please check whether the factory has enabled public network access or the machine is hosted in a approved private endpoint Virtual Network.
Genel bağlantıyı devre dışı bırakmak ve özel uç nokta oluşturmak yeniden bağlanmayı önlediğinden, sorun büyük olasılıkla bir Etki Alanı Adı Sistemi (DNS) çözümleme sorunundan kaynaklanır.
Hizmetin tam etki alanı adının (FQDN) genel IP adresine çözümlenip çözümlenmediğini doğrulamak için aşağıdakileri yapın:
Azure sanal makinesini (VM) hizmetin özel uç noktasıyla aynı sanal ağda oluşturduğunuzu onaylayın.
Azure VM'den hizmet FQDN'sine PsPing ve Ping komutunu çalıştırın:
psping.exe <dataFactoryName>.<region>.datafactory.azure.net:443
ping <dataFactoryName>.<region>.datafactory.azure.net
Not
PsPing komutu için bir bağlantı noktası belirtmeniz gerekir. Bağlantı noktası 443 burada gösterilir ancak gerekli değildir.
Her iki komutun da belirtilen bölgeyi temel alan bir Azure Data Factory genel IP'sine çözümlenip çözümlenmeyeceğini denetleyin. IP şu biçimde olmalıdır:
xxx.xxx.xxx.0
Sorunu çözmek için aşağıdakileri yapın:
Seçenek olarak, hizmetin "Özel bağlantı DNS Bölgesi" altına el ile bir "Sanal Ağ bağlantısı" eklemenizi öneririz. Ayrıntılar için Azure Özel Bağlantı makalesine bakın. Yönerge, hizmet FQDN'sini özel bir IP adresine çözümlemek için özel DNS bölgesini veya özel DNS sunucusunu yapılandırmaya yöneliktir.
Ancak, özel DNS bölgesini veya özel DNS sunucusunu yapılandırmak istemiyorsanız aşağıdaki geçici çözümü deneyin:
Windows'ta konak dosyasını değiştirin ve özel IP'yi (hizmetin özel uç noktası) hizmet FQDN'sine eşleyin.
Azure VM'de adresine gidin
C:\Windows\System32\drivers\etc
ve ardından ana bilgisayar dosyasını Not Defteri'nde açın. Özel IP'yi dosyanın sonundaki FQDN'ye eşleyen satırı ekleyin ve değişikliği kaydedin.Özel IP'yi içermesi gereken yanıtı denetlemek için önceki doğrulama adımlarındaki komutların aynısını yeniden çalıştırın.
Şirket içinde barındırılan tümleştirme çalışma zamanını yeniden kaydettiğinizde sorun çözülmelidir.
Özel bağlantı nedeniyle şirket içinde barındırılan VM'lere IR kimlik doğrulama anahtarı kaydedilemiyor
Özel bağlantı etkinleştirildiğinden, şirket içinde barındırılan VM'ye IR kimlik doğrulama anahtarını kaydedemezsiniz. Aşağıdaki hata iletisini alırsınız:
"Anahtar *************** ve zaman maliyeti olan ADF hizmetinden hizmet belirteci alınamadı: 0,1250079 saniye, hata kodu: InvalidGatewayKey, activityId: XXXXXXX ve ayrıntılı hata iletisi İstemci IP adresi geçerli değil özel ip nedeni Veri fabrikasının ortak ağa erişememesi nedeniyle başarılı bağlantı kurabilmek için buluta ulaşamadı."
Sorunun nedeni şirket içinde barındırılan IR'yi yüklemeye çalıştığınız VM olabilir. Buluta bağlanmak için genel ağ erişiminin etkinleştirildiğinden emin olun.
Çözüm 1
Sorunu çözmek için aşağıdakileri yapın:
Fabrikalar - Güncelleştirme sayfasına gidin.
Sağ üst köşede Deneyin düğmesini seçin.
Parametreler'in altında gerekli bilgileri tamamlayın.
Gövde'nin altına aşağıdaki özelliği yapıştırın:
{ "tags": { "publicNetworkAccess":"Enabled" } }
İşlevi çalıştırmak için Çalıştır'ı seçin.
Parametreler'in altında gerekli bilgileri tamamlayın.
Gövde'nin altına aşağıdaki özelliği yapıştırın:
{ "tags": { "publicNetworkAccess":"Enabled" } }
İşlevi çalıştırmak için Çalıştır'ı seçin.
Yanıt Kodu: 200'un görüntülendiğini onaylayın. Yapıştırdığınız özellik JSON tanımında da görüntülenmelidir.
Tümleştirme çalışma zamanına IR kimlik doğrulama anahtarını yeniden ekleyin.
Çözüm 2
Sorunu çözmek için Azure Özel Bağlantı gidin.
Aşağıdaki ekran görüntüsünde gösterildiği gibi kullanıcı arabiriminde genel ağ erişimini etkinleştirmeyi deneyin:
Hizmet özel DNS bölgesi Azure Resource Manager DNS çözümlemeyi geçersiz kılar ve 'Bulunamadı' hatasına neden olur
Hem Azure Resource Manager hem de hizmet aynı özel bölgeyi kullanarak müşterinin özel DNS'sinde Azure Resource Manager kayıtlarının bulunmayacağı bir senaryoyla olası bir çakışma oluşturuyor.
- Azure portalında privatelink.azure.com Özel DNS bölge bulun.
- A kaydı adf olup olmadığını denetleyin.
- Sanal ağ bağlantıları'na gidin, tüm kayıtları silin.
- Azure portalında hizmetinize gidin ve portal için özel uç noktayı yeniden oluşturun.
- Özel DNS bölgelere dönün ve yeni bir özel DNS bölgesi privatelink.adf.azure.com olup olmadığını denetleyin.
Azure Blob Depolama hesabı genel erişimiyle veri kopyalarken işlem hattı çalıştırmaları rastgele başarısız olur ve aşağıdaki hatayla başarısız olur.
Örneğin: Azure Blob Depolama havuzu Azure IR 'yi (yönetilen sanal ağ değil genel) ve Azure SQL Veritabanı kaynağı yönetilen sanal ağ IR'sini kullanıyordu. Veya kaynak/havuz, Yönetilen sanal ağ IR'lerini yalnızca depolama genel erişimiyle kullanır.
<LogProperties><Text>Invoke callback url with req: "ErrorCode=AzureBlobFailedToCreateContainer,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Unable to create Azure Blob container. Endpoint: XXXXXXX/, Container Name: test.,Source=Microsoft.DataTransfer.ClientLibrary,''Type=Microsoft.WindowsAzure.Storage.StorageException,Message=Unable to connect to the remote server,Source=Microsoft.WindowsAzure.Storage,''Type=System.Net.WebException,Message=Unable to connect to the remote server,Source=System,''Type=System.Net.Sockets.SocketException,Message=A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond public ip:443,Source=System,'","Details":null}}</Text></LogProperties>.
Hizmet yönetilen sanal ağ IR'sini kullanmaya devam edebilir, ancak Yönetilen sanal ağda Azure Blob Depolama genel uç nokta test sonucuna göre güvenilir olmadığından ve Azure Blob Depolama ve Azure Data Lake 2. Nesil'in hizmetin Yönetilen sürümünden genel uç nokta üzerinden bağlanması desteklenmediğinden bu hatayla karşılaşabilirsiniz Sanal AğYönetilen sanal ağ ve yönetilen özel uç noktalar.
- Yönetilen sanal ağ IR kullanılırken kaynakta ve havuz tarafında özel uç noktanın etkinleştirilmesi.
- Genel uç noktayı kullanmaya devam etmek istiyorsanız, kaynak ve havuz için Yönetilen sanal ağ IR'sini kullanmak yerine yalnızca genel IR'ye geçebilirsiniz. Genel IR'ye geri dönseniz bile, Yönetilen sanal ağ IR hala oradaysa hizmet Yönetilen sanal ağ IR'sini kullanmaya devam edebilir.
Müşteri Tarafından Yönetilen Anahtar (CMK) ve Kullanıcı Tarafından Atanan Yönetilen Kimlik (UA-MI) ile veri fabrikasını veya Synapse çalışma alanını silmeye çalışırken iç hata oluştu
{\"error\":{\"code\":\"InternalError\",\"message\":\"Internal error has occurred.\"}}
CMK ile ilgili herhangi bir işlem gerçekleştiriyorsanız, önce hizmetle ilgili tüm işlemleri, ardından dış işlemleri (Yönetilen Kimlikler veya Key Vault işlemleri gibi) tamamlamanız gerekir. Örneğin, tüm kaynakları silmek istiyorsanız önce hizmet örneğini ve ardından anahtar kasasını silmeniz gerekir. Önce anahtar kasasını silerseniz, hizmet artık gerekli nesneleri okuyamadığından ve silmenin mümkün olup olmadığını doğrulayamadığından bu hata oluşur.
Sorunu çözmenin üç olası yolu vardır. Bunlar aşağıdaki gibidir:
Hizmetin CMK anahtarının depolandığı Key vault'a erişimini iptal ettiniz. Şu izinlere erişimi yeniden atayabilirsiniz: Get, Unwrap Key ve Wrap Key. Bu izinler, müşteri tarafından yönetilen anahtarları etkinleştirmek için gereklidir. Müşteri tarafından yönetilen anahtarlara erişim verme bölümüne bakın. İzin sağlandıktan sonra hizmeti silebilmeniz gerekir.
Müşteri hizmeti silmeden önce Key Vault/CMK'yi sildi. Hizmetteki CMK'de varsayılan saklama ilkesi 90 gün olan "Geçici Silme" ve "Temizleme Koruması" etkinleştirilmelidir. Silinen anahtarı geri yükleyebilirsiniz.
Silinen Anahtarı kurtarma ve Silinen Anahtar Değeri'ne göz atınKullanıcı Tarafından Atanan Yönetilen Kimlik (UA-MI) hizmet öncesinde silindi. REST API çağrılarını kullanarak bu durumdan kurtarabilirsiniz. Bunu istediğiniz bir http istemcisinde herhangi bir programlama dilinde yapabilirsiniz. Azure kimlik doğrulaması ile REST API çağrıları için henüz ayarlanmış bir şey yoksa, bunu yapmanın en kolay yolu Fiddler'ı kullanmaktır. Aşağıdaki adımları izleyin.
Yöntemi kullanarak GET çağrısı yapma: GET Url'si gibi
https://management.azure.com/subscriptions/YourSubscription/resourcegroups/YourResourceGroup/providers/Microsoft.DataFactory/factories/YourFactoryName?api-version=2018-06-01
Farklı bir Ada sahip yeni bir Kullanıcı Tarafından Yönetilen Kimlik oluşturmanız gerekir (aynı ad işe yarayabilir, ancak emin olmak için GET yanıtında bulunandan farklı bir ad kullanmak daha güvenlidir)
Encryption.identity özelliğini ve identity.userassignedid varlıklarını yeni oluşturulan yönetilen kimliğe işaret eden şekilde değiştirin. userAssignedIdentity nesnesinden clientId ve principalId değerini kaldırın.
Yeni gövdeyi geçirerek aynı URL'ye put çağrısı yapın. GET yanıtında sahip olduğunuz her şeyi geçirmeniz ve yalnızca kimliği değiştirmeniz önemlidir. Aksi takdirde, diğer ayarları istemeden geçersiz kılarlar.
Çağrı başarılı olduktan sonra varlıkları yeniden görebilir ve silmeyi yeniden deneyebilirsiniz.
Kullanıcı arabiriminden şirket içinde barındırılan IR'yi paylaşmaya çalışırken diğer veri fabrikalarını (farklı kiracılarda) fark edebilirsiniz, ancak bunu farklı kiracılardaki veri fabrikalarında paylaşamazsınız.
Şirket içinde barındırılan IR kiracılar arasında paylaşılamaz.
Sorun giderme konusunda daha fazla yardım için aşağıdaki kaynakları deneyin: