السماح بالوصول إلى مساحة اسم ناقل خدمة Azure من شبكات ظاهرية محددة

يتيح تكامل ناقل خدمة Microsoft Azure مع نقاط تقديم خدمة شبكة ظاهرية (VNet) الوصول الآمن إلى قدرات المراسلة من أحمال العمل مثل الأجهزة الظاهرية المرتبطة بالشبكات الظاهرية، مع تأمين مسار نسبة استخدام الشبكة على كلا الطرفين.

بمجرد تكوينها لتكون مرتبطة بنقطة نهاية خدمة شبكة ظاهرية فرعية واحدة على الأقل، لم تعد مساحة اسم ناقل خدمة Microsoft Azure تقبل نسبة استخدام الشبكة من أي مكان إلا من الشبكة الظاهرية المصرح بها (الشبكات الظاهرية)، واختياريًا، عناوين IP محددة للإنترنت. من منظور الشبكة الظاهرية، يؤدي ربط مساحة اسم ناقل خدمة Microsoft Azure بنقطة نهاية الخدمة إلى تكوين نفق شبكات معزول من الشبكة الفرعية للشبكة الظاهرية إلى خدمة المراسلة.

والنتيجة هي علاقة خاصة ومعزولة بين أحمال العمل المرتبطة بالشبكة الفرعية ومساحة اسم ناقل خدمة Microsoft Azure المعنية، على الرغم من عنوان الشبكة الملاحظ لنقطة نهاية خدمة المراسلة في نطاق IP عام.

نقاط مهمة

  • لا يتم دعم الشبكات الظاهرية إلا في مساحات أسماء المستوى المميز لناقل خدمة Microsoft Azure. عند استخدام نقاط نهاية خدمة VNet مع ناقل خدمة، يجب عدم تمكين نقاط النهاية هذه في التطبيقات التي تخلط بين المستوى الممتاز والمستوى القياسي لمساحات أسماء ناقل خدمة. ذلك لأن المستوى القياسي لا يدعم VNets. تقتصر نقطة النهاية إلى مساحات أسماء المستوى المميز فقط.

  • تنفيذ تكامل الشبكات الظاهرية يمكن أن يمنع خدمات Azure الأخرى من التفاعل مع ناقل خدمة Microsoft Azure. وكاستثناء، يمكنك السماح بالوصول إلى موارد ناقل خدمة Microsoft Azure من بعض الخدمات الموثوق بها حتى عند تمكين نقاط تقديم الخدمة. للحصول على قائمة بالخدمات الموثوق بها، راجع الخدمات الموثوق بها.

    يجب أن تكون خدمات Microsoft التالية على شبكة ظاهرية

    • Azure App Service
    • دالات Azure
  • حدد قاعدة IP واحدة على الأقل أو قاعدة شبكة ظاهرية لمساحة الاسم للسماح بنسبة استخدام الشبكة فقط من عناوين IP المحددة أو الشبكة الفرعية لشبكة ظاهرية. إذا لم يكن هناك IP وقواعد الشبكة الظاهرية، يمكن الوصول إلى مساحة الاسم عبر الإنترنت العام (باستخدام مفتاح الاختصار).

سيناريوهات الأمان المتقدمة التي مكّنها تكامل الشبكة الظاهرية

الحلول التي تتطلب أمانًا محكمًا ومجزئًا، وحيث توفر الشبكات الفرعية للشبكة الظاهرية التجزئة بين الخدمات المجزأة، لا تزال بحاجة عمومًا إلى مسارات اتصال بين الخدمات الموجودة في تلك الحجرات.

أي مسار IP فوري بين الحجرات، بما في ذلك تلك التي تحمل HTTPS عبر TCP/IP، يحمل خطر استغلال نقاط الضعف من طبقة الشبكة وما فوقها. توفر خدمات المراسلة مسارات اتصال معزولة، حيث تتم كتابة الرسائل حتى على القرص أثناء انتقالها بين الأطراف. أحمال العمل في شبكتين ظاهريتين متميزتين مرتبطتين بنفس مثيل ناقل خدمة Microsoft Azure يُمكنها الاتصال بكفاءة وموثوقية عبر الرسائل، بينما يتم الاحتفاظ بتكامل حدود عزل الشبكة المعنية.

هذا يعني أن حلول السحابة الحساسة للأمان لا تحصل فقط على إمكانية الوصول إلى قدرات المراسلة غير المتزامنة الموثوقة والقابلة للتطوير والرائدة في صناعة Azure، بل يمكنها الآن استخدام المراسلة لإنشاء مسارات اتصال بين حجرات الحلول الآمنة التي تكون بطبيعتها أكثر أمانًا مما يمكن تحقيقه مع أي وضع الاتصال من نظير إلى نظير، بما في ذلك HTTPS وبروتوكولات مأخذ توصيل بروتوكول أمان طبقة النقل الأخرى.

ربط ناقل خدمة Microsoft Azure بالشبكات الظاهرية

قواعد الشبكة الظاهرية هي ميزة أمان جدار الحماية التي تتحكم في ما إذا كانت مساحة اسم ناقل خدمة Microsoft Azure تقبل الاتصالات من شبكة فرعية خاصة بالشبكة الظاهرية.

ربط مساحة اسم ناقل خدمة Microsoft Azure بشبكة اتصال ظاهرية هو عملية من خطوتين. تحتاج أولًا إلى إنشاء نقطة نهاية خدمة شبكة ظاهرية على الشبكة الفرعية لشبكة ظاهرية وتمكينها لـ Microsoft.ServiceBus كما هو موضح في نظرة عامة على نقطة تقديم الخدمة. بمجرد إضافة نقطة نهاية الخدمة، يمكنك ربط مساحة اسم ناقل خدمة به من خلال قاعدة الشبكة الظاهرية.

قاعدة الشبكة الظاهرية عبارة عن ارتباط لمساحة اسم ناقل خدمة Microsoft Azure بشبكة فرعية للشبكة الظاهرية. أثناء وجود القاعدة، يتم منح كافة أحمال العمل المرتبطة بالشبكة الفرعية حق الوصول إلى مساحة اسم ناقل خدمة Microsoft Azure. لا يقوم ناقل الخدمة نفسه بتأسيس اتصالات صادرة، ولا يحتاج إلى الوصول، وبالتالي لا يُمنح مطلقًا حق الوصول إلى شبكتك الفرعية من خلال تمكين هذه القاعدة.

ملاحظة

تذكر أن نقطة تقديم خدمة شبكة توفر للتطبيقات قيد التشغيل في الشبكة الظاهرية الوصول إلى مساحة اسم ناقل خدمة Microsoft Azure. تتحكم الشبكة الظاهرية في إمكانية الوصول إلى نقطة النهاية، ولكن لا تتحكم في العمليات التي يمكن إجراؤها على كيانات ناقل خدمة Microsoft Azure (قوائم الانتظار أو الموضوعات أو الاشتراكات). استخدم Microsoft Azure Active Directory (Azure AD) لتفويض العمليات التي يمكن للتطبيقات تنفيذها على مساحة الاسم والكيانات الخاصة به. لمزيد من المعلومات، راجع مصادقة أحد التطبيقات باستخدام Microsoft Azure Active Directory وتخويله للوصول إلى كيانات ناقل خدمة Microsoft Azure.

استخدام مدخل Microsoft Azure

يوضح هذا القسم كيفية استخدام مدخل Microsoft Azure لإضافة نقطة تقديم خدمة شبكة ظاهرية. للحد من الوصول، تحتاج إلى دمج نقطة تقديم خدمة الشبكة الظاهرية لمساحة اسم مراكز الأحداث هذه.

  1. انتقل إلى مساحة اسم ناقل خدمة Microsoft Azure في مدخل Microsoft Azure.

  2. في القائمة اليمنى، حدد خيار «Networking» ضمن «Settings» .

    ملاحظة

    راجع علامة التبويب «Networking» لمساحات الأسماء المميزةفقط.

  3. في صفحة Networking، للوصول إلى Public network access، يمكنك تعيين أحد الخيارات الثلاثة التالية. اختر خيار Selected networks للسماح بالوصول من عناوين IP المحددة فقط.

    • مُعطل يعطل هذا الخيار أي وصول عام إلى مساحة الاسم. يمكن الوصول إلى مساحة الاسم من خلال نقاط النهاية الخاصة فقط.

      Networking page - public access tab - public network access is disabled.

    • شبكات محددة. يسمح هذا الخيار بالوصول العام إلى مساحة الاسم باستخدام مفتاح الاختصار من شبكات محددة.

      هام

      إذا اخترت الشبكات المحددة، فأضف قاعدة جدار حماية IP واحدة على الأقل أو شبكة اتصال ظاهرية يكون لها حق الوصول إلى مساحة الاسم. اختر معطل إذا كنت تريد تقييد نسبة استخدام الشبكة بالكامل إلى مساحة الاسم هذه عبر نقاط النهاية الخاصة فقط.

      Networking page with the selected networks option selected.

    • جميع الشبكات (افتراضي). يسمح هذا الخيار بالوصول العام من جميع الشبكات باستخدام مفتاح الاختصار. إذا حددت الخيار All networks، يقبل ناقل الخدمة الاتصالات من أي عنوان IP (باستخدام مفتاح الوصول). هذا الإعداد يُعادل قاعدة تقبل نطاق عناوين IP 0.0.0.0/0.

      Screenshot of the Azure portal Networking page. The option to allow access from All networks is selected on the Firewalls and virtual networks tab.

  4. لتقييد الوصول إلى شبكات ظاهرية محددة، حدد خيار الشبكات المحددة إذا لم يكن محددًا مسبقًا.

  5. في قسم الشبكة الظاهرية من الصفحة، حدد +إضافة شبكة ظاهرية موجودة. حدد + إنشاء شبكة ظاهرية جديدة إذا كنت تريد إنشاء شبكة ظاهرية جديدة.

    Image showing the selection of Add existing virtual network button on the toolbar.

    تحذير

    إذا قمت بتحديد الخيار Selected networks ولم تقم بإضافة قاعدة جدار حماية IP واحدة على الأقل أو شبكة ظاهرية على هذه الصفحة، يمكن الوصول إلى مساحة الاسم عبر الإنترنت العام (باستخدام مفتاح الاختصار).

  6. حدد الشبكة الظاهرية من قائمة الشبكات الظاهرية، ثم اختر subnet. يجب تمكين نقطة تقديم الخدمة قبل إضافة الشبكة الظاهرية إلى القائمة. إذا لم يتم تمكين نقطة تقديم الخدمة، فسيطالبك المدخل بتمكينها.

    Image showing the selection of VNet and subnet.

  7. يجب أن تشاهد رسالة النجاح التالية بعد تمكين نقطة تقديم الخدمة الشبكة الفرعية لـ Microsoft.ServiceBus. حدد إضافة أسفل الصفحة لإضافة الشبكة.

    Image showing the success message of enabling the service endpoint.

    ملاحظة

    إذا لم تتمكن من تمكين نقطة تقديم الخدمة، فقد تتجاهل نقطة تقديم خدمة الشبكة الظاهرية المفقودة باستخدام قالب إدارة الموارد. هذه الوظيفة غير متاحة على المدخل.

  8. في شريط الأدوات، حدد Save لحفظ الإعداد. انتظر بضع دقائق حتى يظهر التأكيد في إشعارات المدخل. يجب تعطيل زر حفظ.

    Image showing the network service endpoint saved.

    ملاحظة

    للحصول على إرشادات حول السماح بالوصول من عناوين IP أو نطاقات محددة، راجع السماح بالوصول من عناوين IP أو نطاقات محددة.

خدمات Microsoft الموثوق بها

عند تمكين الإعداد السماح لخدمات Microsoft الموثوقة لتجاوز جدار الحماية هذا، يتم منح الخدمات التالية حق الوصول إلى موارد ناقل الخدمة الخاص بك.

خدمة موثوقة سيناريوهات الاستخدام المعتمدة
Azure Event Grid يسمح لـ Azure Event Grid بإرسال الأحداث إلى قوائم الانتظار أو الموضوعات في مساحة اسم ناقل الخدمة الخاص بك. تحتاج أيضاً إلى القيام بالخطوات التالية:
  • تمكين الهوية المعينة من قبل النظام لموضوع أو مجال
  • إضافة الهوية إلى دور مرسل بيانات ناقل خدمة Azure على مساحة اسم ناقل خدمة Azure
  • ثم، قم بتكوين اشتراك الحدث الذي يستخدم قائمة انتظار أو موضوع ناقل الخدمة كنقطة نهاية لاستخدام هوية النظام المعينة.

لمزيد من المعلومات، راجع تسليم الأحداث بهوية مدارة

Azure لادارة واجهة برمجة التطبيقات API

تتيح لك خدمة API Management إرسال رسائل إلى قائمة انتظار/موضوع ناقل الخدمة في مساحة اسم ناقل الخدمة.

Azure IoT Central

يسمح لـ IoT Central بتصدير البيانات إلى قوائم انتظار أو موضوعات ناقل الخدمة الموجودة في مساحة اسمه. تحتاج أيضاً إلى القيام بالخطوات التالية:

  • تمكين الهوية المعينة من قبل النظام لتطبيق IoT Central
  • أضف الهوية إلى دور Azure Service Bus Data Sender على مساحة اسم ناقل الخدمة.
  • بعد ذلك، قم بتكوين وجهة تصدير ناقل خدمةعلى تطبيق IoT Central الخاص بك لاستخدام المصادقة المستندة إلى الهوية.
Azure IoT Hub يسمح لمركز IoT بإرسال رسائل إلى قوائم الانتظار أو الموضوعات في مساحة اسم ناقل الخدمة. تحتاج أيضاً إلى القيام بالخطوات التالية:

استخدام قالب إدارة الموارد

يضيف نموذج قالب إدارة الموارد التالي قاعدة شبكة ظاهرية إلى مساحة اسم ناقل خدمة Microsoft Azure موجودة. بالنسبة لقاعدة الشبكة، تحدد معرّف الشبكة الفرعية في شبكة ظاهرية.

المعرّف هو مسار إدارة موارد مؤهّل بالكامل للشبكة الفرعية لشبكة الاتصال الظاهرية. على سبيل المثال، /subscriptions/{id}/resourceGroups/{rg}/providers/Microsoft.Network/virtualNetworks/{vnet}/subnets/default للشبكة الفرعية الافتراضية لشبكة ظاهرية.

ملاحظة

وتكون القيمة الافتراضية لـ defaultAction هي Allow. عند إضافة الشبكة الظاهرية أو قواعد جدران الحماية، قم بتعيين قيمة defaultAction إلى Deny.

القالب:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "servicebusNamespaceName": {
        "type": "string",
        "metadata": {
          "description": "Name of the Service Bus namespace"
        }
      },
      "virtualNetworkName": {
        "type": "string",
        "metadata": {
          "description": "Name of the Virtual Network Rule"
        }
      },
      "subnetName": {
        "type": "string",
        "metadata": {
          "description": "Name of the Virtual Network Sub Net"
        }
      },
      "location": {
        "type": "string",
        "metadata": {
          "description": "Location for Namespace"
        }
      }
    },
    "variables": {
      "namespaceNetworkRuleSetName": "[concat(parameters('servicebusNamespaceName'), concat('/', 'default'))]",
      "subNetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets/', parameters('virtualNetworkName'), parameters('subnetName'))]"
    },
    "resources": [
      {
        "apiVersion": "2018-01-01-preview",
        "name": "[parameters('servicebusNamespaceName')]",
        "type": "Microsoft.ServiceBus/namespaces",
        "location": "[parameters('location')]",
        "sku": {
          "name": "Premium",
          "tier": "Premium"
        },
        "properties": { }
      },
      {
        "apiVersion": "2017-09-01",
        "name": "[parameters('virtualNetworkName')]",
        "location": "[parameters('location')]",
        "type": "Microsoft.Network/virtualNetworks",
        "properties": {
          "addressSpace": {
            "addressPrefixes": [
              "10.0.0.0/23"
            ]
          },
          "subnets": [
            {
              "name": "[parameters('subnetName')]",
              "properties": {
                "addressPrefix": "10.0.0.0/23",
                "serviceEndpoints": [
                  {
                    "service": "Microsoft.ServiceBus"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        "apiVersion": "2018-01-01-preview",
        "name": "[variables('namespaceNetworkRuleSetName')]",
        "type": "Microsoft.ServiceBus/namespaces/networkruleset",
        "dependsOn": [
          "[concat('Microsoft.ServiceBus/namespaces/', parameters('servicebusNamespaceName'))]"
        ],
        "properties": {
          "publicNetworkAccess": "Enabled",
          "defaultAction": "Deny",
          "virtualNetworkRules": 
          [
            {
              "subnet": {
                "id": "[variables('subNetId')]"
              },
              "ignoreMissingVnetServiceEndpoint": false
            }
          ],
          "ipRules":[],
          "trustedServiceAccessEnabled": false
        }
      }
    ],
    "outputs": { }
  }

لنشر القالب، اتبع الإرشادات الخاصة Azure Resource Manager.

هام

إذا لم يكن هناك أي قواعد IP وشبكة ظاهرية، فإن كافة تدفقات نسبة استخدام الشبكة إلى مساحة الاسم حتى إذا قمت بتعيين defaultAction إلى deny. يمكن الوصول إلى مساحة الاسم عبر الإنترنت العام (باستخدام مفتاح الاختصار). حدد قاعدة IP واحدة على الأقل أو قاعدة شبكة ظاهرية لمساحة الاسم للسماح بنسبة استخدام الشبكة فقط من عناوين IP المحددة أو الشبكة الفرعية لشبكة ظاهرية.

الإجراء الافتراضي والوصول إلى الشبكة العامة

REST API

كانت القيمة الافتراضية للخاصية defaultAction هي Deny لإصدار واجهة برمجة التطبيقات إصدار 2021-01-01 الأولي والإصدارات الأقدم. ومع ذلك، لا يتم فرض قاعدة الرفض إلا إذا قمت بتعيين عوامل تصفية IP أو قواعد الشبكة الظاهرية (VNet). أي أنه إذا لم يكن لديك أي عوامل تصفية IP أو قواعد VNet، فسيتم التعامل معها على أنها Allow.

من إصدار واجهة برمجة التطبيقات إصدار 2021-06-01 الأولي والإصدارات الأحدث، تكون القيمة الافتراضية للخاصية defaultActionهي Allow، لتعكس بدقة التنفيذ من جانب الخدمة. إذا تم تعيين الإجراء الافتراضي إلى Deny، يتم فرض عوامل تصفية IP وقواعد VNet. إذا تم تعيين الإجراء الافتراضي إلى Allow، فلن يتم فرض عوامل تصفية IP وقواعد VNet. تتذكر الخدمة القواعد عند إيقاف تشغيلها ثم إعادة تشغيلها مرة أخرى.

يقدم إصدار واجهة برمجة التطبيقات إصدار 2021-06-01 الأولي والإصدارات الأحدث أيضاً خاصية جديدة تسمى publicNetworkAccess. إذا تم تعيينه على Disabled، فستقتصر العمليات على الروابط الخاصة فقط. إذا تم تعيينه على Enabled، يتم السماح بالعمليات عبر الإنترنت العام.

لمزيد من المعلومات حول هذه الخصائص، راجع إنشاء مجموعة قواعد الشبكة أو تحديثها وإنشاء اتصالات نقطة النهاية الخاصة أو تحديثها.

ملاحظة

لا يتجاوز أي من الإعدادات المذكورة أعلاه التحقق من صحة المطالبات عبر مصادقة SAS أو Azure AD. يتم تشغيل التحقق من المصادقة دائماً بعد أن تتحقق الخدمة من صحة عمليات التحقق من الشبكة التي تم تكوينها بواسطة إعدادات defaultAction، وpublicNetworkAccess، وprivateEndpointConnections.

مدخل Azure

يستخدم مدخل Azure دائماً أحدث إصدار من واجهة برمجة التطبيقات للحصول على الخصائص وتعيينها. إذا كنت قد قمت مسبقًا بتكوين مساحة الاسم الخاصة بك باستخدام إصدار 2021-01-01 الأولي والإصدارات الأقدم مع defaultAction المعينة على Deny، وتحديد عوامل تصفية IP الصفرية وقواعد VNet، فستكون البوابة قد حددت مسبقا الشبكات المحددة في صفحة Networking في مساحة الاسم الخاصة بك. الآن، يتحقق من خيار All networks.

Screenshot of the Azure portal Networking page. The option to allow access from All networks is selected on the Firewalls and virtual networks tab.

الخطوات التالية

لمزيد من المعلومات حول الشبكات الظاهرية، راجع الروابط التالية: