Wallarm Node.js لخدمة AWS Lambda¶
AWS Lambda@Edge هي خدمة حوسبة خالية من الخوادم، تعتمد على الأحداث، وتسمح لك بتشغيل الكود لأنواع مختلفة من التطبيقات أو الخدمات الخلفية دون الحاجة إلى توفير أو إدارة الخوادم. من خلال دمج كود Wallarm Node.js، يمكنك توجيه الحركة الواردة إلى عقدة Wallarm للتحليل والتصفية. تقدم هذه المقالة تعليمات حول تكوين Wallarm لتحليل الحركة وتصفيتها خاصة للامدا Node.js في تطبيق AWS الخاص بك.
تشمل الحلول نشر عقدة Wallarm بشكل خارجي وإضافة كود مخصص أو سياسات إلى المنصة المحددة. يمكن هذا من توجيه الحركة إلى عقدة Wallarm الخارجية للتحليل والحماية من التهديدات المحتملة. يشار إليها باسم وصلات Wallarm، التي تعمل كالرابط الأساسي بين المنصات مثل Azion Edge، Akamai Edge، Mulesoft، Apigee، وAWS Lambda، وعقدة Wallarm الخارجية. يضمن هذا النهج الاندماج السلس، تحليل الحركة الآمن، التخفيف من المخاطر، وأمان المنصة بشكل عام.
حالات الاستخدام¶
من بين جميع خيارات نشر Wallarm المدعومة، يُنصح بهذا الحل للحالات الاستخدام التالية:
-
تأمين التطبيقات على AWS التي تستخدم لامدا Node.js.
-
الحاجة إلى حل أمان يقدم مراقبة شاملة للهجمات، التقارير، ومنع الطلبات الضارة فورًا.
القيود¶
يلحق الحل قيودًا حيث يعمل فقط مع الطلبات الواردة:
-
لا يعمل اكتشاف الضعف باستخدام طريقة الكشف السلبي بشكل صحيح. يحدد الحل ما إذا كانت واجهة برمجة التطبيقات عرضة للضعف أم لا بناءً على ردود الخادم على الطلبات الضارة المميزة للثغرات التي يتم اختبارها.
-
لا يمكن لـاكتشاف API بواسطة Wallarm استكشاف جرد الواجهات البرمجية بناءً على حركتك، حيث يعتمد الحل على تحليل الاستجابات.
-
الحماية ضد التصفح القسري غير متوفرة نظرًا لأنها تتطلب تحليل رموز الاستجابة.
توجد أيضًا قيود أخرى:
-
حجم جسم حزمة HTTP محدود بـ 40 كيلوبايت عند الاعتراض على مستوى طلب Viewer و1MB على مستوى طلب Origin.
-
الوقت الأقصى للاستجابة من عقدة Wallarm محدود بـ 5 ثوانٍ لطلبات Viewer و30 ثانية لطلبات Origin.
-
Lambda@Edge لا تعمل ضمن الشبكات الخاصة (VPC).
-
العدد الأقصى للطلبات المعالجة في وقت واحد لكل منطقة هو 1,000 (الحصة الافتراضية)، ولكن يمكن زيادتها إلى عشرات الآلاف.
المتطلبات¶
للمتابعة مع النشر، تأكد من أنك تلبي المتطلبات التالية:
-
فهم تقنيات AWS Lambda.
-
واجهات برمجة التطبيقات أو الحركة التي تعمل على AWS.
النشر¶
لتأمين التطبيقات على AWS التي تستخدم لامدا Node.js باستخدام Wallarm، اتبع الخطوات التالية:
1. نشر عقدة Wallarm¶
عند دمج Wallarm مع AWS Lambda، يعمل تدفق الحركة بشكل مباشر. لذلك، اختر واحدًا من الأشكال المدعومة لنشر عقدة Wallarm للنشر المباشر على AWS:
قم بتكوين العقدة المنشورة باستخدام القالب التالي:
server {
listen 80;
server_name _;
access_log off;
wallarm_mode off;
location / {
proxy_set_header Host $http_x_forwarded_host;
proxy_pass http://unix:/tmp/wallarm-nginx.sock;
}
}
server {
listen 443 ssl;
server_name yourdomain-for-wallarm-node.tld;
### هنا تكوين SSL
access_log off;
wallarm_mode off;
location / {
proxy_set_header Host $http_x_forwarded_host;
proxy_pass http://unix:/tmp/wallarm-nginx.sock;
}
}
server {
listen unix:/tmp/wallarm-nginx.sock;
server_name _;
wallarm_mode monitoring;
#wallarm_mode block;
real_ip_header X-Lambda-Real-IP;
set_real_ip_from unix:;
location / {
echo_read_request_body;
}
}
يرجى الانتباه إلى التكوينات التالية:
-
شهادات TLS/SSL للحركة الآمنة عبر HTTPS: لتمكين عقدة Wallarm من التعامل مع حركة HTTPS الآمنة، قم بتكوين الشهادات TLS/SSL بشكل مناسب. سيعتمد التكوين المحدد على طريقة النشر المختارة. على سبيل المثال، إذا كنت تستخدم NGINX، يمكنك الرجوع إلى مقالته للحصول على التوجيه.
-
تكوين وضع تشغيل Wallarm.
2. الحصول على سكريبت Wallarm Node.js لـ AWS Lambda وتشغيله¶
للحصول على وتشغيل سكريبت Wallarm Node.js على AWS Lambda، اتبع الخطوات التالية:
-
اتصل بـدعم Wallarm للحصول على سكريبت Wallarm Node.js.
-
أنشئ سياسة IAM جديدة بالأذونات التالية:
-
في خدمة AWS Lambda، أنشئ وظيفة جديدة باستخدام Node.js 14.x كوقت تشغيل والدور المُنشئ في الخطوة السابقة. اختر إنشاء دور جديد بأذونات أساسية لـ Lambda.
-
في محرر مصدر الكود، الصق الكود الذي تلقيته من فريق دعم Wallarm.
-
في الكود الملصق، قم بتحديث قيم
WALLARM_NODE_HOSTNAME
وWALLARM_NODE_PORT
لتشير إلى عقدة Wallarm المنشورة سابقًا.لإرسال الحركة إلى العقدة الفلترة عبر 443/SSL، استخدم التكوين التالي:
إذا كنت تستخدم شهادة موقعة ذاتيًا، أجرِ التغيير التالي لتعطيل تطبيق الشهادة بشكل صارم:
-
عد إلى قسم IAM وعدل الدور الجديد المنشأ من خلال إرفاق السياسات التالية:
AWSLambda_FullAccess
,AWSLambdaExecute
,AWSLambdaBasicExecutionRole
,AWSLambdaVPCAccessExecutionRole
, وLambdaDeployPermissions
المنشأة في الخطوة السابقة. -
في علاقات الثقة، أضف التغيير التالي إلى الخدمة:
-
انتقل إلى Lambda → الوظائف → <وظيفتك> وانقر على إضافة مُحَفّز.
-
في خيارات النشر إلى Lambda@Edge، انقر على النشر إلى Lambda@Edge واختر توزيع CloudFront الذي يحتاج إلى إضافة معالج Wallarm أو أنشئ واحدًا جديدًا.
خلال العملية، اختر طلب المُشاهِد لحدث CloudFront وضع علامة في المربع لـ تضمين الجسم.
الاختبار¶
لتجربة وظيفة السياسة المنشورة، اتبع الخطوات التالية:
-
أرسل الطلب مع هجوم اختراق المسار الاختباري إلى واجهة برمجة التطبيقات الخاصة بك:
-
افتح واجهة Wallarm Console → قسم الهجمات في السحابة الأمريكية أو السحابة الأوروبية وتأكد من ظهور الهجوم في القائمة.
إذا تم ضبط وضع عقدة Wallarm على الحجب، سيتم حجب الطلب أيضًا.
هل تحتاج مساعدة؟¶
إذا واجهت أي مشكلات أو تحتاج إلى المساعدة مع نشر Wallarm الموضح بالتوافق مع AWS Lambda، يمكنك التواصل مع فريق دعم Wallarm. هم متوفرون لتقديم التوجيه ومساعدتك في حل أي مشكلات قد تواجهها خلال عملية التنفيذ.