العودة إلى التحديثات
New releaseSep 5, 2026

cloud-custodian v0.9.52.0

محرك قواعد لأمن السحابة وتحسين التكاليف والحوكمة، DSL في yaml للسياسات للاستعلام والتصفية واتخاذ الإجراءات على الموارد

مشاركة

Cloud Custodian (c7n)

Cloud Custodian Logo


slack CI CII Best Practices

Cloud Custodian، المعروف أيضًا باسم c7n، هو محرك قواعد لإدارة حسابات وموارد السحابة العامة. يسمح للمستخدمين بتعريف سياسات لتمكين بنية تحتية سحابية مُدارة بشكل جيد، آمنة ومُحسّنة من حيث التكلفة. يُوحّد العديد من البرامج النصية المؤقتة التي تستخدمها المؤسسات في أداة خفيفة ومرنة، مع مقاييس وتقارير موحّدة.

يمكن استخدام Custodian لإدارة بيئات AWS وAzure وGCP من خلال ضمان الامتثال في الوقت الفعلي لسياسات الأمان (مثل التشفير ومتطلبات الوصول)، وسياسات الوسوم، وإدارة التكاليف عبر جمع القمامة للموارد غير المستخدمة وإدارة الموارد خارج ساعات العمل.

يدعم Custodian أيضًا تشغيل السياسات على أصول البنية التحتية كرمز لتقديم ملاحظات مباشرة على محطات عمل المطورين أو داخل خطوط أنابيب CI.

تُكتب سياسات Custodian في ملفات تكوين YAML بسيطة تتيح للمستخدمين تحديد سياسات على نوع مورد (EC2, ASG, Redshift, CosmosDB, PubSub Topic) وتُبنى من مفردات من المرشحات والإجراءات.

يتكامل مع قدرات الحوسبة بدون خادم (serverless) الأصلية لكل مزود لتوفير تطبيق فوري للسياسات مع توفير مدمج. أو يمكن تشغيله كوظيفة cron بسيطة على خادم لتنفيذها على مجموعات كبيرة موجودة.

Cloud Custodian هو مشروع CNCF في مرحلة الحضانة، ويقوده مجتمع يضم مئات المساهمين.

الميزات

  • دعم شامل لخدمات وموارد السحابة العامة مع مكتبة غنية من الإجراءات والمرشحات لبناء السياسات.
  • تشغيل السياسات على أصول البنية التحتية كرمز (terraform، إلخ).
  • يدعم التصفية التعسفية للموارد بشروط منطقية متداخلة.
  • تشغيل تجريبي (Dry run) لأي سياسة لرؤية ما ستفعله.
  • يقوم تلقائيًا بتوفير وظائف serverless ومصادر الأحداث (AWS CloudWatchEvents, AWS Config Rules, Azure EventGrid, GCP AuditLog & Pub/Sub، إلخ).
  • مخرجات مقاييس أصلية لدى مزود السحابة للموارد التي تطابق سياسة.
  • مخرجات منظمة إلى تخزين كائنات سحابي أصلي للموارد التي تطابق سياسة.
  • استخدام ذاكرة تخزين مؤقت ذكي لتقليل استدعاءات API.
  • دعم استخدام حسابات/اشتراكات/مشاريع متعددة.
  • مُجرب في المعارك - قيد الإنتاج في بعض بيئات السحابة الكبيرة جدًا.

الروابط

التثبيت السريع

يتم نشر Custodian على pypi كمجموعة من الحزم ذات البادئة c7n، وهو متاح أيضًا كصورة Docker.

$ python3 -m venv custodian
$ source custodian/bin/activate
(custodian) $ pip install c7n

الاستخدام

الخطوة الأولى لاستخدام Cloud Custodian (c7n) هي كتابة ملف YAML يحتوي على السياسات التي تريد تشغيلها. تحدد كل سياسة نوع المورد الذي ستعمل عليه السياسة، ومجموعة من المرشحات التي تتحكم في الموارد التي ستتأثر بهذه السياسة، والإجراءات التي ستتخذها السياسة على الموارد المطابقة، ووضع يتحكم في كيفية تنفيذ السياسة.

أفضل أدلة البدء هي الدروس التعليمية الخاصة بمزود السحابة.

كمثال سريع، فيما يلي بعض نماذج السياسات لموارد AWS.

  1. سيفرض أن دلو S3 لا يحتوي على وصول عبر الحسابات ممكّنًا.
  2. سينهي أي مثيل EC2 تم إطلاقه حديثًا وليس لديه وحدة تخزين EBS مشفرة.
  3. سيقوم بوسم أي مثيل EC2 لا يحتوي على الوسوم التالية: "Environment"، "AppId"، وإما "OwnerContact" أو "DeptID" ليتم إيقافه بعد أربعة أيام.
policies:
 - name: s3-cross-account
   description: |
     Checks S3 for buckets with cross-account access and
     removes the cross-account access.
   resource: aws.s3
   region: us-east-1
   filters:
     - type: cross-account
   actions:
     - type: remove-statements
       statement_ids: matched

 - name: ec2-require-non-public-and-encrypted-volumes
   resource: aws.ec2
   description: |
    Provision a lambda and cloud watch event target
    that looks at all new instances and terminates those with
    unencrypted volumes.
   mode:
    type: cloudtrail
    role: CloudCustodian-QuickStart
    events:
      - RunInstances
   filters:
    - type: ebs
      key: Encrypted
      value: false
   actions:
    - terminate

 - name: tag-compliance
   resource: aws.ec2
   description: |
     Schedule a resource that does not meet tag compliance policies to be stopped in four days. Note a separate policy using the`marked-for-op` filter is required to actually stop the instances after four days.
   filters:
    - State.Name: running
    - "tag:Environment": absent
    - "tag:AppId": absent
    - or:
      - "tag:OwnerContact": absent
      - "tag:DeptID": absent
   actions:
    - type: mark-for-op
      op: stop
      days: 4

يمكنك التحقق من صحة واختبار وتشغيل Cloud Custodian باستخدام السياسة المثال بهذه الأوامر:

# Validate the configuration (note this happens by default on run)
$ custodian validate policy.yml

# Dryrun on the policies (no actions executed) to see what resources
# match each policy.
$ custodian run --dryrun -s out policy.yml

# Run the policy
$ custodian run -s out policy.yml

يمكنك تشغيل Cloud Custodian عبر Docker أيضًا:

# Download the image
$ docker pull cloudcustodian/c7n
$ mkdir output

# Run the policy
#
# This will run the policy using only the environment variables for authentication
$ docker run -it \
  -v $(pwd)/output:/home/custodian/output \
  -v $(pwd)/policy.yml:/home/custodian/policy.yml \
  --env-file <(env | grep "^AWS\|^AZURE\|^GOOGLE") \
  cloudcustodian/c7n run -v -s /home/custodian/output /home/custodian/policy.yml

# Run the policy (using AWS's generated credentials from STS)
#
# NOTE: We mount the ``.aws/credentials`` and ``.aws/config`` directories to
# the docker container to support authentication to AWS using the same credentials
# credentials that are available to the local user if authenticating with STS.

$ docker run -it \
  -v $(pwd)/output:/home/custodian/output \
  -v $(pwd)/policy.yml:/home/custodian/policy.yml \
  -v $(cd ~ && pwd)/.aws/credentials:/home/custodian/.aws/credentials \
  -v $(cd ~ && pwd)/.aws/config:/home/custodian/.aws/config \
  --env-file <(env | grep "^AWS") \
  cloudcustodian/c7n run -v -s /home/custodian/output /home/custodian/policy.yml

أداة custodian cask tool هي ثنائي Go يوفر واجهة أمامية شفافة لـ Docker تحاكي واجهة سطر الأوامر العادية لـ custodian، ولكنها تعتني تلقائيًا بتركيب وحدات التخزين.

راجع الوثائق للحصول على معلومات إضافية، أو تواصل على Gitter.

مساعدة خاصة بمزود السحابة

للحصول على إرشادات محددة لـ AWS وAzure وGCP، تفضل بزيارة صفحة البدء ذات الصلة.

شارك

  • GitHub - (هذه الصفحة)
  • Slack - دردشة فورية إذا كنت تبحث عن مساعدة أو مهتم بالمساهمة في Custodian!
    • Gitter - (دردشة فورية أقدم، من المحتمل أن ننتقل بعيدًا عنها)
  • Linen.dev - تابع مناقشاتنا على Linen
  • القائمة البريدية - قائمتنا البريدية للمشروع، اشترك هنا للحصول على إعلانات مهمة عن المشروع، لا تتردد في طرح الأسئلة
  • Reddit - مجتمعنا الفرعي
  • StackOverflow - موقع أسئلة وأجوبة للمطورين، نراقب وسم cloudcustodian
  • قناة يوتيوب - نعمل على إضافة دروس تعليمية ومعلومات مفيدة أخرى، بالإضافة إلى فيديوهات الاجتماعات

موارد المجتمع

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

الأدوات الإضافية

يقوم مشروع Custodian أيضًا بتطوير وصيانة مجموعة من الأدوات الإضافية هنا https://github.com/cloud-custodian/cloud-custodian/tree/main/tools:

  • Org: تنفيذ السياسات عبر حسابات متعددة.

  • ShiftLeft: التحول لليسار ~ تشغيل السياسات على أصول البنية التحتية كرمز مثل terraform.

  • PolicyStream: سجل Git كتيار من تغييرات السياسات المنطقية.

  • Salactus: مسح ضوئي لـ s3 على نطاق واسع.

  • Mailer: تطبيق مرجعي لإرسال رسائل إلى المستخدمين لإعلامهم.

  • Trail Creator: وسم استعادي لمنشئي الموارد من CloudTrail

  • TrailDB: فهرسة Cloudtrail وتوليد سلاسل زمنية للوحات المعلومات.

  • LogExporter: تصدير سجلات Cloud Watch إلى s3

  • Cask: تنفيذ سهل لـ custodian عبر docker

  • Guardian: إعداد Guard Duty آلي عبر حسابات متعددة

  • Omni SSM: أتمتة EC2 Systems Manager

  • Mugc: أداة تستخدم لتنظيف سياسات Cloud Custodian Lambda المنشورة في بيئة AWS.

المساهمة

انظر https://cloudcustodian.io/docs/contribute.html

الأمان

إذا وجدت مشكلة متعلقة بالأمان، أو ثغرة أمنية، أو ثغرة محتملة في Cloud Custodian، فيرجى إبلاغ فريق أمان Cloud Custodian بتفاصيل الثغرة. سنرسل بريدًا إلكترونيًا للتأكيد للإقرار بتقريرك، وسنرسل بريدًا إلكترونيًا إضافيًا عندما نحدد المشكلة بشكل إيجابي أو سلبي.

مدونة قواعد السلوك

يلتزم هذا المشروع بـ مدونة قواعد سلوك CNCF

بمشاركتك، يُتوقع منك احترام هذه المدونة.

الفئات