أهلاً بالجميع،
نحن نتطلع إلى تحسين كيفية تعامل Discourse مع مصادقة AWS [1]، ونود أن نفهم كيف تم إعدادك حاليًا قبل إجراء أي تغييرات.
الوضع الحالي
حاليًا، هناك عدة طرق لتكوين مصادقة AWS في Discourse:
الخيار 1: بيانات الاعتماد الصريحة (عبر إعدادات الموقع)
- قم بتعيين
s3_access_key_idوs3_secret_access_keyفي إعدادات موقعك - المصادقة خاصة بالموقع
الخيار 2: بيانات الاعتماد الصريحة (عبر متغيرات البيئة)
- قم بتعيين متغيرات البيئة:
DISCOURSE_S3_ACCESS_KEY_ID
DISCOURSE_S3_SECRET_ACCESS_KEY - المصادقة هي نفسها لجميع المواقع في مجموعة متعددة المواقع
الخيار 3: إعداد “استخدام ملف تعريف IAM”
- قم بتمكين إعداد الموقع
s3_use_iam_profileأو قم بتعيين متغير البيئةDISCOURSE_S3_USE_IAM_PROFILE=true - يخبر Discourse SDK الخاص بـ AWS بالعثور على بيانات الاعتماد تلقائيًا
- تم تصميمه في الأصل لمثيلات EC2 والحصول على بيانات الاعتماد عبر IMDS، ولكنه يعمل في بيئات أخرى
لماذا نريد التغيير
1. اسم الإعداد مربك
اسم الإعداد s3_use_iam_profile مضلل. يوحي بأنه يعمل فقط مع ملفات تعريف مثيلات EC2، ولكنه في الواقع يمكّن أي مصدر بيانات اعتماد لـ AWS SDK:
- ملفات تعريف مثيلات EC2
- أدوار مهام ECS
- متغيرات البيئة
- ملفات بيانات اعتماد AWS
- افتراض دور IAM
- والمزيد…
2. الأمان: المفاتيح الثابتة مقابل افتراض الدور
على منصة الاستضافة الخاصة بنا، نستخدم حاليًا مفاتيح وصول يتم تدويرها بانتظام. نهدف إلى التحول إلى افتراض الدور لعزل أفضل، وفرص أفضل للتحكم في الوصول، ودعم عملية داخلية أفضل.
عيوب النهج الحالي:
- لا تنتهي صلاحية مفاتيح الوصول (حتى يتم تدويرها)
- لها نطاقات أذونات واسعة
- يمكن اختراقها إذا تم تسريبها
- تتطلب إجراءات تدوير يدوية
مزايا استخدام افتراض الدور بدلاً من ذلك:
- يمكن تقييد بيانات الاعتماد الدائمة عن طريق عنوان IP
- تتم العمليات باستخدام بيانات اعتماد مؤقتة تنتهي صلاحيتها تلقائيًا (عادةً ساعة واحدة)
- وصول في الوقت المناسب حيث توجد بيانات الاعتماد فقط عند الحاجة
- نطاق انفجار مخفض نظرًا لأن بيانات الاعتماد المؤقتة المخترقة تنتهي صلاحيتها بسرعة
- لا يوجد تدوير للمفاتيح - تعالج عملية افتراض الدور التحديث
- مسارات تدقيق أفضل - يتم تتبع كل جلسة بشكل منفصل
ما نفكر فيه
نفكر في أحد الخيارين:
- إعادة تسمية الإعداد إلى شيء أوضح مثل
aws_credentials_from_environment - إزالة الإعداد تمامًا واكتشاف تلقائيًا متى يجب أن تأتي بيانات الاعتماد من البيئة مقابل إعدادات الموقع
نحتاج إلى مدخلاتك!
يرجى إخبارنا:
-
كيف تقوم بالمصادقة مع S3؟
- مفاتيح وصول صريحة في إعدادات الموقع
- ملف تعريف مثيل EC2 (مع تمكين
s3_use_iam_profile) - دور مهمة ECS (مع تمكين
s3_use_iam_profile) - متغيرات البيئة (مع تمكين
s3_use_iam_profile) - … شيء آخر؟
-
إذا كنت تستخدم
s3_use_iam_profile:- ما هي البيئة التي تعمل فيها؟ (EC2، ECS، Docker، bare metal، إلخ)
- هل تسبب الاسم/الوصف الحالي أي ارتباك؟
- هل سيكون اسم مختلف أوضح؟
-
أي مخاوف بشأن التغييرات على هذا الإعداد؟
- هل أنت قلق بشأن كسر إعدادك الحالي؟
- هل تحتاج إلى وقت لاختبار التغييرات؟
- اعتبارات أخرى؟
لماذا هذا مهم
مصادقة S3 أفضل تعني:
- أكثر أمانًا - لا توجد مفاتيح ثابتة لإدارتها
- إعداد أسهل - خاصة للنشر السحابي
- ارتباك أقل - إعدادات وتوثيق أوضح
- دعم أفضل لأنماط مصادقة AWS الحديثة
ستساعدنا ملاحظاتك في إجراء تحسينات تعمل للجميع. شكرًا لك على الوقت الذي قضيته في مشاركة إعدادك!
هنا اقرأ: أي موفر تخزين كائنات متوافق مع S3 تستخدمه ↩︎