استكشاف مشكلات الأمان والتحكم في الوصولAzure Data Factory Synapse Analytics وإصلاحها
ينطبق على: Azure Data Factory Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
تستكشف هذه المقالة الأساليب الشائعة لاستكشاف مشكلات الأمان والتحكم في الوصول في Azure Data Factory ومسارات Synapse Analytics وإصلاحها.
الأخطاء والرسائل الشائعة
مشكلة الاتصال في نشاط النسخ في مخزن البيانات السحابي
العلامات
قد يسفر عن العديد من رسائل الخطأ عند حدوث مشكلات الاتصال في مخزن بيانات المصدر أو المتلقي.
السبب
السبب في هذه المشكلة عادة ما يكون أحد العوامل التالية:
إعداد الوكيل في عقدة وقت تشغيل التكامل المستضاف ذاتياً (IR)، إذا كنت تستخدم وقت تشغيل التكامل المستضاف ذاتياً.
إعداد جدار الحماية في عقدة وقت تشغيل التكامل المستضاف ذاتياً، إذا كنت تستخدم وقت تشغيل التكامل المستضاف ذاتياً.
إعداد جدار الحماية في مخزن البيانات السحابية.
نوع الحل
للتأكد من أن هذه مشكلة تتعلق بالاتصال، تحقق من النقاط التالية:
- طرح الخطأ من موصلات المصدر أو المتلقي.
- يكون الفشل في بداية نشاط النسخ.
- الفشل هو نفسه مع وقت تشغيل التكامل Azure أو وقت تشغيل التكامل المستضاف ذاتياً مع عقدة واحدة، لأنه قد يكون فشل عشوائي في وقت تشغيل التكامل المستضاف ذاتياً ذي العقدة المتعددة إذا كانت بعض العقد فقط تعاني من المشكلة.
إذا كنت تستخدم وقت تشغيل التكامل المستضاف ذاتياً، فتحقق من إعدادات الوكيل وجدار الحماية والشبكة، لأن الاتصال بنفس مخزن البيانات قد ينجح إذا كنت تستخدم وقت تشغيل التكامل Azure. لاستكشاف الأخطاء في هذا السيناريو وإصلاحها، راجع:
إذا كنت تستخدم وقت تشغيل التكامل Azure، حاول تعطيل إعداد جدار الحماية من مخزن البيانات. يمكن لهذه الطريقة حل المشكلات في الحالتين التاليتين:
- عناوين IP ل Azure IR غير موجودة في قائمة السماح.
- يُوقف تشغيل ميزة السماح لخدمات Microsoft الموثوق بها للوصول إلى حساب التخزين هذا لـAzure Blob Storage وAzure Data Lake Storage Gen 2.
- لا يمكن الإعداد Allow access to Azure services لـ Azure Data Lake Storage Gen1.
إذا لم تعمل أي من الطرق السابقة، اتصل على Microsoft للحصول على المساعدة.
لا تزال نقطة النهاية الخاصة المحذوفة أو المرفوضة تظهر الموافقة في ADF
العلامات
لقد أنشأت نقطة نهاية خاصة مدارة من ADF وحصلت على نقطة نهاية خاصة معتمدة. ولكن بعد حذف نقطة النهاية الخاصة أو رفضها لاحقا، لا تزال نقطة النهاية الخاصة المدارة في ADF موجودة وتعرض "تمت الموافقة عليها".
السبب
حاليا، يتوقف ADF عن سحب حالة نقطة النهاية الخاصة بعد الموافقة عليها. ومن ثم فإن الحالة المعروضة في ADF قديمة.
نوع الحل
يجب حذف نقطة النهاية الخاصة المدارة في ADF بمجرد رفض/حذف نقاط النهاية الخاصة الموجودة من مجموعات بيانات المصدر/المتلقي.
مشكلة مفتاح المصادقة غير صالحة أو فارغة بعد تعطيل الوصول إلى شبكة الاتصال العامة
العلامات
بعد تعطيل الوصول إلى الشبكة العامة للخدمة، يُلقي وقت تشغيل التكامل المستضاف ذاتياً الأخطاء التالية: The Authentication key is invalid or empty.
أو 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.
السبب
السبب وراء هذه المشكلة في الأرجح هو مسألة مشكلة دقة Domain Name System (DNS)، لأن تعطيل الاتصال العام وإنشاء نقطة نهاية خاصة يمنع إعادة الاتصال.
للتحقق مما إذا كان مشكلة اسم المجال المؤهل بالكامل للخدمة (FQDN) إلى عنوان IP العام قد حُلت، نفذ التالي:
تأكد من أنك قد أنشأت الجهاز الظاهري Azure (VM) في نفس الشبكة الظاهرية كنقطة النهاية الخاصة بالخدمة.
شغّل PsPing وPing من Azure VM إلى الخدمة FQDN:
psping.exe <dataFactoryName>.<region>.datafactory.azure.net:443
ping <dataFactoryName>.<region>.datafactory.azure.net
إشعار
يجب أن تحدد منفذ للأمر PsPing. يظهر المنفذ 443 هنا، ولكنه غير مطلوب.
تحقق لمعرفة ما إذا كان الأمران قد تم حلهما إلى IP عام لـAzure Data Factory الذي يستند إلى منطقة محددة. يجب أن يكون IP بالتنسيق التالي:
xxx.xxx.xxx.0
نوع الحل
لحل هذه المشكلة، نفذ ما يلي:
كخيار، نود أن نقترح عليك إضافة "ارتباط الشبكة الافتراضية" يدويا تحت "منطقة الارتباط الخاص DNS" للخدمة. للحصول على التفاصيل، راجع مقالة الارتباط الخاص Azure. هذه التعليمات لتكوين منطقة DNS الخاصة أو ملقم DNS مخصص لحل الخدمة FQDN إلى عنوان IP خاص.
ومع ذلك، إذا كنت لا تريد تكوين منطقة DNS الخاصة أو ملقم DNS مخصص، حاول الحل المؤقت التالي:
غيّر ملف المضيف في Windows، وعيّن IP الخاص (نقطة النهاية الخاصة للخدمة) إلى الخدمة FQDN.
في Azure VM، انتقل إلى
C:\Windows\System32\drivers\etc
، ثم افتح الملف المضيف في المفكرة. أضف السطر الذي يعين IP الخاص إلى FQDN في نهاية الملف واحفظ التغيير.أعد تشغيل نفس الأوامر كما في خطوات التحقق السابقة للتحقق من الاستجابة، والتي يجب أن تحتوي على IP الخاص.
أعد تسجيل وقت تشغيل التكامل المستضاف ذاتياً، وينبغي حينها أن تكون المشكلة قد حُلّت.
غير قادر على تسجيل مفتاح مصادقة وقت تشغيل التكامل على VMs المستضاف ذاتياً بسبب ارتباط خاص
العلامات
لا يمكنك تسجيل مفتاح مصادقة وقت تشغيل التكامل على الجهاز الظاهري المستضاف ذاتياً لأن الارتباط الخاص قد مُكِّن. تتلقى رسالة الخطأ التالية:
"فشل الحصول على رمز الخدمة المميز من خدمة ADF مع مفتاح *************** وتكلفة الوقت هي: 0.1250079 ثانية، رمز الخطأ هو: InvalidGatewayKey، activityId هو: XXXXXXX ورسالة الخطأ التفصيلية هو عنوان IP العميل غير صالح ip خاص لم يتمكن مصنع البيانات من الوصول إلى الشبكة العامة وبالتالي لم يتمكن من الوصول إلى السحابة لإجراء الاتصال الناجح."
السبب
قد تكون المشكلة بسبب الجهاز الظاهري الذي تحاول تثبيت وقت تشغيل التكامل المستضاف ذاتياً عليه. للاتصال بالسحابة، تأكد من تمكين الوصول إلى الشبكة العامة.
نوع الحل
الحل 1
لحل هذه المشكلة، نفذ ما يلي:
انتقل إلى صفحة Factories - Update.
في أعلى اليمين، حدد الزر Try it.
ضمن Parameters، أكمل المعلومات المطلوبة.
ضمن Body، الصق الخاصية التالية:
{ "tags": { "publicNetworkAccess":"Enabled" } }
حدد Run لتشغيل الدالة.
ضمن Parameters، أكمل المعلومات المطلوبة.
ضمن Body، الصق الخاصية التالية:
{ "tags": { "publicNetworkAccess":"Enabled" } }
حدد Run لتشغيل الدالة.
تأكد من عرض رمز الاستجابة: 200. يجب عرض الخاصية التي لصقتها في تعريف JSON أيضا.
أضف مفتاح مصادقة وقت تشغيل التكامل مرة أخرى في وقت تشغيل التكامل.
الحل 2
لحل المشكلة، انتقل إلى Azure Private Link.
حاول تمكين الوصول إلى الشبكة العامة على واجهة المستخدم، كما هو موضح في لقطة الشاشة التالية:
تتجاوز منطقة DNS الخاصة بالخدمة دقة Azure Resource Manager DNS مما يتسبب في حدوث خطأ "لم يتم العثور عليه"
السبب
يستخدم كل من Azure Resource Manager والخدمة نفس المنطقة الخاصة التي تنشئ تعارضا محتملا على DNS الخاص بالعميل مع سيناريو حيث لن يتم العثور على سجلات Azure Resource Manager.
نوع الحل
- ابحث عن مناطق DNS الخاصة privatelink.azure.com في مدخل Azure.
- تحقق مما إذا كان هناك سجل A adf.
- انتقل إلى Virtual network links، واحذف جميع السجلات.
- انتقل إلى الخدمة في مدخل Azure وأعد إنشاء نقطة النهاية الخاصة للمدخل.
- ارجع إلى مناطق DNS الخاصة، وتحقق مما إذا كانت هناك منطقة DNS خاصة جديدة privatelink.adf.azure.com.
خطأ الاتصال في نقطة النهاية العامة
العلامات
عند نسخ البيانات مع الوصول العام لحساب Azure Blob Storage، يفشل المسار المشغل عشوائيا مع الخطأ التالي.
على سبيل المثال: كان مصدر Azure Blob Storage يستخدم وقت تشغيل تكامل Azure (الشبكة الظاهرية العامة، وليس المدارة) وكان مصدر قاعدة بيانات Azure SQL يستخدم وقت تشغيل التكامل للشبكة الظاهرية المدارة. أو يستخدم المصدر/المتلقي وقت تشغيل التكامل للشبكة الظاهرية المدارة فقط مع الوصول العام للتخزين.
<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>.
السبب
قد لا تزال الخدمة تستخدم وقت تشغيل التكامل للشبكة الظاهرية المدارة، ولكن قد تواجه مثل هذا الخطأ لأن نقطة النهاية العامة إلى Azure Blob Storage في الشبكة الظاهرية المدارة غير موثوق بها استنادا إلى نتيجة الاختبار، ولا يتم دعم Azure Blob Storage وAzure Data Lake Gen2 للاتصال من خلال نقطة النهاية العامة من الشبكة الظاهرية المدارة للخدمة وفقا للشبكة الظاهرية المدارة ونقاط النهاية الخاصة المدارة.
نوع الحل
- تمكين نقطة النهاية الخاصة على المصدر وأيضا جانب المتلقي عند استخدام وقت تشغيل التكامل للشبكة الظاهرية المدارة.
- إذا كنت لا تزال ترغب في استخدام نقطة النهاية العامة، يمكنك التبديل إلى وقت تشغيل التكامل العام فقط بدلا من استخدام وقت تشغيل التكامل للشبكة الظاهرية المدارة للمصدر والمتلقي. حتى إذا قمت بالتبديل مرة أخرى إلى وقت تشغيل التكامل العام، فقد لا تزال الخدمة تستخدم وقت تشغيل التكامل للشبكة الظاهرية المدارة إذا كان وقت تشغيل التكامل للشبكة الظاهرية المدارة لا يزال هناك.
خطأ داخلي أثناء محاولة حذف مصنع بيانات أو مساحة عمل Synapse باستخدام مفتاح مدار للعميل (CMK) والهوية المدارة المعينة للمستخدم (UA-MI)
العلامات
{\"error\":{\"code\":\"InternalError\",\"message\":\"Internal error has occurred.\"}}
السبب
إذا كنت تقوم بأي عمليات متعلقة ب CMK، فيجب عليك إكمال جميع العمليات المتعلقة بالخدمة أولا، ثم العمليات الخارجية (مثل الهويات المدارة أو عمليات Key Vault). على سبيل المثال، إذا أردت حذف جميع الموارد، فستحتاج إلى حذف مثيل الخدمة أولاً، ثم حذف خزانة المفاتيح. إذا قمت بحذف مخزن المفاتيح أولا، يحدث هذا الخطأ نظرا لأن الخدمة لا يمكنها قراءة الكائنات المطلوبة بعد الآن، ولن تتمكن من التحقق مما إذا كان الحذف ممكنا أم لا.
نوع الحل
هناك ثلاث طرق ممكنة لحل هذه المسألة. هذه القوالب هي:
تلغي وصول الخدمة إلى خزانة المفتاح حيث خزن مفتاح CMK. يمكنك إعادة تعيين الوصول إلى الأذونات التالية: Get, Unwrap Key, and Wrap Key. هذه الأذونات مطلوبة لتمكين المفاتيح التي يديرها العملاء. راجع منح حق الوصول إلى المفاتيح التي يديرها العميل. بمجرد توفير الإذن، يجب أن تكون قادراً على حذف الخدمة.
حذف العميل لـ Key Vault / CMK قبل حذف الخدمة. يجب أن يكون لـ CMK في الخدمة "Soft Delete" و"Purge Protect" ممكنين، على أن يكون لديها نهج الاستبقاء الافتراضي لمدة 90 يوماً. يمكنك استعادة المفتاح المحذوف.
مراجعة استرداد المفتاح المحذوف وقيمة المفتاح المحذوفةحذف "الهوية المدارة المعينة من قِبَل المستخدم" (UA-MI) قبل الخدمة. يمكنك الاسترداد من هذا باستخدام استدعاءات واجهة برمجة تطبيقات REST. يمكنك القيام بذلك في عميل http من اختيارك بأي لغة برمجة. إذا لم يكن لديك أي شيء تم إعداده بالفعل لاستدعاءات REST API باستخدام مصادقة Azure، فإن أسهل طريقة للقيام بذلك ستكون باستخدام Fiddler. اتبع الخطوات التالية.
قم بإجراء استدعاء GET باستخدام الطريقة: GET Url like
https://management.azure.com/subscriptions/YourSubscription/resourcegroups/YourResourceGroup/providers/Microsoft.DataFactory/factories/YourFactoryName?api-version=2018-06-01
تحتاج إلى إنشاء هوية مدارة جديدة للمستخدم باسم مختلف (قد يعمل نفس الاسم، ولكن للتأكد فقط، من الآمن استخدام اسم مختلف عن الاسم في استجابة GET)
عدّل encryption.identity و.userasidentities للإشارة إلى الهوية المدارة المُنشأة حديثاً. أزل clientId وprincipalId من كائن userAssignedIdentity.
أجرِ مكالمة PUT إلى نفس url لتمرير النص الجديد. من المهم أن تقوم بتمرير كل ما حصلت عليه في استجابة GET، وتعديل الهوية فقط. وإلا فإنها تتجاوز إعدادات أخرى عن غير قصد.
بعد نجاح المكالمة، ستتمكن من رؤية الكيانات مرة أخرى وإعادة محاولة الحذف.
مشاركة وقت تشغيل التكامل المستضاف ذاتياً
مشاركة وقت تشغيل التكامل المستضاف ذاتيا من مستأجر مختلف غير مدعوم
العلامات
قد تلاحظ مصانع بيانات أخرى (على مستأجرين مختلفين) أثناء محاولتك مشاركة وقت تشغيل التكامل المستضاف ذاتياً من واجهة المستخدم، ولكن لا يمكنك مشاركتها عبر مصانع البيانات الموجودة على مستأجرين مختلفين.
السبب
لا يمكن مشاركة وقت تشغيل التكامل المستضاف ذاتياً عبر المستأجرين.
المحتوى ذو الصلة
لمزيد من المساعدة في استكشاف الأخطاء وإصلاحها، جرب الموارد التالية: