"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > إدارة سرية سهلة لمشاريع Laravel وJS باستخدام أداة تحميل الأسرار

إدارة سرية سهلة لمشاريع Laravel وJS باستخدام أداة تحميل الأسرار

تم النشر بتاريخ 2024-11-08
تصفح:167

Effortless Secret Management for Laravel & JS Projects with Secrets Loader

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

لهذا السبب قمت بإنشاء Secrets Loader، وهو برنامج نصي Bash يجلب الأسرار بشكل ديناميكي من AWS SSM وCloudFormation مباشرة إلى ملف .env الخاص بك، مما يجعل التطوير والنشر المحلي أسهل وأكثر أمانًا وكفاءة.


ما هو محمل الأسرار؟

Secrets Loader هي أداة بسيطة مصممة لجلب الأسرار تلقائيًا من AWS SSM Parameter Store ومخرجات AWS CloudFormation بناءً على بناء الجملة المخصص في ملف .env الخاص بك. فهو يستبدل العناصر النائبة بأسرار فعلية دون الكشف عن معلومات حساسة في التحكم في الإصدار.

على سبيل المثال، بدلاً من تشفير مفاتيح API أو بيانات الاعتماد الخاصة بك، يمكنك تعريفها في ملف .env الخاص بك مثل هذا:

THIRD_PARTY_API_KEY="ssm:/third-party/api/key"
AWS_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"

باستخدام أمر واحد، سيقوم Secrets Loader بجلب القيم الفعلية من AWS وتحديث ملف .env الخاص بك، مما يحافظ على أمان المعلومات الحساسة وسهولة إدارتها.


لماذا بنيت ذلك

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

إليك التحديات الرئيسية التي يحلها Secrets Loader:

  1. تجنب الأسرار المشفرة: لا مزيد من الالتزام بالأسرار للتحكم في الإصدار. يمكنك استخدام العناصر النائبة بأمان وجلب القيم الفعلية ديناميكيًا من AWS SSM وCloudFormation.
  2. تقليل الجهد اليدوي: بدلاً من نسخ القيم السرية ولصقها يدويًا، ما عليك سوى تحديدها مرة واحدة في ملف .env الخاص بك، والسماح للبرنامج النصي بإجراء الجلب.
  3. تبسيط إدارة السرية: سواء كنت تعمل في التطوير المحلي أو العرض المسرحي أو الإنتاج، يضمن برنامج Secrets Loader تحميل الأسرار بشكل آمن وتلقائي.

سمات

يأتي برنامج Secret Loader مع بعض الميزات الأساسية التي تجعله أداة مفيدة لكل من بيئات التطوير والإنتاج المحلية:

  • التحميل السري الآلي: جلب الأسرار من AWS SSM Parameter Store وCloudFormation عن طريق تحديد المسارات في ملف .env الخاص بك.
  • نهج الأمان أولاً: احتفظ بالبيانات الحساسة خارج نطاق التحكم في الإصدار عن طريق تحميلها بشكل آمن في وقت التشغيل.
  • بناء جملة بسيط: استخدم بناء جملة مخصصًا في ملف .env الخاص بك (ssm: لمعلمات SSM، cf: لمخرجات CloudFormation) لتحديد مصدر الأسرار.
  • معالجة الأخطاء: يستمر البرنامج النصي في معالجة الأسرار الأخرى حتى إذا فشلت عملية استرجاع واحدة، ويسجل التحذيرات دون إيقاف سير العمل.

كيف يعمل

يكمن سحر

Secrets Loader في قدرته على جلب الأسرار من AWS بناءً على بادئات محددة (ssm: وcf:). فيما يلي مثال لسير العمل:

  1. إعداد ملف .env الخاص بك:
أضف عناصر نائبة لأسرارك في ملف .env الخاص بك باستخدام بادئة ssm: لمعلمات SSM أو بادئة cf: لمخرجات CloudFormation:


THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
   THIRD_PARTY_API_KEY="ssm:/third-party/api/key"
   AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
  1. تشغيل البرنامج النصي:
استخدم الأمر التالي لتشغيل البرنامج النصي وجلب الأسرار:


./secrets.sh
   THIRD_PARTY_API_KEY="ssm:/third-party/api/key"
   AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
  1. تم تحديث ملف .env:
بعد تشغيل البرنامج النصي، سيتم تحديث ملف .env الخاص بك بالقيم الفعلية التي تم جلبها من AWS:


THIRD_PARTY_API_KEY=actual-api-key-value AWS_SECRET_ACCESS_KEY=قيمة مفتاح الوصول الفعلية
   THIRD_PARTY_API_KEY="ssm:/third-party/api/key"
   AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
لا مزيد من أسرار التشفير، ولا مزيد من البحث اليدوي!


التثبيت والإعداد

هل أنت مستعد للبدء؟ إليك كيفية إعداد

Secrets Loader في مشروعك:

  1. استنساخ المستودع:
استنساخ بوابة https://github.com/Thavarshan/secretst-loader.git محمل القرص المضغوط السري
   THIRD_PARTY_API_KEY="ssm:/third-party/api/key"
   AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
  1. جعل البرنامج النصي قابلاً للتنفيذ:
chmod x Secrets.sh
   THIRD_PARTY_API_KEY="ssm:/third-party/api/key"
   AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
  1. تأكد من تثبيت AWS CLI وتكوينه:
إذا لم تكن AWS CLI مثبتة لديك، فاتبع دليل تثبيت AWS CLI. بعد التثبيت، قم بتكوين بيانات اعتماد AWS الخاصة بك:


تكوين أوس
   THIRD_PARTY_API_KEY="ssm:/third-party/api/key"
   AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
  1. حدد أسرارك في .env:
استخدم البادئات ssm: وcf: لتحديد مصدر الأسرار:


THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"
   THIRD_PARTY_API_KEY="ssm:/third-party/api/key"
   AWS_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"

مثال الاستخدام

دعونا نلقي نظرة على مثال بسيط:

ملف .env.example:

# إعدادات التطبيق APP_NAME=MyApp APP_ENV=الإنتاج # الأسرار التي تم جلبها من AWS SSM وCloudFormation THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
   THIRD_PARTY_API_KEY="ssm:/third-party/api/key"
   AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
تشغيل محمل الأسرار:

./secrets.sh
   THIRD_PARTY_API_KEY="ssm:/third-party/api/key"
   AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
تم تحديث ملف .env:

# إعدادات التطبيق APP_NAME=MyApp APP_ENV=الإنتاج #أسرار مكتسبة THIRD_PARTY_API_KEY=قيمة مفتاح واجهة برمجة التطبيقات الفعلية AWS_SECRET_ACCESS_KEY=مفتاح الوصول السري الفعلي
   THIRD_PARTY_API_KEY="ssm:/third-party/api/key"
   AWS_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"

استكشاف الأخطاء وإصلاحها

إذا واجهت أي مشكلات أثناء استخدام

Secrets Loader، فإليك بعض الأشياء التي يجب التحقق منها:

  1. أذونات AWS: تأكد من تكوين AWS CLI بشكل صحيح وأن دور IAM أو المستخدم الخاص بك لديه أذونات كافية للوصول إلى أسرار AWS SSM وCloudFormation.

  2. أخطاء في بناء الجملة: تحقق مرة أخرى من بناء الجملة في ملف .env الخاص بك للتأكد من صحة البادئات ssm: وcf:.

  3. أخطاء البرنامج النصي : إذا فشل البرنامج النصي في جلب أسرار معينة، فسوف يقوم بتسجيل التحذيرات ولكنه يستمر في جلب الآخرين. قم بمراجعة السجلات بحثًا عن أي رسائل خطأ وتأكد من وجود موارد AWS وإمكانية الوصول إليها.


تمديد محمل الأسرار

تم تصميم البرنامج النصي ليكون قابلاً للتوسعة. إذا كنت ترغب في دمج أنظمة الإدارة السرية الأخرى (مثل Azure Key Vault أو HashiCorp Vault)، فيمكنك بسهولة تعديل البرنامج النصي لدعم البادئات الجديدة وجلب المنطق.

على سبيل المثال، يمكنك إضافة azkv: بادئة لجلب الأسرار من Azure Key Vault والتعامل مع الاسترداد باستخدام Azure CLI.


المساهمة

Secrets Loader مفتوح المصدر، والمساهمات مرحب بها دائمًا! إذا كنت ترغب في إضافة ميزات أو إصلاح الأخطاء أو اقتراح تحسينات، فلا تتردد في:

  • فتح مشكلة: شارك بتعليقاتك أو تقارير الأخطاء.
  • أرسل طلب سحب: ساهم بالكود باتباع إرشادات المساهمة الخاصة بنا.

خاتمة

إذا كنت قد سئمت من إدارة الأسرار يدويًا عبر البيئات، فإن

Secrets Loader هي أداة بسيطة وفعالة لتبسيط العملية. من خلال جلب الأسرار ديناميكيًا من AWS SSM وCloudFormation، يمكنك إدارة بيانات الاعتماد الخاصة بك بشكل آمن دون المخاطرة بالكشف عنها في التحكم في الإصدار.

تفقد المشروع على GitHub، جربه، وإذا وجدته مفيدًا،

أعطنا ⭐ على GitHub! دعمك يساعد المشروع على النمو، ونحن نحب أن نسمع رأيك ردود الفعل أو رؤية مساهماتك في التطوير المستمر.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/thavarshan/effortless-secret-management-for-laravel-js-projects-with-secrets-loader-59be?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ Study_golang@163 .com لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3