وقوع الحادث بعد الوفاة: 23 نوفمبر 2021 ، ذكاء بيانات PlatoBlockchain. البحث العمودي. عاي.

تشريح بعد الحادث: 23 نوفمبر 2021

نبذة عامة

بين الساعة 4:00 مساءً وحوالي الساعة 5:36 مساءً بتوقيت المحيط الهادئ يوم الثلاثاء 23 نوفمبر، واجهنا انقطاعًا في معظم أنظمة إنتاج Coinbase. خلال هذا الانقطاع، لم يتمكن المستخدمون من الوصول إلى Coinbase باستخدام مواقعنا الإلكترونية وتطبيقاتنا، وبالتالي لم يتمكنوا من استخدام منتجاتنا. يهدف هذا المنشور إلى وصف ما حدث وأسبابه، ومناقشة كيف نخطط لتجنب مثل هذه المشكلات في المستقبل.

الحادث

في 23 نوفمبر 2021، الساعة 4:00 مساءً بتوقيت المحيط الهادئ (24 نوفمبر 2021، الساعة 00:00 بالتوقيت العالمي المنسق)، انتهت صلاحية شهادة SSL لاسم مضيف داخلي في أحد حسابات Amazon Web Services (AWS). تم استخدام شهادة SSL منتهية الصلاحية من قبل العديد من موازنات التحميل الداخلية لدينا مما تسبب في فشل غالبية الاتصالات بين الخدمات. ونظرًا لحقيقة أن طبقة توجيه واجهة برمجة التطبيقات (API) الخاصة بنا تتصل بخدمات الواجهة الخلفية عبر النطاقات الفرعية لاسم المضيف الداخلي هذا، فقد أعاد حوالي 90% من حركة مرور واجهة برمجة التطبيقات (API) الواردة أخطاء.

عادت معدلات الخطأ إلى وضعها الطبيعي بمجرد أن تمكنا من ترحيل جميع موازنات التحميل إلى شهادة صالحة.

وقوع الحادث بعد الوفاة: 23 نوفمبر 2021 ، ذكاء بيانات PlatoBlockchain. البحث العمودي. عاي.
مخطط يوضح معدل الخطأ الإجمالي بنسبة 90% في طبقة توجيه واجهة برمجة التطبيقات (API) الخاصة بنا طوال مدة الحادث.

السياق: الشهادات في Coinbase

من المفيد تقديم بعض المعلومات الأساسية حول كيفية إدارة شهادات SSL في Coinbase. بالنسبة للجزء الأكبر، تتم إدارة شهادات أسماء المضيفين العامة مثل Coinbase.com وتوفيرها بواسطة Cloudflare. بالنسبة لشهادات أسماء المضيفين الداخليين المستخدمة لتوجيه حركة المرور بين الخدمات الخلفية، فقد استفدنا تاريخيًا من شهادات خادم AWS IAM.

أحد الجوانب السلبية لشهادات خادم IAM هو أنه يجب إنشاء الشهادات خارج AWS وتحميلها عبر استدعاء API. لذا، في العام الماضي، قام فريق البنية التحتية لدينا بالانتقال من شهادات خادم IAM إلى AWS Certified Manager (ACM). تعمل ACM على حل مشكلة الأمان لأن AWS تنشئ المكونات العامة والخاصة للشهادة داخل ACM وتخزن النسخة المشفرة في IAM لنا. لن تتمكن سوى الخدمات المتصلة مثل Cloudfront وElastic Load Balancers من الوصول إلى الشهادات. إنكار ال ACM:شهادة التصدير يضمن الإذن لجميع أدوار AWS IAM عدم إمكانية تصديرها.

بالإضافة إلى المزايا الأمنية المضافة، تقوم ACM أيضًا بتجديد الشهادات تلقائيًا قبل انتهاء صلاحيتها. مع العلم أنه من المفترض تجديد شهادات ACM وقمنا بالترحيل، كيف حدث ذلك؟

تحليل السبب الجذري

لاحظ المستجيبون للحوادث بسرعة أن الشهادة منتهية الصلاحية كانت عبارة عن شهادة خادم IAM. كان هذا غير متوقع لأن ترحيل ACM المذكور أعلاه قد تم نشره على نطاق واسع في قنوات الاتصال الهندسية في ذلك الوقت؛ وبالتالي كنا نعمل على افتراض أننا كنا نعمل حصريًا على شهادات ACM.

وكما اكتشفنا لاحقًا، لم تتم إحدى عمليات ترحيل الشهادات كما هو مخطط لها؛ قامت مجموعة المهندسين العاملين على الترحيل بتحميل شهادة IAM جديدة وتأجيل بقية الترحيل. لسوء الحظ، لم يتم نشر التأخير على نطاق واسع كما كان ينبغي أن يكون، وأدت التغييرات في هيكل الفريق والموظفين إلى افتراض اكتمال المشروع بشكل غير صحيح.

وبغض النظر عن حالة الهجرة، يمكنك طرح نفس السؤال الذي طرحناه على أنفسنا: "لماذا لم يتم تنبيهنا إلى انتهاء صلاحية الشهادة؟" الجواب هو: كنا. تم إرسال التنبيهات إلى مجموعة توزيع البريد الإلكتروني التي اكتشفنا أنها تتكون من شخصين فقط. كانت هذه المجموعة في الأصل أكبر حجمًا، لكنها تقلصت مع رحيل أعضاء الفريق ولم تتم إعادة تعدادها بشكل كافٍ مع انضمام أشخاص جدد إلى الفريق.

باختصار، تم السماح بانتهاء صلاحية الشهادة الحرجة بسبب العوامل الثلاثة:

  1. كان ترحيل IAM إلى ACM غير مكتمل.
  2. تم إرسال تنبيهات انتهاء الصلاحية عبر البريد الإلكتروني فقط وتمت تصفيتها أو تجاهلها.
  3. كان هناك شخصان فقط على قائمة توزيع البريد الإلكتروني.

القرار والتحسينات

ولحل هذا الحادث، قمنا بترحيل جميع موازنات التحميل التي كانت تستخدم شهادة IAM منتهية الصلاحية إلى شهادة ACM الحالية التي يتم تجديدها تلقائيًا والتي تم توفيرها كجزء من خطة الترحيل الأصلية. استغرق هذا وقتًا أطول من المطلوب نظرًا لعدد موازنات الأحمال المعنية وحذرنا في تحديد تغييرات البنية التحتية المطلوبة واختبارها وتطبيقها.

ومن أجل ضمان عدم مواجهة مثل هذه المشكلة مرة أخرى، فقد اتخذنا الخطوات التالية لمعالجة العوامل المذكورة في قسم RCA أعلاه:

  1. لقد أكملنا الترحيل إلى ACM، ولم نعد نستخدم شهادات خادم IAM ونقوم بحذف أي شهادات قديمة لتقليل التشويش.
  2. نحن نضيف مراقبة آلية متصلة بنظام التنبيه والترحيل الخاص بنا لزيادة تنبيهات البريد الإلكتروني. ستظهر هذه الصفحة عند انتهاء الصلاحية الوشيك وكذلك عندما تنقطع شهادات ACM عن أهلية التجديد التلقائي.
  3. لقد أضفنا اسمًا مستعارًا للمجموعة الدائمة إلى قائمة توزيع البريد الإلكتروني. علاوة على ذلك، يتم تحديث هذه المجموعة تلقائيًا عند انضمام الموظفين إلى الشركة ومغادرتها.
  4. نحن نقوم ببناء مستودع لعمليات معالجة الحوادث من أجل تقليل الوقت اللازم لتحديد التغييرات الجديدة واختبارها وتطبيقها.

نحن نأخذ وقت تشغيل البنية التحتية لدينا وأدائها على محمل الجد، ونعمل جاهدين لدعم ملايين العملاء الذين يختارون Coinbase لإدارة عملاتهم المشفرة. إذا كنت مهتمًا بحل تحديات مثل تلك المذكورة هنا، تعال واعمل معنا.

وقوع الحادث بعد الوفاة: 23 نوفمبر 2021 ، ذكاء بيانات PlatoBlockchain. البحث العمودي. عاي.


تشريح بعد الحادث: 23 نوفمبر 2021 نشرت في الأصل في مدونة Coinbase على المتوسط، حيث يواصل الناس المحادثة من خلال تسليط الضوء على هذه القصة والرد عليها.

Source: https://blog.coinbase.com/incident-post-mortem-november-23-2021-d507821b8459?source=rss—-c114225aeaf7—4

الطابع الزمني:

اكثر من کوین بیس