- كيفية تشغيل الأوامر على EC2 بدون فتح SSH؟
- المتطلبات الأساسية والبنية العامة
- إعداد دور وسياسة إدارة الهوية والوصول (IAM) اللازمة
- تثبيت وفحص وكيل SSM على توزيعات لينكس الشائعة
- تنفيذ الأوامر باستخدام أمر التشغيل (مثال على واجهة سطر أوامر AWS)
- استخدام مدير الجلسات للوصول التفاعلي وإعادة توجيه المنافذ
- إدارة المخرجات والسجلات (CloudWatch / S3)
- سيناريوهات وأمثلة عملية
- نصائح أمنية وأفضل الممارسات
- الأخطاء الشائعة وكيفية حلها
- ملخص وكيفية استخدام خدماتنا
- خطوات مقترحة للبدء
- الأسئلة الشائعة
كيفية تشغيل الأوامر على EC2 بدون فتح SSH؟
تشغيل الأوامر عن بُعد على مثيل EC2 باستخدام AWS Systems Manager (طريقة) آمن، قابل للتطوير وبدون الحاجة إلى فتح منفذ SSH لتشغيل الأوامر على مثيلات EC2، يقدم هذا الدليل شرحًا تفصيليًا للتنفيذ، والمتطلبات الأساسية، ونماذج لأوامر AWS CLI، وتكوين IAM، ونصائح أمنية عملية لمسؤولي المواقع، ومهندسي DevOps، ومهندسي الشبكات.
المتطلبات الأساسية والبنية العامة
لكي تتمكن من تنفيذ الأوامر عن بُعد على EC2، يلزم وجود ثلاثة مكونات رئيسية:
- تم تثبيت برنامج SSM Agent وتشغيله على EC2.
- يحتوي EC2 على ملف تعريف مثيل IAM يتضمن الحد الأدنى من السياسات المطلوبة للتسجيل والتواصل مع مدير الأنظمة (AmazonSSManagedInstanceCore).
- الاتصال الشبكي بخدمات SSM (عبر الإنترنت أو نقاط نهاية VPC لـ SSM/EC2Messages/SSM-SessionManager).
بنيان: المستخدم أو البرنامج النصي من وحدة تحكم AWS أو أمر AWS CLI/SDK تشغيل الأمر أو بدء الجلسة المكالمات → يقوم مدير الأنظمة بإرسال الرسالة إلى وكيل SSM على EC2 → يقوم الوكيل بتنفيذ الأمر وإعادة الإخراج إلى CloudWatch/S3 أو نتيجة المكالمة.
ملاحظة حول الوصول إلى الشبكة
إذا كان EC2 موجودًا على شبكة فرعية خاصة بدون NAT، فاستخدم نقاط نهاية VPC ل com.amazonaws. .ssm, رسائل ec2, رسائل نصية قصيرة و س3 يستخدم.
إعداد دور وسياسة إدارة الهوية والوصول (IAM) اللازمة
قم بإنشاء دور IAM لـ EC2 وقم بإرفاق سياسة AWS المُدارة:
سياسة الثقة (جهة الثقة لـ EC2):
{
"Version":"2012-10-17",
"Statement":[{"Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"},"Action":"sts:AssumeRole"}]
}إرفاق السياسة المُدارة: AmazonSSManagedInstanceCore
aws iam create-role --role-name SSMInstanceRole --assume-role-policy-document file://trust-policy.json
aws iam attach-role-policy --role-name SSMInstanceRole --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCoreتتضمن هذه السياسة الأذونات المطلوبة لتسجيل سجلات النظام وإرسالها إلى SSM. ولتخزين المخرجات في S3 أو استخدام KMS للتشفير، يجب عليك أيضًا إضافة أذونات للكتابة إلى حاوية S3 هذه واستخدام مفتاح KMS.
ثم قم بتحويل هذا الدور إلى ملف تعريف مثيل وقم بتوصيله بـ EC2.
تثبيت وفحص وكيل SSM على توزيعات لينكس الشائعة
لنظام أمازون لينكس 2:
sudo yum install -y amazon-ssm-agent
sudo systemctl enable --now amazon-ssm-agentبالنسبة لنظام أوبونتو (مثال مع تنزيل حزمة دبيان):
REGION=us-east-1
wget https://s3.${REGION}.amazonaws.com/amazon-ssm-${REGION}/latest/debian_amd64/amazon-ssm-agent.deb
sudo dpkg -i amazon-ssm-agent.deb
sudo systemctl enable --now amazon-ssm-agentالتحقق من الحالة:
sudo systemctl status amazon-ssm-agent
sudo tail -n 200 /var/log/amazon/ssm/amazon-ssm-agent.log
تنفيذ الأوامر باستخدام أمر التشغيل (مثال على واجهة سطر أوامر AWS)
طريقة سريعة لتشغيل أمر shell على مثيل واحد أو أكثر من مثيلات EC2:
مثال: تشغيل الأمر `apt update` و`upgrade` على مثيل:
aws ssm send-command \
--instance-ids "i-0123456789abcdef0" \
--document-name "AWS-RunShellScript" \
--parameters commands=["sudo apt-get update -y","sudo apt-get upgrade -y"] \
--comment "Update packages" \
--region us-east-1للاستهداف بواسطة الوسم (على سبيل المثال، جميع خوادم الويب التي تحمل الوسم Role=web):
aws ssm send-command \
--targets Key=tag:Role,Values=web \
--document-name "AWS-RunShellScript" \
--parameters commands=["/opt/deploy/deploy.sh"] \
--region eu-central-1احصل على مخرجات أمر ما:
1) مع مخرجات الأمر send-command، تحصل على CommandId.
2)
aws ssm get-command-invocation --command-id <COMMAND_ID> --instance-id i-0123456789abcdef0إذا تم إرسال المخرجات إلى S3، فقم بتعيين معلمات أمر الإرسال إلى --output-s3-bucket-name و --output-s3-key-prefix حدد.
نصائح عملية لتشغيل البرامج النصية الكبيرة
- قم بتحميل البرامج النصية إلى S3، ثم في نافذة "تشغيل الأمر" فقط أداة wget + اركض.
- للحصول على النصوص المتكررة من مدير الولاية يستخدم.
- استخدم المعلمات والوثائق المُدارة بواسطة SSM (وثائق التشغيل الآلي) لتحقيق التشغيل الآلي الكامل.
استخدام مدير الجلسات للوصول التفاعلي وإعادة توجيه المنافذ
يسمح مدير الجلسات بإنشاء واجهة تفاعلية بدون استخدام SSH ويمكنه أيضًا إجراء إعادة توجيه المنافذ.
بدء جلسة تفاعلية:
aws ssm start-session --target i-0123456789abcdef0يتطلب التثبيت للاستخدام التفاعلي في وحدة التحكم أو عبر واجهة سطر أوامر AWS إضافة إدارة الجلسات الأمر يقع على عاتق العميل.
مثال على إعادة توجيه المنافذ للوصول إلى قاعدة البيانات:
aws ssm start-session \
--target i-0123456789abcdef0 \
--document-name AWS-StartPortForwardingSession \
--parameters '{"portNumber":["3306"],"localPortNumber":["3307"]}'ثم يمكنك الذهاب إلى localhost:3307 يتم الاتصال وحركة البيانات عبر SSM دون فتح المنفذ 3306 للإنترنت.
إدارة المخرجات والسجلات (CloudWatch / S3)
في تفضيلات إدارة الجلسات، قم بتمكين سجلات CloudWatch أو تسجيل S3 لحفظ جميع الجلسات.
لتشغيل الأمر، يمكنك إعادة توجيه المخرجات إلى S3 أو تمكين مخرجات CloudWatch:
--cloud-watch-output-config '{"CloudWatchOutputEnabled":true}'
سيناريوهات وأمثلة عملية
إجراء تحديث جماعي على عشرات من مثيلات EC2 عبر مناطق متعددة:
- استخدم الاستهداف باستخدام الوسوم أو مجموعات الموارد.
- استخدم نوافذ صيانة SSM أو مدير التصحيحات للجدولة والتنسيق.
يُستخدم لوحدات معالجة الرسومات وخوادم العرض:
بالنسبة لخوادم وحدة معالجة الرسومات (GPU) المنتشرة في مواقع متعددة (على سبيل المثال، عبر أكثر من 85 موقعًا لدينا أو مناطق AWS)، استخدم أمر التشغيل لتثبيت برامج تشغيل NVIDIA وCUDA والحزم التابعة لها. مثال:
aws ssm send-command --instance-ids "i-..." --document-name "AWS-RunShellScript" --parameters commands=["sudo apt-get install -y nvidia-driver-470","sudo reboot"]إعداد سريع لخادم افتراضي خاص للتداول بأقل زمن استجابة:
- بدلاً من فتح SSH/22، استخدم مدير الجلسات وإعادة توجيه المنافذ للوصول بشكل آمن إلى خادم التداول.
- يمكن أن يؤدي اختيار الموقع المناسب (أقرب مركز بيانات مع مسار مباشر إلى الوسيط) واستخدام شبكة توصيل المحتوى (CDN) أو بروتوكول بوابة الحدود (BGP) أو الشبكة الخاصة إلى تقليل زمن الاستجابة (ping)؛ لدينا أكثر من أكثر من 85 موقعًا نحن نلبي هذه الاحتياجات في جميع أنحاء العالم.
نصائح أمنية وأفضل الممارسات
لا تقم بفتح منفذ SSH علنًا أبدًا.يُعدّ نظام SSM بديلاً منخفض المخاطر.
- من أقلّ الناس حظاً استخدم أدوار ومستخدمي إدارة الهوية والوصول (IAM). اسمح فقط بتنفيذ مستندات محددة أو الوصول إلى معلمات معينة.
- قم بتمكين تسجيل مدير الجلسة وإرسال المخرجات إلى S3 مع تشفير KMS أو CloudWatch.
- لنوع مخزن المعلمات سلسلة آمنة واستخدم مفتاح KMS مخصصًا.
- قيود مدير الجلسات: يمكنك ضبط الجداول الزمنية وسياسات إدارة الهوية والوصول لتشغيلها فقط خلال فترة زمنية محددة أو باستخدام المصادقة متعددة العوامل.
- بالنسبة للبيئات الحساسة، استخدم نقاط نهاية VPC لـ SSM وقوائم التحكم بالوصول القوية للشبكة ومجموعات الأمان.
الأخطاء الشائعة وكيفية حلها
- المثيل غير مُدار / غير مسجل: تأكد من تثبيت برنامج SSM Agent وتشغيله، وأن دور IAM الصحيح مرفق به.
- انقطع الاتصال: تحقق من توجيه الشبكة، أو نقاط نهاية VPC، أو الوصول إلى الإنترنت/NAT.
- تم رفض الإذن عند إرسال المخرجات إلى S3: يجب أن يتمتع دور إدارة الهوية والوصول (IAM) بصلاحية الكتابة إلى تلك الحاوية.
- يُظهر الأمر start-session خطأً: تأكد من تثبيت المكون الإضافي لإدارة الجلسات على جهاز العميل وتمكين مدير الجلسات في وحدة التحكم.
ملخص وكيفية استخدام خدماتنا
تُعد ميزة تشغيل الأوامر عن بعد على مثيل EC2 باستخدام AWS Systems Manager طريقة آمنة ومريحة لإدارة مثيلات EC2 عن بعد، وتشغيل البرامج النصية، والتصحيح، والوصول بدون SSH.
يتناسب هذا الحل بشكل جيد مع احتياجات:
- خادم رسومات (GPU) للذكاء الاصطناعي والعرض،
- خادم افتراضي خاص للتداول بمتطلبات زمن استجابة منخفضة،
- خوادم وبنية تحتية للألعاب مع اتفاقية مستوى خدمة عالية،
يمكن الجمع بينهما. إذا كنت بحاجة إلى إدارة مزيج من AWS EC2 وخوادمنا الدولية (أكثر من 85 موقعًا)، فنحن نقدم ما يلي:
- بالنسبة لأحمال العمل الحساسة للتأخير، اختر أقرب موقع لنا.
- استخدم بروتوكول BGP/CDN والروابط المخصصة (إذا لزم الأمر).
- استخدم مستندات SSM + Automation لإدارة وأتمتة العمليات بين بيئاتنا المحلية / AWS / VPS والحفاظ على السجلات مركزية في CloudWatch / S3.
خطوات مقترحة للبدء
للاطلاع على خطط خوادم السحابة، وسحابة وحدة معالجة الرسومات، والخوادم الافتراضية الخاصة (VPS) الخاصة بنا للتداول أو للحصول على نصائح فنية حول اختيار أفضل موقع وتنفيذ آمن باستخدام AWS Systems Manager، راجع الخطط أو اتصل بفريق الدعم لدينا لتصميم بنية مخصصة وآمنة لمشروعك.









