بعد أن فهمت أساسيات IAM، سننشئ مستخدمًا بصلاحيات محدودة تطبيقًا لمبدأ الأقلّ امتيازًا. درس عملي.
🔒 مراجعة أمنية مطلوبة: الأوامر تمثيلية ويجب تشغيلها في حساب حقيقي؛ تخضع الصفحة لمراجعة متخصّص قبل النشر.
المبدأ أوّلًا
الهدف: منح المستخدم ما يحتاجه فقط. لا تبدأ بصلاحيات واسعة ثم تقلّصها؛ ابدأ من الصفر وأضف ما يلزم. هذا يقلّص الضرر إن تسرّبت بيانات اعتماد المستخدم.
الخطوة 1: أنشئ المستخدم
aws iam create-user --user-name dev-sara
الخطوة 2: عرّف سياسة بأقلّ امتياز
بدل منح وصول كامل، اكتب سياسة تسمح بالإجراءات الضرورية على الموارد المحدّدة فقط. مثال يسمح بقراءة كائنات حاوية واحدة لا أكثر:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": ["s3:GetObject"],
"Resource": "arn:aws:s3:::my-app-bucket/*"
}]
}
لاحظ الدقّة: إجراء واحد (s3:GetObject) على مورد واحد (حاوية بعينها) — لا s3:* ولا Resource: "*".
الخطوة 3: أنشئ السياسة وأرفقها
aws iam create-policy --policy-name read-app-bucket \
--policy-document file://policy.json
aws iam attach-user-policy --user-name dev-sara \
--policy-arn arn:aws:iam::<account-id>:policy/read-app-bucket
أفضل ممارسات الأمان
- فعّل MFA: أضف مصادقة متعدّدة العوامل للمستخدمين، خصوصًا أصحاب الصلاحيات الحسّاسة.
- لا تستخدم حساب الجذر للعمل اليومي (راجع أساسيات IAM).
- استخدم الأدوار للخدمات: بدل تضمين مفاتيح دائمة في خادم أو تطبيق، امنحه دورًا يُتبنّى مؤقّتًا.
- دوّر المفاتيح وراجع الصلاحيات دوريًا، واحذف غير المستخدم منها.
- لا تُضمّن المفاتيح في الكود أو في مستودعات عامّة.
الخطوة 4: التنظيف
aws iam detach-user-policy --user-name dev-sara --policy-arn <arn>
aws iam delete-user --user-name dev-sara
الخطوات التالية
تمرّن على كتابة السياسات في تمارين سياسات IAM، وطبّق التأمين على التخزين في تأمين حاوية S3 من الكشف العامّ.