Store app-level secrets for دالات Azure on Azure Container Apps

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

تتضمن الأمثلة الشائعة:

  • اتصالات البنية التحتية - AzureWebJobsStorage سلاسل الاتصالات، الاتصالات التي تفعل وربط الفعاليات في مراكز الأحداث، Service Bus، قاعدة بيانات كوزموس، وSQL.
  • بيانات الاعتماد التجارية - مفاتيح API من طرف ثالث، كلمات مرور قواعد البيانات، رموز منصات SaaS.
  • التكوين المخصص - أي قيمة حساسة يقرأها كودك من متغيرات البيئة.

اختر خيار التخزين

Azure Container Apps يمنحك طريقتين لتخزين الأسرار على مستوى التطبيق:

الخيار الأفضل ل الإدارة المركزية الدوران التلقائي تسجيل التدقيق
أسرار تطبيقات الحاويات التطوير/الاختبار، أحمال عمل بسيطة لتطبيق واحد لا - تم تحويله إلى تطبيق واحد لا. سجلات النشاط فقط
Key Vault المراجع الإنتاج، التطبيقات المتعددة، الامتثال نعم - عبر جميع التطبيقات نعم (URI بدون إصدار) تشخيصات Full Key Vault

Tip

ابدأ بأسرار تطبيقات الحاويات من أجل البساطة. انتقل إلى مراجع Key Vault عندما تحتاج إلى إدارة مركزية، أو تدوير تلقائي، أو تدقيق بدرجة الامتثال.

Prerequisites

استخدم أسرار تطبيقات الحاويات

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

خزن سرا

  • بوابة
  • واجهة سطر الأوامر Azure (Azure CLI)
  1. اذهب إلى تطبيق حاوية الوظائف الخاص بك في بوابة Azure.

  2. في قسم الإعدادات، اختر الأسرار.

  3. اختر الإضافة وأدخل القيم التالية:

    الخاصية القيمة
    Name اسم سري مثل database-password. استخدم الحروف الصغيرة والأرقام والشرطات فقط.
    النوع سر تطبيقات الحاويات
    قيمه قيمتك السرية.
  4. حدد إضافة.

الإشارة إلى السر في متغير البيئة

بعد تخزين سر، الرجوع إليه في متغير بيئة حتى يتمكن كود الدالة من قراءته.

  • بوابة
  • واجهة سطر الأوامر Azure (Azure CLI)
  1. في تطبيق حاوية الوظائف الخاص بك، تحت قسم التطبيق، اختر المراجعات والنسخ المقلدة.

  2. حدد إنشاء مراجعة جديدة.

  3. في تبويب الحاوية ، اختر الحاوية الخاصة بك، ثم اختر تعديل.

  4. اختر تبويب متغيرات البيئة ، ثم اختر إضافة.

  5. أدخل القيم التالية:

    الخاصية القيمة
    Name DATABASE_PASSWORD
    مصدر إشارة إلى سر
    قيمه database-password
  6. اختر حفظ، ثم اختر إنشاء لنشر النسخة الجديدة.

تحقق من السر

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

curl "https://<FUNCTIONS_APP_URL>/api/<FUNCTION_NAME>"

Important

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

Limitations

أسرار تطبيقات الحاويات لها القيود التالية:

  • لا يوجد مركزية - كل تطبيق حاوية يخزن أسراره الخاصة بشكل منفصل.
  • لا يوجد تدوير تلقائي - يجب تحديث القيم السرية يدويا.
  • لا انتهاء صلاحية - الأسرار لا تنتهي تلقائيا.
  • تدقيق محدود - سجلات الأنشطة الأساسية فقط؛ لا يوجد تدقيق سري مفصل.
  • لا يوجد إصدار للإصدار - لا يوجد سجل إصدار سري مدمج.
  • تحديث سلوك - تغيير سر لا يؤدي إلى تعديل جديد. يجب عليك إنشاء نسخة جديدة أو إعادة تشغيل التعديلات الحالية لالتقاط التغييرات.

استخدم مراجع Key Vault

تسمح مراجع Key Vault لتطبيق الحاوية الخاص بك بسحب الأسرار مباشرة من Azure Key Vault باستخدام هوية مدارة. هذا النهج يمنحك إدارة مركزية، وتدوير تلقائي، وتدقيق بدرجة الامتثال.

الخطوة 1: إعداد هوية مدارة

تطبيق الحاوية الخاص بك يحتاج إلى هوية مدارة للتحقق من Key Vault بدون بيانات اعتماد.

  • بوابة
  • واجهة سطر الأوامر Azure (Azure CLI)
  1. اذهب إلى تطبيق حاوية الوظائف الخاص بك في بوابة Azure.

  2. في قسم الإعدادات، اختر الهوية.

  3. في تبويب المخصص للنظام ، قم بتعيين الحالة على التشغيل.

  4. اختر حفظ، ثم اختر نعم للتأكد.

الخطوة 2: منح الوصول إلى Key Vault

تعيين دور المستخدم Key Vault الأسرار للهوية المدارة حتى يتمكن من قراءة الأسرار.

  • بوابة
  • واجهة سطر الأوامر Azure (Azure CLI)
  1. اذهب إلى Key Vault الخاص بك في بوابة Azure.

  2. في قسم الإعدادات، اختر التحكم في الوصول (IAM).

  3. حدد إضافة>تعيين دور.

  4. في علامة التبويب Role ، حدد Key Vault Secrets User.

  5. حدد التالي.

  6. في علامة التبويب الأعضاء، حدد الهوية المُدارة، ثم حدد تحديد الأعضاء.

  7. في قسم اختيار الهويات المدارة ، اختر اشتراكك، اختر تطبيق الحاوية لنوع الهوية المدارة، اختر تطبيق الحاوية الخاصة بك في Functions، ثم اختر الاختيار.

  8. حدد مراجعة + تعيين.

الخطوة 3: تخزين سر في Key Vault

  • بوابة
  • واجهة سطر الأوامر Azure (Azure CLI)
  1. في Key Vault الخاص بك، تحت Objects، اختر Secrets.

  2. حدد إنشاء/استيراد.

  3. أدخل القيم التالية:

    الخاصية القيمة
    خيارات التحميل يدوي
    Name اسم سري، على سبيل المثال DatabasePassword.
    قيمه قيمتك السرية.
  4. حدد إنشاء.

  5. اختر السر الذي أنشأته حديثا، ثم اختر النسخة الحالية.

  6. انسخ معرف السر URI. استخدم رابط الرؤية بدون إصدار (بدون جزء النسخة المتأخرة) لتمكين الدوران التلقائي.

الخطوة 4: الإشارة إلى سر Key Vault في تطبيقات الحاويات

أنشئ سر تطبيقات الحاويات يشير إلى سر Key Vault، ثم ربطه بمتغير بيئي.

  • بوابة
  • واجهة سطر الأوامر Azure (Azure CLI)
  1. اذهب إلى تطبيق حاوية الوظائف الخاص بك. في قسم الإعدادات، اختر الأسرار.

  2. حدد إضافة.

  3. في إضافة سر، أدخل القيم التالية:

    الخاصية القيمة
    Name database-password
    النوع Key Vault مرجع
    Key Vault رابط سري معرف السر URI الذي نسخته.
    الهوية التعيين للنظام (أو هويتك المعينة من قبل المستخدم).
  4. حدد إضافة.

  5. تحت قسم التطبيق، اختر التعديلات والنسخ المقلدة. أنشئ نسخة جديدة باستخدام متغير DATABASE_PASSWORD البيئة الذي يشير إلى database-password السر.

الخطوة 5: تحقق من مرجع Key Vault

قم بتفعيل وظيفتك وتأكد من أنها تعمل بدون أخطاء تتعلق بعدم وجود الإعدادات.

curl "https://<FUNCTIONS_APP_URL>/api/<FUNCTION_NAME>"

الدوران السري التلقائي

عندما تشير إلى سر Key Vault باستخدام رابط مستخدم بدون إصدار، يقوم Container Apps تلقائيا باسترجاع أحدث إصدار:

  • رابط المستخدم بدون إصدار: https://myvault.vault.azure.net/secrets/mysecret - يستخدم دائما أحدث إصدار.
  • رابط مستخدم تم إصداره: https://myvault.vault.azure.net/secrets/mysecret/ec96f020... - مثبت على نسخة محددة.

مع URIs بدون إصدار، تتحقق تطبيقات الحاويات من الإصدارات الجديدة خلال 30 دقيقة وتعيد تشغيل التعديلات النشطة تلقائيا لالتقاط القيمة الجديدة.