GH GambleHub

إدارة التكوينات والأسرار

إدارة التكوينات والأسرار

1) لماذا تحتاجه

التكوينات والأسرار هي «دم» منصة الإنتاج. يقع خطأ في التكوين في p95، السر المسرب هو حادثة P1. الهدف هو جعل التكوين/السر:
  • يمكن التنبؤ به (المخططات والتحقق والنسخ).
  • آمن (التشفير، الحد الأدنى من الحقوق، التناوب).
  • إدارة (GitOps، مراجعة الحسابات، التراجع).
  • ديناميكية حيث يكون لها ما يبررها (عرض الأعلام، تحديد الحدود).

2) تصنيف القطع الأثرية

التكوينات العامة: ميزات، عتبات، مهلات، أعلام (بدون أسرار).
التكوينات الحساسة: المعلمات التي تغير سلوك المسارات الحرجة (على سبيل المثال، حدود الدفع).
الأسرار: كلمات المرور/المفاتيح/الرموز/الشهادات/مواد التشفير.
القطع الأثرية للثقة: شهادات الجذر/الوسيط، سياسات مرفق المفاتيح العمومية، مفاتيح نظام إدارة الكيمياء.

مبدأ التخزين والحقوق المنفصلة: أسرار ≠ حساسة ≠ العامة.

3) الترتيب الهرمي

بناء «هرم» من الطبقات:

1. التخلف عن السداد العالمي (org-wide).

2. البيئة ('prod/stage/dev').

3. المنطقة («eu-central-1»، «us-east-1»).

4. المستأجر/العلامة التجارية (للمستأجرين المتعددين).

5. الخدمة (خدمة دقيقة محددة).

6. تجاوز (وقت التشغيل) - مفاتيح مؤقتة.

قواعد الاندماج: «أقل المكاسب»، الصراع - فقط من خلال MR/الموافقة.

مثال (YAML)

yaml defaults:
http:
timeout_ms: 800 retry: 2 prod:
http:
timeout_ms: 1200 service: payments-api overrides:
eu-central-1:
http:
timeout_ms: 1500

4) المخططات والتصديق

كل تكوين هو عقد مع مخطط (JSON Schema/OPA/المصدقين في CI).

الأنواع، النطاقات، الحقول المطلوبة، القيم الافتراضية.
"قواعد الحراسة" (لا يمكن ضبطها على "إعادة تجربة> 5"، "p95 _ target <50 ms').
تحقق تلقائيًا في CI وعند تطبيقه (القبول - webhook/KRM).

جزء مخطط JSON

json
{
"type":"object",
"properties":{
"http":{"type":"object","properties":{"timeout_ms":{"type":"integer","minimum":100,"maximum":10000},"retry":{"type":"integer","minimum":0,"maximum":5}},"required":["timeout_ms"]},
"feature_flags":{"type":"object","additionalProperties":{"type":"boolean"}}
},
"required":["http"]
}

5) نماذج تسليم التكوين

ثابت (مخبوز بالصورة): موثوق به، لكنه يتطلب إعادة تشغيل.
الدفع/المراقبة :/يتلقى الوكلاء الجانبيون تحديثات (دفق/استطلاع) ويشيرون إلى التطبيق.
ابدأ بدء التشغيل: نحصل على لقطة في بدء التشغيل (ابسط المسار الساخن).
Edge cache/proxy للأحمال الموزعة جغرافيًا.

الشيء الرئيسي: الذرة وإصدار اللقطات والتحكم في التوافق والتراجع السريع.

6) الأدوات والأدوار

متاجر التكوين: Git (مصدر الحقيقة) + GitOps (Argo/Flux)، Parameter Store/Config Service.
المستودعات السرية: Vault، AWS Secrets Manager/SSM، GCP Secrets، Azure KV.
التشفير: KMS/HSM، SOPS (age/GPG/KMS)، Sealed Secrets، Transit Encryption (Vault).
التسليم: CSI Secrets Store، Vault Agent Injector/Sidecar، init-containers.
الأعلام/الديناميكيات: منصة العلم المميزة (بما في ذلك مفتاح القتل في حالات الطوارئ).

7) التشفير: النماذج والممارسات

في الراحة: مفاتيح KMS للمشروع/البيئة، تشفير المغلف.
أثناء العبور: TLS/mTLS مع التوثيق المتبادل.
عند الاستخدام: فك التشفير في وقت متأخر قدر الإمكان، ويفضل أن يكون ذلك في ذاكرة العملية/السيارة الجانبية (دون الكتابة للقرص).
التسلسل الهرمي الرئيسي: الجذر (HSM) → KMS CMK → مفاتيح البيانات (DEK).
التناوب: التقويم (90/180 يومًا) + حسب الحدث (تسوية الموظف/المغادرة).

8) الإدارة السرية: الأنماط

8. 1 GitOps + SOPS (لقطة ثابتة)

Git يخزن فقط النص المشفر.
فك التشفير في CI/CD أو على مجموعة (KMS/age).
التطبيق عبر وحدة التحكم (Flux/Argo) → Kubernetes Secret.

yaml apiVersion: v1 kind: Secret metadata: { name: psp-keys, namespace: payments }
type: Opaque data:
apiKey: ENC[AES256_GCM,data:...,sops]

8. 2 حاقن عامل قبو

حساب الخدمة (JWT/SA) موثق في Vault.
يضع Sidecar الاعتمادات في tmpfs والتحديثات على TTL.
دعم الائتمانات الدينامية (DB، السحابة - العزلة والمدى القصير).

yaml annotations:
vault. hashicorp. com/agent-inject: "true"
vault. hashicorp. com/role: "payments-api"
vault. hashicorp. com/agent-inject-secret-db: "database/creds/payments"

8. 3 متجر أسرار CSI

ضع السر كحجم، والدوران شفاف.
لمرفق المفاتيح العمومية - التجديد التلقائي للشهادات/المفاتيح.

9) Kubernetes: الجوانب العملية

ConfigMap - بيانات عامة/غير حساسة فقط.
سرية - حساسة (مع قاعدة 64 - لا تشفير ؛ مكّن التشفير في الراحة لـ etcd).
شروح Checksum: إعادة تشغيل النشر عند تغيير التكوين.
مراقبة القبول: حظر تصاعد الأسرار ليس من «القائمة البيضاء»، وحظر كلمات المرور «البسيطة» في البيانات.
NetworkPolicy: تقييد الوصول إلى مقدمي الخدمات السريين (Vault/CSI).

مثال Checksum (Helm)

yaml annotations:
checksum/config: {{ include (print $.Template. BasePath "/configmap. yaml"). sha256sum }}

10) سياسات الوصول (RBAC/ABAC)

أقل امتياز: الخدمة ترى أسرارها فقط ؛ الوصول عن طريق المساحة/البادئة.
تقسيم الواجبات: إنشاء محتوى سري ≠ القراءة ؛ مراجعة أي قراءة.
الاعتمادات المؤقتة: عمليات تسجيل الدخول الديناميكية (DB، السحابة) مع TTL والدوران التلقائي.
التجزئة: حث/مرحلة في مشاريع/حسابات مختلفة/مفاتيح KMS.

11) مراجعة الحسابات وقطع الأشجار وقابلية الملاحظة

سجلات القراءة/إصدار الأسرار: من/متى/ماذا/أين ؛ الارتباط بالإطلاقات والحوادث.
المقاييس: تواتر المكالمات، الأسرار المنتهية الصلاحية، الشهادات المنتهية الصلاحية، حصة الاعتمادات الديناميكية.
الأحداث الأمنية - تجاوزت الحصة، وشذوذ الملكية الفكرية/الوقت، والمصادقات الفاشلة المتعددة.

12) تناوب الأسرار والشهادات

توحيد الشروط: مفاتيح واجهة برمجة التطبيقات - 90 يومًا، كلمات مرور DB - 30 يومًا، TLS serts - 60-90 يومًا.
مخطط التناوب: التوليد → الاختبار → النشر المزدوج (النعمة) → التبديل → إلغاء التحقق من → القديمة.
الموثوقية: إدخال مزدوج للتكوينات/الأسرار، توافق العميل (قبول جديد + قديم).
'1' مرفق المفاتيح العمومية: امتلاكه لاتفاقية استكهولم أو تكامله مع اتفاق خارجي ؛ قم تلقائيًا بتحديث محتوى mTLS من خلال CSI/Vault.

13) التكوينات الديناميكية والأعلام المميزة

خذ المعلمات «الساخنة» (الحدود، المهلات) من خدمة التهيئة/منصة العلم.
المخبأ المحلي والالتصاق (حساب المتغير بالهاش)، TTL قصير.
حراس SLO لتغيير المعلمات الحساسة (التراجع التلقائي وتبديل القتل).

14) التكامل مع CI/CD و GitOps

قبل الالتزام/CI: بطانات الدائرة، شيكات SOPS، حظر الأسرار «العارية» (الماسحات الضوئية: gitleaks/trufflehog).
بوابة السياسة: OPA/Conftest - إعدادات غير مسموح بها بدون مخطط/بدون شروح للمالك/بدون ملصقات بيئية.
التسليم التدريجي: ترويج التكوينات كقطع أثرية (نصف)، كناري لتغيير المعلمات.
شروح الإصدار: من/ما هو التكوين/السر الذي تغير ؛ الارتباط السريع مع p95/5xx.

15) أمثلة

15. 1 سياسة OPA: حظر SGs المفتوحة في Config

rego package policy. config

deny[msg] {
input. kind == "SecurityGroupRule"
input. cidr == "0. 0. 0. 0/0"
input. port = = 5432 msg: = "Postgres open internet banned"
}

15. 2 مثال على لقطة كونفيج (متحرر)

yaml version: 1. 12. 0 owner: payments-team appliesTo: [ "payments-api@prod" ]
http:
timeout_ms: 1200 retry: 2 withdraw:
limits:
per_txn_eur: 5000 per_day_eur: 20000 flags:
new_withdrawal_flow: false

15. 3 أرصدة قاعدة بيانات ديناميكية

hcl path "database/creds/payments" {
capabilities = ["read"]
}
role issues user/password with TTL = 1h and auto-rollover

16) الأنماط المضادة

Secrets in Git in clear text/in Helm/Ansible variables without encryption.
«سر ضخم» واحد لجميع الخدمات/البيئات.
رموز طويلة العمر بدون TTL/التناوب ؛ شهادات «خالدة».
تشكيلات دينامية بدون مخططات/مصادقة ودون تغييرات في مراجعة الحسابات.
No Encryption at Rest for etcd/KMS and non-mTLS network.
التحرير اليدوي للتكوينات في المنتج (تجاوز GitOps).
الوصول إلى المطورين للأسرار التجارية «فقط في حالة».

17) قائمة التنفيذ المرجعية (0-60 يومًا)

0-15 أيام

تضمين المخططات/المعتمدات للتكوينات ؛ ابدأ «تكوينات» إعادة الشراء وتدفق GitOps.
ارفع KMS والتشفير: SOPS/Sealed Secrets/Encryption at Rest in etcd.
حظر أسرار النص العادي في CI (الماسحات الضوئية)، وإدخال المالكين/الموافقات.

16-30 يومًا

أقبية التقسيم: التكوينات العامة مقابل الأسرار الحساسة.
قم بتنفيذ Vault/Secrets Manager، اختر مسار التسليم (Agent/CSI/SOPS).
وضع نظام لتناوب الأرصدة الدائنة لكل من TLS/DB/PSP ؛ لوحات القيادة «العمر الافتراضي/المنتهي».

31-60 يومًا

التكوينات والأعلام الديناميكية مع بوابة SLO والتراجع التلقائي.
سياسات برنامج العمل/برنامج كونفيست ؛ الثقة الصفرية (الوصول إلى مساحة الاسم/تحديد النطاق).
يوم اللعبة: محاكاة التسرب السري وتناوب القوة.

18) مقاييس النضج

% من الأسرار تحت التشفير وبدون وصول مباشر من Git = 100%.
تغطية التكوين/التحقق ≥ 95٪.
متوسط الوقت لتدوير الأسرار الحرجة (الهدف: ساعات وليس أيام).
حصة الائتمانات الديناميكية (DB/cloud) ≥ 80٪.
حوادث 0 بسبب «أسرار واضحة «/شهادات منتهية الصلاحية.
MTTR على خطأ التهيئة مع التراجع <5 دقائق.

19) أدوار وعمليات القيادة

مالك الكونفيج: المجال/المخطط/مالك السياسة.
الأمن: السياسات، والتسلسل الهرمي الرئيسي، ومراجعة الدخول.
المنصة/SRE: GitOps، الإمداد/الحقن، القياس عن بعد.
فرق التطبيقات: التهيئة/الاستهلاك السري، اختبارات التوافق.

20)

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

Contact

اتصل بنا

تواصل معنا لأي أسئلة أو دعم.نحن دائمًا جاهزون لمساعدتكم!

بدء التكامل

البريد الإلكتروني — إلزامي. تيليغرام أو واتساب — اختياري.

اسمك اختياري
البريد الإلكتروني اختياري
الموضوع اختياري
الرسالة اختياري
Telegram اختياري
@
إذا ذكرت تيليغرام — سنرد عليك هناك أيضًا بالإضافة إلى البريد الإلكتروني.
WhatsApp اختياري
الصيغة: رمز الدولة + الرقم (مثال: +971XXXXXXXXX).

بالنقر على الزر، فإنك توافق على معالجة بياناتك.