تأمين الوصول إلى الشبكة إلى 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 على فهم خدمة Azure Kubernetes (AKS).

أوضاع شبكات Amazon EKS

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

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

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

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

الكشف عن مستوى التحكم عبر نقطة نهاية عامة هو الوضع الافتراضي لمجموعات Amazon EKS الجديدة. عند تمكين نقطة النهاية العامة للمجموعة فقط، تطلب Kubernetes API التي تنشأ من داخل 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 إلى خادم API

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

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

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

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

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

قم بتنزيل ملف Visio لهذه البنية.

لتوفير نظام مجموعة 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 العام لخادم API. للاتصال بلوحة التحكم الخاصة، يجب أن يكون الجهاز الظاهري في نفس الشبكة الظاهرية، أو في شبكة ظاهرية نظيرة مع ارتباط شبكة ظاهرية إلى منطقة 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 العام لخادم API.
تستخدم عقد العامل وأي أجهزة ظاهرية أخرى في الشبكة الظاهرية لمجموعة AKS أو أي شبكة ظاهرية متصلة بمنطقة DNS الخاصة سجل منطقة A DNS الخاص لحل عنوان IP الخاص لنقطة النهاية الخاصة.

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

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

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

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

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

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

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

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

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

  • استخدم اتصال نقطة النهاية الخاصة ل Azure.

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

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

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

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

الخيار الثاني لتحسين أمان نظام المجموعة وتقليل الهجمات إلى خادم API هو استخدام نطاقات IP المعتمدة. تقيد عناوين IP المعتمدة الوصول إلى مستوى التحكم لمجموعة AKS العامة إلى قائمة معروفة بعناوين IP وCIDRs. عند استخدام هذا الخيار، لا يزال خادم API مكشوفا بشكل عام، ولكن الوصول محدود. لمزيد من المعلومات، راجع الوصول الآمن إلى خادم API باستخدام نطاقات عناوين 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 باستخدام واجهة برمجة تطبيقات آمنة: