محتويات الدورة

Terraform / البيانات الحساسة والحوكمة والتعافي / الدرس 16

مخرجات CI والسياسة وموافقة الخطة الدقيقة

اربط قرارات الأتمتة بالمخرجات والتنفيذ الموثوق لا اسم الخط.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • حدد هوية المصدر والاعتماد والمدخل والخطة والموافقة.
  • افحص سياسة أفعال مصطنعة مع مراعاة الاستبدال وحساسية JSON.

قد ينفذ كود البنية عبر قنوات عدة

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

تبقى الخطط الآلية مخرجات حساسة

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

bash أمر عرض آلي للمراجعة فقط
terraform show -json review.tfplan

لا ينفذ الأمر ولا يفتح خطة. يصف الحد لا مخرجاً عاماً آمناً. يلزم توافق الصيغة والمجهول والحساس والبنية وترتيب الأفعال.

يتضمن الاستبدال فعلاً هداماً أيضاً

السجل جزء مؤلف يشبه خطة لا مخططاً كاملاً أو سياسة إنتاج. ترفض قاعدته أي delete ومنها الاستبدال؛ وهو اختيار تعليمي أشد من أعمال مشروعة. تحتاج السياسة الحقيقية الهوية والبيئة والمجهول والاستثناء والاحتفاظ ومعنى المورد. قد يفوت الاقتصار على قائمة delete المنفردة تسلسلي create/delete و delete/create.

python تقييم قاعدة حذف محدودة
changes = [
    {'address': 'terraform_data.catalog', 'actions': ['update']},
    {'address': 'terraform_data.release', 'actions': ['create', 'delete']},
]
blocked = sorted(c['address'] for c in changes if 'delete' in c['actions'])
print('blocked=' + ','.join(blocked))
print(f'approved={not blocked}')
الناتج المتوقع
blocked=terraform_data.release
approved=False

يُمنع استبدال release لوجود delete. لا نقرأ خطة أو نمنح تصريحاً؛ بل نفحص شرطاً واحداً لا صحة المخرج أو السلامة كلها.

تحتاج الموافقة والتزامن إلى السياق المقصود نفسه

تحدد الموافقة مراجعة المصدر والأداة والمزود والموديول وهوية المدخل غير السري والحالة وبصمة المخرج والمراجع والسياسة. نسق الكتّاب وارفض السياق المتغير ولا تعطل القدم والقفل. ينبغي أن تناسب الصلاحية النطاق لا دور مدير مريح. احم الاعتماد والمخرجات من العمل غير الموثوق واجعل استثناء الطوارئ محدوداً ومدققاً. لا يثبت وجود الأتمتة صحة ضبط الحدود.

قرار السياسة ليس اختبار قبول خدمة

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

الأخطاء الشائعة وإصلاحها

تطبيق الموافقة على خطة جديدة بالاسم نفسه.

لماذا يحدث؟
استبدل الاسم هوية المحتوى والسياق.
كيف تصلحه؟
راجع المخرج الفعلي وارفض السياق المتغير.
كيف تتجنب تكراره؟
اربط الموافقة بدليل ثابت لا تسمية متغيرة.

تفوت سياسة الحذف الاستبدالات.

لماذا يحدث؟
فُحصت قائمة delete المنفردة فقط.
كيف تصلحه؟
افحص تسلسلات الأفعال ومعناها.
كيف تتجنب تكراره؟
اختبر التحديث والحذف وترتيبي الاستبدال.

نشر JSON الخام كمخرج غير حساس.

لماذا يحدث؟
افتُرض انتقال حجب الشاشة للآلة.
كيف تصلحه؟
قيد الوصول واحجب التقرير وعالج الكشف.
كيف تتجنب تكراره؟
عامل المخرجات حساسة من الأصل.

اختبر فهمك

1. لماذا يمنع المثال إنشاءً ثم حذفاً؟

اعرض الحل المشروح

تمنع القاعدة أي حذف ويحتويه الاستبدال. يغير الترتيب آثار الإتاحة ولا يمحو الحذف. قد تجيز سياسة أغنى استثناء بهوية وبيانات وشروط مراجعة.

2. هل يجيز نجاح السياسة التنفيذ بأي حساب؟

اعرض الحل المشروح

لا؛ تبقى الهوية والحالة والاعتماد والثقة حدوداً. لا يخول قرار مخرج بيئة أخرى. احفظ السياق وأقل الصلاحيات وافحص النتيجة لا اللون الأخضر وحده.

أهم ما تعلمته

  • اعتمد المخرج والسياق الدقيقين.
  • السياسة والتزامن والسرية وفحص النتيجة ضوابط مختلفة.

المراجع الرسمية