ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يستخدم العملاء نقاط النهاية الخاصة بشكل متزايد في المستأجرين للاتصال بخدمات النظام الأساسي Azure كخدمة (PaaS) بشكل خاص وآمن. يمكن لنقاط النهاية الخاصة الاتصال بالخدمات عبر مستأجري Azure Active Directory (Azure AD). للأمان والتوافق، قد تحتاج إلى حظر اتصالات المستأجرين عبر Azure AD على نقاط النهاية الخاصة بك. يوضح لك هذا التوجيه خيارات التكوين الموصى بها للحد من اتصالات نقطة النهاية الخاصة عبر المستأجرين أو منعها. تساعدك هذه الخيارات على إنشاء عناصر تحكم منع تسرب البيانات (DLP) داخل بيئة Azure.
مقدمة إلى نقاط النهاية الخاصة
استخدم نقاط النهاية الخاصة للتحكم في نسبة استخدام الشبكة داخل بيئة Azure باستخدام محيط شبكة موجود. ولكن هناك سيناريوهات حيث يجب عليك الاحتفاظ باتصالات نقطة النهاية الخاصة داخل مستأجر Azure AD الشركة فقط. توضح الأمثلة التالية الاتصالات التي قد تنشئ مخاطر أمنية.
- الاتصال أ: ينشئ المسؤول المخادع نقاط نهاية خاصة على الشبكة الظاهرية للعميل. ترتبط نقاط النهاية هذه بالخدمات المستضافة خارج بيئة العميل، مثل مستأجر Azure AD آخر.
- الاتصال ب: ينشئ المسؤول المخادع نقاط نهاية خاصة في مستأجرين Azure AD آخرين يرتبطون بالخدمات المستضافة في مستأجر Azure AD العميل.
الشكل 1: رسم توضيحي لسيناريوهات نقطة النهاية الخاصة عبر المستأجرين.
لكلا السيناريوهين، يمكنك تحديد معرف المورد للخدمة والموافقة يدويا على اتصال نقطة النهاية الخاصة. يتطلب المستخدمون أيضا الوصول إلى التحكم في الوصول استنادا إلى الدور (RBAC) لتشغيل هذه الإجراءات.
تعرض الاتصالات C وD في الشكل 1 السيناريوهات التي يريد العملاء السماح بها بشكل عام. يتم الاحتفاظ باتصالات نقطة النهاية الخاصة داخل مستأجر Azure AD الشركة. لا تمثل خطرا أمنيا لذلك لا تتم تغطية هذين السيناريوهين في هذه المقالة.
تمنحك المعلومات التالية خيارات لمنع توفير نقاط النهاية الخاصة عبر المستأجرين Azure AD.
رفض نقاط النهاية الخاصة المرتبطة بالخدمات في المستأجرين الآخرين
السيناريو الأول: يتطلب المسؤول المخادع الحقوق التالية في اشتراك في المستأجر Azure AD للعميل.
- حقوق Microsoft.Network/virtualNetworks/join/action على شبكة فرعية مع تعيين PrivateEndpointNetworkPolicies إلى Disabled.
- Microsoft.Network/privateEndpoints/write access to a resource group in the customer environment.
باستخدام هذه الحقوق، يمكن للمسؤول المخادع إنشاء نقطة نهاية خاصة في المستأجر Azure AD للعميل. ترتبط نقطة النهاية الخاصة هذه بخدمة في اشتراك منفصل ومستأجر Azure AD. يوضح الشكل 1 هذا السيناريو كاتصال A.
بالنسبة لهذا السيناريو، يقوم المستخدم بإعداد مستأجر Azure AD خارجي واشتراك Azure. بعد ذلك، يقومون بإنشاء نقطة نهاية خاصة في بيئة العميل عن طريق تحديد معرف المورد للخدمة يدويا. وأخيرا، يوافق المسؤول المخادع على نقطة النهاية الخاصة على الخدمة المرتبطة المستضافة في مستأجر Azure AD الخارجي للسماح بنسبة استخدام الشبكة عبر الاتصال.
بعد موافقة المسؤول المخادع على اتصال نقطة النهاية الخاصة، يمكن نسخ بيانات الشركة من الشبكة الظاهرية للشركات إلى خدمة Azure على مستأجر Azure AD خارجي. يمكن أن تحدث مخاطر الأمان هذه فقط إذا تم منح الوصول باستخدام Azure RBAC.
التخفيف من المخاطر للسيناريو الأول
استخدم نهج Azure التالي لحظر القدرة تلقائيا على إنشاء نقطة نهاية خاصة في مستأجر Azure AD الشركة المرتبط بخدمة Azure خارجية.
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Network/privateEndpoints"
},
{
"anyOf": [
{
"count": {
"field": "Microsoft.Network/privateEndpoints/manualprivateLinkServiceConnections[*]",
"where": {
"allOf": [
{
"field": "Microsoft.Network/privateEndpoints/manualprivateLinkServiceConnections[*].privateLinkServiceId",
"notEquals": ""
},
{
"value": "[split(concat(first(field('Microsoft.Network/privateEndpoints/manualprivateLinkServiceConnections[*].privateLinkServiceId')), '//'), '/')[2]]",
"notEquals": "[subscription().subscriptionId]"
}
]
}
},
"greaterOrEquals": 1
},
{
"count": {
"field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*]",
"where": {
"allOf": [
{
"field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].privateLinkServiceId",
"notEquals": ""
},
{
"value": "[split(concat(first(field('Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].privateLinkServiceId')), '//'), '/')[2]]",
"notEquals": "[subscription().subscriptionId]"
}
]
}
},
"greaterOrEquals": 1
}
]
}
]
},
"then": {
"effect": "Deny"
}
يرفض هذا النهج أي نقاط نهاية خاصة تم إنشاؤها خارج اشتراك الخدمة المرتبطة، مثل الاتصالات A وD. يوفر النهج أيضا المرونة لاستخدام manualPrivateLinkServiceConnections
و privateLinkServiceConnections
.
يمكنك تحديث هذا النهج بحيث يتم إنشاء نقاط النهاية الخاصة فقط في مجموعة معينة من الاشتراكات. يمكنك إجراء هذا التغيير عن طريق إضافة معلمة list
واستخدام البنية "notIn": "[parameters('allowedSubscriptions')]"
. ولكن هذا النهج غير مستحسن، لأنه يعني أنه سيتعين عليك الاحتفاظ باستمرار بقائمة الاشتراكات لهذا النهج. كلما تم إنشاء اشتراك جديد داخل المستأجر الخاص بك، يجب إضافة معرف الاشتراك إلى المعلمة .
بدلا من ذلك، قم بتعيين النهج إلى مجموعة الإدارة ذات المستوى الأعلى، ثم استخدم الإعفاءات عند الحاجة.
اعتبارات السيناريو الأول
يمنع هذا النهج القدرة على إنشاء نقاط نهاية خاصة في اشتراك مختلف عن الخدمة نفسها. إذا كانت نقاط النهاية هذه مطلوبة لحالات استخدام معينة، فاستخدم إعفاءات النهج. أنشئ المزيد من النهج ل Data Factory وAzure Synapse للتأكد من أن نقاط النهاية الخاصة المدارة المستضافة على الشبكة الظاهرية المدارة يمكنها الاتصال بالخدمات المستضافة داخل المستأجر Azure AD فقط.
رفض الاتصالات من نقاط النهاية الخاصة التي تم إنشاؤها في مستأجرين آخرين
السيناريو الثاني: يتطلب المسؤول المخادع الوصول للكتابة على الخدمة في بيئة العميل التي يجب إنشاء نقطة نهاية خاصة لها.
باستخدام هذا الحق، يمكن للمسؤول المخادع إنشاء نقطة نهاية خاصة في مستأجر Azure AD خارجي واشتراك. ترتبط نقطة النهاية هذه بخدمة في مستأجر Azure AD العميل. يوضح الشكل 1 هذا السيناريو كاتصال B.
في هذا السيناريو، يحتاج المسؤول المخادع أولا إلى تكوين مستأجر Azure AD خاص خارجي واشتراك Azure. بعد ذلك، يقومون بإنشاء نقطة نهاية خاصة في بيئتهم عن طريق تحديد معرف المورد ومعرف المجموعة للخدمة يدويا في مستأجر Azure AD الشركة. وأخيرا، يوافقون على نقطة النهاية الخاصة على الخدمة المرتبطة للسماح بنسبة استخدام الشبكة عبر الاتصال عبر المستأجرين Azure AD.
بعد موافقة المسؤول المخادع أو مالك الخدمة على نقطة النهاية الخاصة، يتم الوصول إلى البيانات من الشبكة الظاهرية الخارجية.
التخفيف من المخاطر للسيناريو الثاني
استخدم النهج الخاصة بالخدمة لمنع هذا السيناريو عبر مستأجر العميل. اتصالات نقطة النهاية الخاصة هي مصادر فرعية للخدمات المعنية وتظهر ضمن قسم خصائصها. رفض الاتصالات غير المتوافقة باستخدام تعريف النهج التالي:
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Storage/storageAccounts/privateEndpointConnections"
},
{
"field": "Microsoft.Storage/storageAccounts/privateEndpointConnections/privateLinkServiceConnectionState.status",
"equals": "Approved"
},
{
"anyOf": [
{
"field": "Microsoft.Storage/storageAccounts/privateEndpointConnections/privateEndpoint.id",
"exists": false
},
{
"value": "[split(concat(field('Microsoft.Storage/storageAccounts/privateEndpointConnections/privateEndpoint.id'), '//'), '/')[2]]",
"notEquals": "[subscription().subscriptionId]"
}
]
}
]
},
"then": {
"effect": "Deny"
}
يعرض هذا النهج مثالا ل Azure Storage. نسخ نفس تعريف النهج للخدمات الأخرى مثل Key Vaultوالخدمات المعرفيةSQL Server. لاحظ أن Azure App Service لا تدعم التخفيف من المخاطر هذا في الوقت الحالي.
لتحسين إمكانية الإدارة بشكل أكبر، قم بتجميع النهج الخاصة بالخدمة في مبادرة. يرفض النهج الموافقة على اتصالات نقطة النهاية الخاصة بنقاط النهاية الخاصة التي تتم استضافتها خارج اشتراك الخدمة المعنية. لا يرفض رفض أو إزالة اتصالات نقطة النهاية الخاصة، وهو السلوك الذي يريده العملاء. لا تتأثر مهام سير عمل الموافقة التلقائية، مثل الاتصال C، بهذا النهج.
ولكن يتم حظر الموافقة على اتصالات نقطة النهاية الخاصة المتوافقة داخل المدخل باستخدام هذا الأسلوب. تحدث هذه الكتلة لأن واجهة مستخدم المدخل لا ترسل معرف المورد لنقطة النهاية الخاصة المتصلة في حمولتها. يوصى باستخدام Azure Resource Manager أو Azure PowerShell أو Azure CLI للموافقة على اتصال نقطة النهاية الخاصة.
أيضا، قم بتعيين النهج إلى مجموعة الإدارة ذات المستوى الأعلى واستخدم الإعفاءات عند الحاجة.
اعتبارات السيناريو الثاني
توفر Azure Synapse Analytics وAzure Data Factory شبكات ظاهرية مدارة ونقاط نهاية خاصة مدارة. وبسبب هذه الإمكانات الجديدة، يحظر النهج الاستخدام الآمن والخاص لهذه الخدمات.
يوصى باستخدام تأثير التدقيق بدلا من تأثير الرفض في تعريف النهج الذي تستخدمه في السيناريو الثاني للتخفيف. يساعدك هذا التغيير على تعقب نقاط النهاية الخاصة التي يتم إنشاؤها في اشتراكات ومستأجرين منفصلين. يمكنك أيضا استخدام إعفاءات النهج لنطاقات النظام الأساسي للبيانات المعنية.
Azure Data Factory
للتغلب على السيناريو الأول على الشبكة الظاهرية المدارة من Azure Data Factory، استخدم تعريف النهج التالي:
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.DataFactory/factories/managedVirtualNetworks/managedPrivateEndpoints"
},
{
"anyOf": [
{
"field": "Microsoft.DataFactory/factories/managedVirtualNetworks/managedPrivateEndpoints/privateLinkResourceId",
"exists": false
},
{
"value": "[split(field('Microsoft.DataFactory/factories/managedVirtualNetworks/managedPrivateEndpoints/privateLinkResourceId'), '/')[2]]",
"notEquals": "[subscription().subscriptionId]"
}
]
}
]
},
"then": {
"effect": "[parameters('effect')]"
}
يرفض هذا النهج نقاط النهاية الخاصة المدارة المرتبطة بالخدمات، والتي تتم استضافتها خارج اشتراك Data Factory. يمكنك تغيير هذا النهج للسماح بالاتصالات بالخدمات المستضافة في مجموعة من الاشتراكات عن طريق إضافة معلمة list
وباستخدام البنية "notIn": "[parameters('allowedSubscriptions')]"
. نوصي بهذا التغيير لنطاق النظام الأساسي للبيانات داخل المستأجر أو البيئات حيث يتم استخدام الخدمات ذات الشبكات الظاهرية المدارة ونقاط النهاية الخاصة المدارة على نطاق واسع.
يوصى بتعيين هذا النهج إلى مجموعة الإدارة ذات المستوى الأعلى واستخدام الإعفاءات عند الحاجة. بالنسبة للنظام الأساسي للبيانات، قم بإجراء هذه التغييرات وتعيين النهج لمجموعة اشتراكات النظام الأساسي للبيانات.
Azure Synapse
يستخدم Azure Synapse أيضا الشبكات الظاهرية المدارة. نوصي بتطبيق نهج مشابه على نهج Data Factory للسيناريو الأول. لا يوفر Azure Synapse اسما مستعارا للنهج لنقاط النهاية الخاصة المدارة. ولكن هناك ميزة منع النقل غير المصرح للبيانات، والتي يمكن فرضها لمساحات العمل باستخدام النهج التالي:
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Synapse/workspaces"
},
{
"anyOf": [
{
"field": "Microsoft.Synapse/workspaces/managedVirtualNetworkSettings.preventDataExfiltration",
"exists": false
},
{
"field": "Microsoft.Synapse/workspaces/managedVirtualNetworkSettings.preventDataExfiltration",
"notEquals": true
},
{
"count": {
"field": "Microsoft.Synapse/workspaces/managedVirtualNetworkSettings.allowedAadTenantIdsForLinking[*]",
"where": {
"field": "Microsoft.Synapse/workspaces/managedVirtualNetworkSettings.allowedAadTenantIdsForLinking[*]",
"notEquals": "[subscription().tenantId]"
}
},
"greaterOrEquals": 1
}
]
}
]
},
"then": {
"effect": "Deny"
}
يفرض هذا النهج استخدام ميزة النقل غير المصرح للبيانات في Azure Synapse. باستخدام Azure Synapse، يمكنك رفض أي نقطة نهاية خاصة تأتي من خدمة مستضافة خارج مستأجر العميل. يمكنك أيضا رفض أي نقطة نهاية خاصة مستضافة خارج مجموعة محددة من معرفات المستأجر. يسمح هذا النهج فقط بإنشاء نقاط نهاية خاصة مدارة مرتبطة بالخدمات، والتي تتم استضافتها في مستأجر العميل.
تتوفر هذه النهج الآن كمضمنة.
يجب أن تسمح مساحات عمل Azure Synapse بنسبة استخدام الشبكة للبيانات الصادرة فقط إلى الأهداف المعتمدة.
معرف التعريف:
/providers/Microsoft.Authorization/policyDefinitions/3484ce98-c0c5-4c83-994b-c5ac24785218
يجب أن تتصل نقاط النهاية الخاصة المدارة من Azure Synapse بالموارد فقط في مستأجري Azure Active Directory المعتمدين.
معرف التعريف:
/providers/Microsoft.Authorization/policyDefinitions/3a003702-13d2-4679-941b-937e58c443f0
يوصى بتعيين النهج إلى مجموعة الإدارة ذات المستوى الأعلى واستخدام الإعفاءات عند الحاجة.
الخطوات التالية
من المهم فهم نماذج الاتصال الموصى بها للاتصال الوارد والصادر من وإلى الإنترنت العام. تستعرض المقالة التالية اعتبارات التصميم وتوصيات التصميم والمحتوى الموصى به لمزيد من القراءة.