اكتشاف انحراف Terraform ومعالجته
يتسبب انحراف Terraform (drift) في مخاطر صامتة في بيئة الإنتاج الخاصة بك. يحدث هذا عندما لا تعود بنيتك التحتية الفعلية مطابقة للكود الخاص بك.
يتسبب هذا عدم التطابق في انقطاع الخدمة، ويخلق ثغرات أمنية، ويؤدي إلى فشل الامتثال.
لماذا يحدث الانحراف؟
- يقوم المهندسون بإجراء إصلاحات عاجلة (hotfixes) في وحدة تحكم السحابة (cloud console).
- تقوم الفرق بإجراء تغييرات يدوية أثناء وقوع حادث ما.
- يقوم الأشخاص بإنشاء موارد خارج سير عمل البنية التحتية ككود (IaC).
- تتجاوز السرعة قواعد الحوكمة الخاصة بك.
مثال:
يحدد الكود الخاص بك مثيل EC2 كـ t2.micro. يقوم مهندس بتغييره يدويًا إلى t2.large في وحدة تحكم AWS. أصبح الكود الخاص بك والواقع الفعلي مختلفين الآن. هذا هو الانحراف.
كيف تجده:
قم بتشغيل أمر terraform plan. سيوضح لك هذا الفجوة بين الكود الخاص بك والسحابة. لاحظ أن بعض التغييرات اليدوية قد تظل مخفية إذا لم تؤثر على الموارد المحددة التي يتتبعها Terraform.
كيف توقفه:
- استخدم backend عن بُعد (remote backend). قم بتخزين الحالة (state) في AWS S3. يحافظ هذا على ملف الحالة الخاص بك آمنًا ومؤرخًا (versioned) لفريقك بأكمله.
- استخدم GitOps. اجعل Git هو المصدر الوحيد للحقيقة (single source of truth). يجب أن تمر كل عملية تغيير عبر طلب سحب (pull request).
- قم بأتمتة الاختبارات. تحقق من تغييرات البنية التحتية الخاصة بك قبل أن تصبح فعلية.
- راقب باستمرار. استخدم أدوات مثل AWS Config أو Spacelift لتنبيهك عند حدوث تغييرات خارج نطاق الكود الخاص بك.
كيف تعالجه:
إذا وجدت انحرافًا، يجب عليك إعادة البنية التحتية لتطابق الكود الخاص بك. استخدم أمر terraform apply لمسح التغييرات اليدوية واستعادة الحالة المنشودة.
الاتساق يحافظ على استقرار أنظمتك.
المصدر: https://dev.to/vprachi360/terraform-drift-detection-and-remediation-tactics-29bm
مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi