هوية السحابة: أدوار IAM وحسابات الخدمة
اضبط أدوار IAM وحسابات الخدمة وفق مبدأ أقل قدر من الامتيازات في منصات السحابة، وتجنّب الأخطاء الشائعة مثل أذونات أحرف البدل والمفاتيح طويلة الأجل.
هوية السحابة: أدوار IAM وحسابات الخدمة درس مجاني في Cloud & IT Cert Prep على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cloud & IT Cert Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.
أساسيات الهوية السحابية
في البيئات السحابية، تمثل الهوية المحيط الأمني الجديد. إذ يُصرح بكل إجراء، بدءًا من تشغيل VM وقراءة قاعدة بيانات ووصولًا إلى استدعاء API، بناءً على هوية الجهة المستدعية. وتحدد أنظمة IAM السحابية (إدارة الهوية والوصول) من يمكنه تنفيذ ماذا على أي موارد. وعلى خلاف البيئات المحلية التي كان موقع الشبكة فيها يوفر ثقة ضمنية، تتعامل IAM السحابية مع كل طلب على أنه يتطلب تصريحًا صريحًا بغض النظر عن مصدره.
المستخدمون والمجموعات والأدوار في AWS IAM
تحتوي AWS IAM على ثلاثة أنواع أساسية من الهويات. يمثل مستخدمو IAM أشخاصًا أو تطبيقات فردية ببيانات اعتماد طويلة الأجل (مفتاح وصول + مفتاح سري). وتجمع مجموعات IAM المستخدمين وتعين لهم أذونات مشتركة. أما أدوار IAM فهي هويات ببيانات اعتماد مؤقتة يمكن للمستخدمين أو خدمات AWS (EC2 وLambda) أو الحسابات الأخرى توليها. ويُفضل استخدام الأدوار بدلًا من مفاتيح الوصول طويلة الأجل، لأن بيانات اعتمادها تنتهي صلاحيتها تلقائيًا، مما يقلل خطر كشف بيانات الاعتماد.
# IAM role trust policy — allows EC2 to assume this role
{
'Version': '2012-10-17',
'Statement': [{
'Effect': 'Allow',
'Principal': { 'Service': 'ec2.amazonaws.com' },
'Action': 'sts:AssumeRole'
}]
}
# EC2 instance with this role attached can call AWS APIs
# using temporary credentials from the instance metadata serviceأقل الصلاحيات في سياسات IAM
تحدد سياسات IAM الإجراءات التي يمكن للهوية تنفيذها على موارد معينة. ويفرض مبدأ أقل الصلاحيات ألا تمنح السياسات إلا الإجراءات المحددة اللازمة للمهمة. ومن الانتهاكات الشائعة: استخدام أحرف البدل * للإجراءات (فيمنح جميع الإجراءات في خدمة ما)، واستخدام * للموارد (فيمنح الوصول إلى جميع الموارد)، وإرفاق سياسات مُدارة واسعة جدًا مثل AdministratorAccess بحسابات الخدمة. يجب تبرير كل حرف بدل ومراجعته بانتظام.
# Overly permissive policy (AVOID)
{
'Effect': 'Allow',
'Action': 's3:*', # all S3 actions
'Resource': '*' # all buckets
}
# Least-privilege policy (PREFERRED)
{
'Effect': 'Allow',
'Action': ['s3:GetObject', 's3:ListBucket'],
'Resource': [
'arn:aws:s3:::my-specific-bucket',
'arn:aws:s3:::my-specific-bucket/*'
]
}حسابات الخدمة في GCP
في Google Cloud Platform (GCP)، تصادق أحمال العمل غير البشرية باستخدام حسابات الخدمة — وهي كيانات هوية مُدارة تتضمن ملفات مفاتيح JSON أو اتحاد هوية أحمال العمل. يجب أن يلتزم كل حساب خدمة بمبدأ أقل قدر من الصلاحيات: اربط الحساب بخدمات GCP التي يحتاج إلى استدعائها فقط. مفاتيح حسابات الخدمة (ملفات JSON التي يتم تنزيلها من وحدة التحكم) بيانات اعتماد طويلة الأجل يجب التعامل معها مثل كلمات المرور — تدويرها بانتظام وعدم إيداعها مطلقًا في التعليمات البرمجية المصدرية أو رفعها إلى مستودعات عامة.
# Check service account permissions (gcloud)
gcloud projects get-iam-policy my-project \
--flatten='bindings[].members' \
--format='table(bindings.role, bindings.members)' \
--filter='bindings.members:serviceAccount'
# Prefer Workload Identity over service account keys
# (no downloadable key files — uses workload federation tokens)الهويات المُدارة في Azure
تُعد الهويات المُدارة في Azure (المعروفة سابقًا باسم MSI) النظير في Azure لأدوار AWS IAM الخاصة بالخدمات — فهي تتيح لموارد Azure (الأجهزة الافتراضية و App Services و Functions) المصادقة على واجهات Azure البرمجية من دون تخزين بيانات اعتماد. يوجد نوعان منها: ترتبط الهويات المُدارة المعيّنة للنظام بمورد محدد ويتم حذفها عند حذف المورد. أما الهويات المُدارة المعيّنة من المستخدم فهي كائنات مستقلة يمكن مشاركتها بين موارد متعددة. تلغي الهويات المُدارة الحاجة إلى تخزين أي مفاتيح أو أسرار.
# Azure CLI — assign managed identity to a VM
az vm identity assign \
--name myVM \
--resource-group myRG \
--identities /subscriptions/.../userAssignedIdentities/myIdentity
# The VM can now call Azure Key Vault without any stored credentials:
# Token is fetched automatically from the Instance Metadata Serviceمخاطر بيانات الاعتماد طويلة الأجل
تُعد بيانات الاعتماد طويلة الأجل — مثل مفاتيح الوصول الثابتة، ورموز API، وملفات مفاتيح حسابات الخدمة التي لا تنتهي صلاحيتها مطلقًا — من أعلى العناصر خطورة في البيئات السحابية. وإذا تسرّبت (عبر GitHub أو حاوية S3 أو السجلات أو حاسوب محمول لمطور تم اختراقه)، فإنها تمنح وصولًا فوريًا حتى يتم إبطالها يدويًا. ينبغي للمؤسسات إجراء تدقيق على جميع بيانات الاعتماد طويلة الأجل، وتدويرها وفق جدول زمني، وتفضيل الوصول القائم على الأدوار أو الوصول الاتحادي الذي يُصدر رموزًا قصيرة الأجل، وإطلاق تنبيه فور ظهور بيانات اعتماد في مستودعات عامة.
# Find IAM access keys older than 90 days (AWS)
aws iam generate-credential-report
aws iam get-credential-report --query 'Content' --output text | \
base64 -d | grep -v 'N/A' | \
awk -F',' '$10 > 90 {print $1, $10}'
# Keys older than 90 days should be rotated or deletedتسلسل أدوار IAM وتصعيد الصلاحيات
يحدث تصعيد صلاحيات IAM عندما تستخدم هوية ما مجموعة من الصلاحيات لمنح نفسها صلاحيات إضافية. تشمل مسارات التصعيد الشائعة: إرفاق سياسة أكثر تساهلًا بمستخدمك، وإنشاء مستخدم IAM جديد بصلاحيات مرتفعة، وتمرير دور (iam:PassRole) إلى خدمة، وتحديث دور التنفيذ الخاص بدالة Lambda. يستطيع AWS's IAM Access Analyzer اكتشاف هذه الأنماط، كما يمكن لحدود صلاحيات IAM تقييد الحد الأقصى للصلاحيات التي يمكن منحها لأي هوية بشكل صارم.
# Dangerous permission combination (enables privilege escalation):
# iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion
# Attacker can create a new policy version with AdministratorAccess
# Or: iam:PassRole + lambda:CreateFunction + lambda:InvokeFunction
# Attacker creates Lambda with a privileged role, invokes it
# Defense: permission boundaries limit maximum grantable permissionsافتراض الأدوار بين الحسابات
غالبًا ما تستخدم المؤسسات السحابية حسابات متعددة (للتطوير، والتجهيز، والإنتاج، والأمان) لتحديد نطاق الضرر. يتيح افتراض الأدوار بين الحسابات للهويات الموجودة في حساب ما افتراض أدوار في حساب آخر، مما يمكّن الأدوات المركزية من العمل عبر الحسابات. تشمل ضوابط الأمان: اشتراط معرّف خارجي في سياسة الثقة لمنع هجمات الوكيل المربك، وتقييد الحسابات التي يمكنها افتراض دور باستخدام Principal ARN، وتسجيل جميع عمليات الافتراض بين الحسابات في CloudTrail لأغراض التدقيق.
# Trust policy with External ID (confused deputy protection)
{
'Effect': 'Allow',
'Principal': { 'AWS': 'arn:aws:iam::PARTNER-ACCOUNT-ID:root' },
'Action': 'sts:AssumeRole',
'Condition': {
'StringEquals': {
'sts:ExternalId': 'unique-shared-secret-12345'
}
}
}أمان IMDS وخدمة البيانات الوصفية
يمكن لمثيلات AWS EC2 استرداد بيانات اعتماد دور IAM الخاصة بها من خدمة بيانات تعريف المثيل (IMDS) على العنوان http://169.254.169.254. وتُعد فئة ثغرات SSRF خطيرة بصفة خاصة هنا: فإذا كان تطبيق ما عرضة لـ SSRF، يستطيع المهاجم استخراج بيانات اعتماد دور IAM الخاصة بالمثيل من خلال جعل الخادم يجلب البيانات من عنوان IMDS. يخفف IMDSv2 (الذي يتطلب رمز جلسة) من سرقة بيانات الاعتماد المستندة إلى SSRF، وينبغي فرض استخدامه على جميع مثيلات EC2.
# Enforce IMDSv2 on a new EC2 instance (requires token for IMDS)
aws ec2 run-instances \
--metadata-options 'HttpTokens=required,HttpEndpoint=enabled' \
...
# IMDSv1 (insecure) just needs a GET request:
# curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
# IMDSv2 requires a PUT to get a session token firstIAM Access Analyzer ومراجعة السياسات
يحدد IAM Access Analyzer (من AWS) تلقائيًا الموارد التي تمت مشاركتها مع كيانات خارجية، وسياسات IAM التي تمنح صلاحيات تتجاوز المقصود. ويحلل سياسات الحاويات، وسياسات الثقة للأدوار، وسياسات مفاتيح KMS لوضع علامة على الوصول الخارجي غير المقصود صراحةً. تُعد المراجعات المنتظمة لسياسات IAM — يدويًا أو باستخدام أدوات مثل Cloudsplaining وPMapper وPermissions Boundary Analyzer — ضرورية لتحديد مسارات تصعيد الصلاحيات قبل أن يعثر عليها المهاجمون.
اتحاد هوية أحمال العمل
يتيح اتحاد هوية أحمال العمل لأحمال العمل الخارجية (مثل GitHub Actions والأنظمة المحلية وموفري الخدمات السحابية الآخرين) المصادقة على IAM السحابي باستخدام رموز OIDC قصيرة الأجل بدلًا من مفاتيح حسابات الخدمة طويلة الأجل. يمكن لسير عمل GitHub Actions افتراض دور AWS IAM باستخدام رمز OIDC الخاص به طوال مدة المهمة، ثم تنتهي صلاحية الرمز. يلغي هذا النهج الفئة الكاملة من مخاطر تسرب بيانات الاعتماد طويلة الأجل من مسارات CI/CD.
تحقق سريع
اختبر مدى فهمك لمفاهيم CompTIA Security+ (SY0-701) الواردة في هذا الدرس.
مراجعة الدرس
تعلمت في هذا الدرس أن: أدوار IAM توفر بيانات اعتماد مؤقتة، ويُفضّل استخدامها على مفاتيح الوصول طويلة الأجل لأحمال العمل السحابية، وأن سياسات أقل قدر من الصلاحيات يجب أن تتجنب أحرف البدل وأن تمنح إجراءات محددة فقط على موارد محددة، وأن IMDSv2 وحدود الصلاحيات واتحاد هوية أحمال العمل تلغي مسارات شائعة لكشف بيانات الاعتماد. بعد ذلك، سنستكشف إدارة وضعية الأمان السحابي (CSPM).
الأسئلة الشائعة
هل درس «هوية السحابة: أدوار IAM وحسابات الخدمة» مجاني؟
نعم — نص درس «هوية السحابة: أدوار IAM وحسابات الخدمة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cloud & IT Cert Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.
ماذا ستتعلم في «هوية السحابة: أدوار IAM وحسابات الخدمة»؟
اضبط أدوار IAM وحسابات الخدمة وفق مبدأ أقل قدر من الامتيازات في منصات السحابة، وتجنّب الأخطاء الشائعة مثل أذونات أحرف البدل والمفاتيح طويلة الأجل. تتمرن على Cloud & IT Cert Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cloud & IT Cert Prep؟
لا تُشترط خبرة سابقة. Cloud & IT Cert Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «هوية السحابة: أدوار IAM وحسابات الخدمة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cloud & IT Cert Prep هذا؟
نعم. كل درس في Cloud & IT Cert Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- نموذج المسؤولية المشتركة: IaaS وPaaS وSaaS
- أمان التخزين السحابي ومخاطر كشف البيانات
- هوية السحابة: أدوار IAM وحسابات الخدمة
- إدارة الوضع الأمني للسحابة (CSPM)