تأمين الوصول إلى الشبكة إلى Kubernetes

Azure Bastion
Azure DNS
Azure Kubernetes Service (AKS)
Azure Private Link
Azure Virtual Network

تقارن هذه المقالة أوضاع الشبكات لخدمة Azure Kubernetes (AKS) وخدمة Amazon Elastic Kubernetes (Amazon EKS). توضح المقالة كيفية تحسين أمان الاتصال بخادم API المدار لمجموعة AKS، والخيارات المختلفة لتقييد الوصول إلى الشبكة العامة.

ملاحظة

هذه المقالة هي جزء من سلسلة من المقالات التي تساعد المهنيين الذين هم على دراية ب Amazon EKS على فهم AKS.

أوضاع شبكة Amazon EKS

باستخدام Amazon Virtual Private Cloud (Amazon VPC)، يمكنك تشغيل موارد Amazon Web Services (AWS) في شبكة ظاهرية تتكون من شبكات فرعية عامة وخاصة، أو نطاقات من عناوين IP في VPC. تستضيف الشبكة الفرعية العامة الموارد التي يجب توصيلها بالإنترنت، وتستضيف الشبكة الفرعية الخاصة الموارد غير المتصلة بالإنترنت العام. يمكن ل Amazon EKS توفير مجموعات العقد المدارة في كل من الشبكات الفرعية العامة والخاصة.

يتيح لك التحكم في الوصول إلى نقطة النهاية تكوين ما إذا كان يمكن الوصول إلى نقطة نهاية خادم API من الإنترنت العام أو من خلال VPC. يوفر EKS عدة طرق للتحكم في الوصول إلى نقطة نهاية نظام المجموعة. يمكنك تمكين نقطة النهاية العامة الافتراضية أو نقطة نهاية خاصة أو كلتا نقطتي النهاية في وقت واحد. عند تمكين نقطة النهاية العامة، يمكنك إضافة قيود توجيه Inter-Domain بدون فئة (CIDR) للحد من عناوين IP للعميل التي يمكنها الاتصال بنقطة النهاية العامة.

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

نقطة النهاية العامة فقط

الكشف عن مستوى التحكم عبر نقطة نهاية عامة هو الوضع الافتراضي لمجموعات Amazon EKS الجديدة. عند تمكين نقطة النهاية العامة لنظام المجموعة فقط، تغادر طلبات واجهة برمجة تطبيقات Kubernetes التي تنشأ من داخل Amazon VPC، مثل عقدة العامل للتحكم في اتصال الطائرة، VPC ولكن لا تغادر شبكة Amazon. لكي تتصل العقد بمستوى التحكم، يجب عليها استخدام عنوان IP عام ومسار إلى بوابة إنترنت، أو مسار إلى بوابة ترجمة عناوين الشبكة (NAT) حيث يمكنهم استخدام عنوان IP العام لبوابة NAT.

نقاط النهاية العامة والخاصة

عند تمكين كل من نقاط النهاية العامة والخاصة، تتصل طلبات واجهة برمجة تطبيقات Kubernetes من داخل VPC بمستوى التحكم عبر واجهات الشبكة المرنة التي تديرها Amazon EKS (ENIs) في VPC. يمكن الوصول إلى خادم واجهة برمجة تطبيقات نظام المجموعة من الإنترنت.

نقطة النهاية الخاصة فقط

عند تمكين نقطة النهاية الخاصة فقط، يجب أن تأتي جميع نسبة استخدام الشبكة إلى خادم واجهة برمجة تطبيقات نظام المجموعة، مثل kubectl أو helm الأوامر، من داخل VPC للمجموعة أو شبكة متصلة. تم تعطيل الوصول العام إلى خادم API من الإنترنت. يمكنك تنفيذ وضع الوصول هذا باستخدام شبكة AWS الظاهرية الخاصة (AWS VPN) أو AWS DirectConnect إلى VPC. لتقييد الوصول إلى نقطة النهاية دون AWS VPN أو DirectConnect، يمكنك إضافة قيود CIDR إلى نقطة النهاية العامة للحد من الاتصالات دون إعداد المزيد من الشبكات.

لمزيد من المعلومات حول خيارات الاتصال، راجع الوصول إلى خادم واجهة برمجة تطبيقات خاص فقط.

وصول شبكة AKS إلى خادم واجهة برمجة التطبيقات

هناك خياران لتأمين الوصول إلى الشبكة إلى واجهة برمجة تطبيقات Kubernetes في AKS، أو مجموعة AKS خاصة أو نطاقات IP المعتمدة.

نظام مجموعة AKS خاص

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

يوضح الرسم التخطيطي التالي تكوين نظام مجموعة خاص.

رسم تخطيطي يوضح مجموعة AKS خاصة.

تنزيل Visio file لهذه البنية.

لتوفير مجموعة AKS خاصة، يقوم موفر موارد AKS بإنشاء اسم مجال مؤهل بالكامل خاص (FQDN) لمجموعة موارد العقدة في منطقة DNS خاصة. اختياريا، يمكن ل AKS أيضا إنشاء FQDN عام مع سجل عنوان (A) مطابق في منطقة DNS العامة ل Azure. تستخدم A عقد العامل السجل في منطقة DNS الخاصة لحل عنوان IP لنقطة النهاية الخاصة للاتصال بخادم API.

يمكن لموفر موارد AKS إنشاء منطقة DNS الخاصة في مجموعة موارد العقدة، أو يمكنك إنشاء منطقة DNS الخاصة وتمرير معرف المورد الخاص به إلى نظام التزويد. يمكنك إنشاء مجموعة خاصة عند استخدام Terraform مع Azure أو Bicep أو قوالب ARM أو Azure CLI أو الوحدة النمطية Azure PowerShell أو Azure REST API لإنشاء نظام المجموعة.

يمكنك تمكين FQDN عام لخادم API أثناء التوفير أو باستخدام الأمر az aks update مع المعلمة --enable-public-fqdn على المجموعات الموجودة. إذا قمت بتمكين FQDN العام، يجب أن يكون أي جهاز ظاهري يصل إلى الخادم، مثل عامل Azure DevOps المستضاف ذاتيا أو مشغل GitHub Actions المستضاف ذاتيا، في نفس الشبكة الظاهرية التي تستضيف نظام المجموعة، أو في شبكة متصلة عبر تناظر الشبكة الظاهرية أو VPN من موقع إلى موقع.

بالنسبة لمجموعة AKS الخاصة، يمكنك تعطيل FQDN العام لخادم واجهة برمجة التطبيقات. للاتصال بمستوى التحكم الخاص، يجب أن يكون الجهاز الظاهري في نفس الشبكة الظاهرية، أو في شبكة ظاهرية نظيرة مع ارتباط شبكة ظاهرية إلى منطقة DNS الخاصة. A يحل السجل في منطقة DNS الخاصة FQDN لخادم API إلى عنوان IP لنقطة النهاية الخاصة التي تتصل بمستوى التحكم الأساسي. لمزيد من المعلومات، راجع إنشاء مجموعة خدمة Azure Kubernetes خاصة.

خيارات نشر نظام المجموعة الخاصة

يعرض موفر موارد AKS المعلمات التالية لتخصيص توزيع مجموعة AKS الخاصة:

  • authorizedIpRanges (سلسلة) تحدد نطاقات IP المسموح بها بتنسيق CIDR.
  • disableRunCommand (منطقي) يحدد ما إذا كان يجب تعطيل run الأمر للمجموعة أم لا.
  • enablePrivateCluster (منطقي) يحدد ما إذا كان يجب إنشاء نظام المجموعة كخاص أم لا.
  • enablePrivateClusterPublicFQDN (منطقي) يحدد ما إذا كان يجب إنشاء FQDN عام آخر للمجموعة الخاصة أم لا.
  • privateDnsZone (سلسلة) تحدد منطقة DNS خاصة في مجموعة موارد العقدة. إذا لم تحدد قيمة، يقوم موفر الموارد بإنشاء المنطقة. في إمكانك تحديد القيم التالية:
    • System هي القيمة الافتراضية.
    • None الإعدادات الافتراضية ل DNS العام، لذلك لا تنشئ AKS منطقة DNS خاصة.
    • <Your own private DNS zone resource ID> يستخدم منطقة DNS خاصة تقوم بإنشائها بالتنسيق privatelink.<region>.azmk8s.io أو <subzone>.privatelink.<region>.azmk8s.io.

يعرض الجدول التالي خيارات تكوين DNS لنشر مجموعة AKS خاصة:

خيارات منطقة DNS الخاصة enablePrivateClusterPublicFQDN: true enablePrivateClusterPublicFQDN: false
النظام تستخدم عقد العامل وأي أجهزة ظاهرية أخرى في الشبكة الظاهرية لنظام مجموعة AKS أو أي شبكة ظاهرية متصلة بمنطقة DNS الخاصة، سجل منطقة A DNS الخاص لحل عنوان IP الخاص لنقطة النهاية الخاصة.

يستخدم أي جهاز ظاهري آخر FQDN العام لخادم واجهة برمجة التطبيقات.
تستخدم عقد العامل وأي أجهزة ظاهرية أخرى في الشبكة الظاهرية لنظام مجموعة AKS أو أي شبكة ظاهرية متصلة بمنطقة DNS الخاصة، سجل منطقة A DNS الخاص لحل عنوان IP الخاص لنقطة النهاية الخاصة.

لا يتوفر FQDN خادم API عام.
None تستخدم جميع الأجهزة الظاهرية، بما في ذلك عقد العامل، FQDN العام لخادم واجهة برمجة التطبيقات المتوفر عبر A سجل في منطقة DNS العامة التي تديرها Azure. تكوين خاطئ. تحتاج مجموعة AKS الخاصة على الأقل إلى منطقة DNS عامة أو خاصة لتحليل اسم خادم واجهة برمجة التطبيقات.
<معرف مورد منطقة DNS الخاص بك> تستخدم عقد العامل وأي أجهزة ظاهرية أخرى في الشبكة الظاهرية لنظام مجموعة AKS أو أي شبكة ظاهرية متصلة بمنطقة DNS الخاصة، سجل منطقة A DNS الخاص لحل عنوان IP الخاص لنقطة النهاية الخاصة.

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

لا يتوفر FQDN خادم API عام.

اتصال نظام المجموعة الخاصة وإدارتها

يوجد العديد من الخيارات لتأسيس اتصال شبكة الاتصال إلى مجموعة أجهزة الكمبيوتر الخاصة.

  • إنشاء أجهزة ظاهرية في نفس الشبكة الظاهرية مثل نظام مجموعة AKS.

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

  • استخدم اتصال Azure ExpressRoute أو VPN .

  • استخدم أمر Azure CLI الذي يستدعيه الأمر az aks للتشغيل kubectl والأوامر helm على نظام المجموعة الخاصة دون الاتصال مباشرة بنظام المجموعة.

  • استخدم اتصال Azure Private Endpoint .

يمكنك إدارة مجموعة AKS خاصة باستخدام أداة سطر الأوامر kubectl من جهاز ظاهري للإدارة في نفس الشبكة الظاهرية أو شبكة ظاهرية نظيرة.

يمكنك استخدام Azure Bastion في نفس الشبكة الظاهرية أو شبكة ظاهرية نظيرة للاتصال بجهاز ظاهري لإدارة jumpbox. Azure Bastion هو نظام أساسي مدار بالكامل كخدمة (PaaS) يتيح لك الاتصال بجهاز ظاهري باستخدام المستعرض ومدخل Azure. يوفر Azure Bastion اتصالا آمنا وسلسا لبروتوكول سطح المكتب البعيد (RDP) أو اتصال جهاز Shell الآمن (SSH) عبر أمان طبقة النقل (TLS) مباشرة من مدخل Microsoft Azure. عندما تتصل الأجهزة الظاهرية عبر Azure Bastion، فإنها لا تحتاج إلى عنوان IP عام أو وكيل أو برنامج عميل خاص.

يمكنك أيضا استخدام استدعاء الأمر az aks لتشغيل kubectl أو helm الأوامر على مجموعة AKS الخاصة بك دون الحاجة إلى الاتصال بجهاز jumpbox الظاهري.

نطاقات IP المعتمدة

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

يخول أمر Azure CLI التالي az aks update نطاقات IP:

 az aks update \
     --resource-group myResourceGroup \
     --name myAKSCluster \
     --api-server-authorized-ip-ranges  73.140.245.0/24

اعتبارات اتصال AKS

  • توفر مجموعة AKS الخاصة أمانا وعزلا أعلى من عناوين IP المعتمدة. ومع ذلك، لا يمكنك تحويل نظام مجموعة AKS عام موجود إلى مجموعة خاصة. يمكنك تمكين عناوين IP المعتمدة لأي مجموعة AKS موجودة.

  • لا يمكنك تطبيق نطاقات IP المعتمدة على نقطة نهاية خادم API خاصة. تنطبق عناوين IP المعتمدة فقط على خادم واجهة برمجة التطبيقات العام.

  • لا تدعم المجموعات الخاصة العوامل المستضافة على Azure DevOps. ضع في اعتبارك استخدام العوامل المستضافة ذاتيا.

  • لتمكين Azure Container Registry من العمل مع نظام مجموعة AKS خاص، قم بإعداد ارتباط خاص لسجل الحاوية في الشبكة الظاهرية لنظام المجموعة. أو قم بإعداد التناظر بين الشبكة الظاهرية ل Container Registry والشبكة الظاهرية للمجموعة الخاصة.

  • تنطبق قيود خدمة الارتباط الخاص Azure على مجموعات أجهزة الكمبيوتر الخاصة.

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

المساهمون

هذه المقالة تحتفظ بها Microsoft. تمت كتابتها في الأصل من قِبل المساهمين التاليين.

المؤلفون الأساسيون:

مساهمون آخرون:

لمشاهدة ملفات تعريف LinkedIn غير العامة، سجل الدخول إلى LinkedIn.

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

توفر المراجع التالية ارتباطات إلى نماذج الوثائق والأتمتة لتوزيع مجموعات AKS باستخدام واجهة برمجة تطبيقات آمنة: