يمكن أن تكون إدارة البيانات الحساسة مثل مفاتيح واجهة برمجة التطبيقات والرموز المميزة وبيانات الاعتماد عبر بيئات مختلفة أمرًا صعبًا للغاية، خاصة عند تطوير التطبيقات ونشرها. يعد ضمان تخزين الأسرار بشكل آمن وجلبها عند الحاجة، دون تشفيرها للتحكم في الإصدار، أمرًا ضروريًا للحفاظ على الأمان.
لهذا السبب قمت بإنشاء 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:
يأتي برنامج Secret Loader مع بعض الميزات الأساسية التي تجعله أداة مفيدة لكل من بيئات التطوير والإنتاج المحلية:
Secrets Loader في قدرته على جلب الأسرار من AWS بناءً على بادئات محددة (ssm: وcf:). فيما يلي مثال لسير العمل:
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"
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"لا مزيد من أسرار التشفير، ولا مزيد من البحث اليدوي!
Secrets Loader في مشروعك:
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"
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_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"
ملف .env.example:
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"تم تحديث ملف .env:
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"
Secrets Loader، فإليك بعض الأشياء التي يجب التحقق منها:
أذونات AWS: تأكد من تكوين AWS CLI بشكل صحيح وأن دور IAM أو المستخدم الخاص بك لديه أذونات كافية للوصول إلى أسرار AWS SSM وCloudFormation.
أخطاء في بناء الجملة: تحقق مرة أخرى من بناء الجملة في ملف .env الخاص بك للتأكد من صحة البادئات ssm: وcf:.
أخطاء البرنامج النصي : إذا فشل البرنامج النصي في جلب أسرار معينة، فسوف يقوم بتسجيل التحذيرات ولكنه يستمر في جلب الآخرين. قم بمراجعة السجلات بحثًا عن أي رسائل خطأ وتأكد من وجود موارد AWS وإمكانية الوصول إليها.
على سبيل المثال، يمكنك إضافة azkv: بادئة لجلب الأسرار من Azure Key Vault والتعامل مع الاسترداد باستخدام Azure CLI.
Secrets Loader مفتوح المصدر، والمساهمات مرحب بها دائمًا! إذا كنت ترغب في إضافة ميزات أو إصلاح الأخطاء أو اقتراح تحسينات، فلا تتردد في:
Secrets Loader هي أداة بسيطة وفعالة لتبسيط العملية. من خلال جلب الأسرار ديناميكيًا من AWS SSM وCloudFormation، يمكنك إدارة بيانات الاعتماد الخاصة بك بشكل آمن دون المخاطرة بالكشف عنها في التحكم في الإصدار.
تفقد المشروع على GitHub، جربه، وإذا وجدته مفيدًا،أعطنا ⭐ على GitHub! دعمك يساعد المشروع على النمو، ونحن نحب أن نسمع رأيك ردود الفعل أو رؤية مساهماتك في التطوير المستمر.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3