السياسة كرمز لـ IaC
السياسة كرمز لـ IaC
تمنح البنية التحتية كرمز الفرق قوة توفير أي شيء — وهذا هو المشكلة بالضبط. بدون حواجز حماية، يمكن للمطور فتح المنفذ 22 للعالم، أو تشغيل نسخة RDS غير مشفرة، أو نشر دلو S3 عام يحتوي على بيانات العملاء الشخصية، وكل ذلك عبر terraform apply نظيف. السياسة كرمز (PaC) هي ممارسة ترميز تلك الحواجز كملفات سياسة قابلة للقراءة آليًا وخاضعة للتحكم بالإصدار، وفرضها تلقائيًا داخل خط أنابيب CI/CD — قبل أن تصل أي استدعاءات API إلى مزود الحوسبة السحابية. في Google وMeta وAmazon، تخضع كل تغييرات البنية التحتية لبوابة PaC. الخطة التي تنتهك السياسة يتم حجبها، لا مجرد تحذيرها؛ ويحصل المهندس على رفض منظم مع مرجع القاعدة الدقيق وخطوات المعالجة.
الأدوات الثلاثة الرئيسية
ثلاثة أدوات تهيمن على مساحة PaC لـ Terraform، وتشغل مواضع مختلفة في نموذج الثقة:
- Open Policy Agent (OPA) + Conftest — محرك سياسة متعدد الأغراض من CNCF. تُكتب السياسات بلغة Rego. تُغذّيه بخطة Terraform بصيغة JSON وتُقيّمها مقابل قواعد Rego. مفتوح المصدر، مستقل عن السحابة، ومُتبنّى على نطاق واسع في التحكم بالقبول في Kubernetes أيضًا.
- Sentinel — إطار السياسات الخاص بـ HashiCorp، مدمج مباشرة في Terraform Cloud/Enterprise. تُكتب السياسات بلغة Sentinel وتعمل كبوابة أصلية بين
planوapply. أفضل تكامل مع منصة HCP لكنه يتطلب TFC/TFE. - Checkov — ماسح تحليل ثابت من Bridgecrew (تم الاستحواذ عليه من Palo Alto). يُحلّل HCL لـ Terraform مباشرة (لا حاجة للخطة) ويتحقق من أكثر من 1000 سياسة مدمجة للأخطاء في AWS وAzure وGCP. سريع، لا يحتاج إعدادًا، ويتكامل في أي خط أنابيب CI كخطوة لاكتشاف الأخطاء.
terraform plan (بوابة ما قبل التطبيق). يفرض Sentinel السياسة الصارمة على مستوى المؤسسة في Terraform Enterprise. إن طبّق الأدوات معًا يُجسّد الدفاع المتعمق ويكتشف فئات مختلفة من الانتهاكات في أرخص نقطة في خط الأنابيب.
معمارية خط الأنابيب المسوّر بالسياسات
يوضح الرسم التالي كيفية وضع بوابات السياسة داخل خط أنابيب Terraform CI لمستوى الإنتاج. كل بوابة تُعدّ فشلًا صارمًا — رمز خروج غير صفري يُخفق خط الأنابيب ويمنع الدمج أو التطبيق.
Checkov: المسح الثابت المُزاح لليسار
Checkov هو أسرع حلقة تغذية راجعة. شغّله محليًا قبل فتح PR، ومرة أخرى في CI على كل دفعة. لا يحتاج خطة — يقرأ ملفات .tf مباشرة.
.checkov.baseline. يوثّق المخاطر المقبولة ويمنع الإرهاق من النتائج الموروثة. كل تجاوز في الخط الأساسي ينبغي أن يكون له مرجع Jira/GitHub مقابل في تعليق حتى يُتابع الدَّين ولا يُخفى.
OPA + Conftest: سياسة على مستوى الخطة
يفوّت Checkov قرارات وقت التشغيل التي تظهر فقط في الخطة: ما إذا كانت قاعدة مجموعة الأمان هي 0.0.0.0/0، أو نوع النسخة على قائمة الموافقة، أو غياب وسم. يُقيّم OPA خطة terraform show -json الكاملة، مما يمنحك وصولًا إلى كل تغيير في الموارد بما فيها القيم المحسوبة.
احتفظ بالسياسات في مجلد policy/ مخصص داخل مستودع infra-live، مُعدَّل إصداره بجانب كود البنية التحتية. تنشر الفرق الكبيرة السياسات إلى خادم حزم OPA مشترك (S3 + OPA bundle API) حتى تستهلك جميع الفِرق نفس مجموعة القواعد المركزية دون نسخ الملفات.
Sentinel: السياسة الصارمة في Terraform Enterprise
إذا كانت مؤسستك تستخدم Terraform Cloud أو Enterprise، فإن Sentinel هو الجواب الأصلي. يعمل تلقائيًا بعد كل خطة في مساحة عمل، قبل أن يتمكن المشغلون من الموافقة على التطبيق. لسياسات Sentinel ثلاثة مستويات إنفاذ: advisory (تسجيل فقط)، وsoft-mandatory (قابل للتجاوز بشري)، وhard-mandatory (لا يمكن تجاوزه — أبدًا). فِرق الامتثال تحب hard-mandatory لقواعد مثل "لا يمكن إنشاء أي مورد بدون وسم Owner" أو "يجب تمكين التعيين على جميع دلاء S3."
هيكلة السياسات على نطاق واسع
على نطاق big-tech، تعيش السياسات في مستودع خاص بها (infra-policies) مع CI خاص به وإصدار ومراجعة. الممارسات الرئيسية:
- اختبر سياساتك. يأتي OPA مع
opa test؛ Sentinel لديه إطار اختبار. سياسة معطوبة تنطلق على تكوينات صالحة تضر بقدر غياب أي سياسة — تدرّب المهندسين على تجاوز البوابات. - افصل WARN عن BLOCK. السياسات الجديدة يجب أن تبدأ كتحذيرات لأسبوعين. هذا يمنح الفرق وقتًا لإصلاح الانتهاكات الموجودة قبل أن تصبح القاعدة فشلًا صارمًا. تتبع فترة التحذير في رأس ملف السياسة كتعليق.
- ضع وسمًا لكل سياسة بمعرف تحكم. اربط كل قاعدة Rego/Sentinel برقم SOC 2 أو CIS أو معرف تحكم داخلي. هذا يجعل جمع أدلة المراجعة أمرًا بسيطًا مثل
conftest test --output jsonبدلًا من جدول بيانات يدوي. - نسّق حزم السياسات. المستهلكون (مساحات العمل، خطوط الأنابيب) يُثبّتون إصدارًا محددًا من الحزمة. تمر تغييرات السياسة عبر PRs مع مراجعة CODEOWNERS من فريق الأمان قبل الإصدار.
مع Checkov يكتشف الأخطاء على مستوى HCL، وOPA يُقيّم الخطة الكاملة، وSentinel يفرض القواعد الصارمة على مستوى المؤسسة في المنصة — لديك دفاع متعمق لسلسلة توريد بنيتك التحتية. النتيجة: المهندسون يتحركون بسرعة، وفِرق الامتثال تنام مرتاحة، وأدلة المراجعة في متناول أمر git log.