تسمح Azure Container Apps لتطبيقك بتخزين قيم التكوين الحساسة بشكل آمن. بمجرد تعريف الأسرار على مستوى التطبيق، تتوفر القيم الآمنة للمراجعات في تطبيقات الحاوية الخاصة بك. بالإضافة إلى ذلك، يمكنك الرجوع إلى القيم المؤمنة داخل قواعد المقياس. للحصول على معلومات حول استخدام الأسرار مع Dapr، راجع تكامل Dapr.
يتم تحديد نطاق الأسرار لتطبيق ما، خارج أي مراجعة محددة للتطبيق.
لا تؤدي إضافة الأسرار أو إزالتها أو تغييرها إلى إنشاء مراجعات جديدة.
يمكن لكل مراجعة تطبيق الرجوع إلى سر واحد أو أكثر.
يمكن أن تشير المراجعات المتعددة إلى نفس السر(الأسرار).
لا يؤثر السر المحدث أو المحذوف تلقائيا على المراجعات الموجودة في تطبيقك. عند تحديث سر أو حذفه، يمكنك الاستجابة للتغييرات بإحدى طريقتين:
نشر مراجعة جديدة.
أعد تشغيل مراجعة موجودة.
قبل حذف سر، انشر مراجعة جديدة لم تعد تشير إلى السر القديم. ثم قم بإلغاء تنشيط كافة المراجعات التي تشير إلى السر.
تعريف الأسرار
يتم تعريف الأسرار على أنها مجموعة من أزواج الاسم/القيمة. يتم تحديد قيمة كل سر مباشرة أو كمرجع إلى سر مخزن في Azure Key Vault.
تخزين القيمة السرية في Container Apps
عند تعريف الأسرار من خلال المدخل، أو عبر خيارات سطر أوامر مختلفة.
هنا، يتم الإعلان عن سلسلة الاتصال إلى حساب تخزين قائمة انتظار. تأتي القيمة من queue-connection-string متغير بيئة يسمى $QueueConnectionString.
سر مرجعي من Key Vault
عند تعريف سر، يمكنك إنشاء مرجع إلى سر مخزن في Azure Key Vault. تسترد تطبيقات الحاوية تلقائيا القيمة السرية من Key Vault وتجعلها متاحة كبيانات سرية في تطبيق الحاوية.
للإشارة إلى سر من Key Vault، يجب أولا تمكين الهوية المدارة في تطبيق الحاوية الخاص بك ومنح الهوية حق الوصول إلى أسرار Key Vault.
لتمكين الهوية المدارة في تطبيق الحاوية، راجع الهويات المدارة.
لمنح حق الوصول إلى أسرار Key Vault، قم بإنشاء نهج وصول في Key Vault للهوية المدارة التي أنشأتها. قم بتمكين "الحصول" على إذن سري لهذا النهج.
هنا، يتم تعريف سلسلة اتصال بحساب تخزين قائمة انتظار في secrets الصفيف. يتم استرداد قيمتها تلقائيا من Key Vault باستخدام الهوية المحددة. لاستخدام هوية مدارة من قبل المستخدم، استبدل system بمعرف مورد الهوية.
استبدل <KEY-VAULT-SECRET-URI> ب URI الخاص بسرك في Key Vault.
عند إنشاء تطبيق حاوية، يتم تعريف الأسرار باستخدام المعلمة --secrets .
تقبل المعلمة مجموعة محددة بمسافة من أزواج الاسم/القيمة.
يتم تحديد كل زوج بعلامة يساوي (=).
لتحديد مرجع Key Vault، استخدم التنسيق <SECRET_NAME>=keyvaultref:<KEY_VAULT_SECRET_URI>,identityref:<MANAGED_IDENTITY_ID>. على سبيل المثال، queue-connection-string=keyvaultref:https://mykeyvault.vault.azure.net/secrets/queuereader,identityref:/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-identity.
هنا، يتم تعريف سلسلة اتصال بحساب تخزين قائمة انتظار في --secrets المعلمة. استبدل <KEY_VAULT_SECRET_URI> ب URI الخاص بسرك في Key Vault. استبدل <USER_ASSIGNED_IDENTITY_ID> بمعرف المورد للهوية المعينة للمستخدم. بالنسبة للهوية المعينة من قبل النظام، استخدم system بدلا من معرف المورد.
إشعار
يجب أن يكون للهوية المعينة للمستخدم حق الوصول لقراءة السر في Key Vault. لا يمكن استخدام الهوية المعينة من قبل النظام مع أمر الإنشاء لأنها غير متوفرة إلا بعد إنشاء تطبيق الحاوية.
يجب أن يكون عنوان URI السري ل Key Vault بأحد التنسيقات التالية:
https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931: الرجوع إلى إصدار معين من البيانات السرية.
https://myvault.vault.azure.net/secrets/mysecret: الرجوع إلى أحدث إصدار من البيانات السرية.
إذا لم يتم تحديد إصدار في URI، فسيستخدم التطبيق أحدث إصدار موجود في مخزن المفاتيح. عندما تتوفر إصدارات أحدث، يسترد التطبيق تلقائيا أحدث إصدار في غضون 30 دقيقة. تتم إعادة تشغيل أي مراجعات نشطة تشير إلى السر في متغير بيئة تلقائيا لالتقاط القيمة الجديدة.
للتحكم الكامل في أي إصدار من البيانات السرية يتم استخدامه، حدد الإصدار في URI.
الرجوع إلى البيانات السرية في متغيرات البيئة
بعد الإعلان عن الأسرار على مستوى التطبيق كما هو موضح في قسم تعريف الأسرار ، يمكنك الرجوع إليها في متغيرات البيئة عند إنشاء مراجعة جديدة في تطبيق الحاوية الخاص بك. عندما يشير متغير البيئة إلى سر، يتم ملء قيمته بالقيمة المعرفة في السر.
مثال
يوضح المثال التالي تطبيقا يعلن عن سلسلة الاتصال على مستوى التطبيق. تتم الإشارة إلى هذا الاتصال في متغير بيئة حاوية وفي قاعدة مقياس.
هنا، يحصل متغير البيئة المسمى connection-string على قيمته من البيانات السرية على مستوى التطبيق queue-connection-string. أيضا، يستخدم queue-connection-string تكوين مصادقة قاعدة مقياس Azure Queue Storage السر لتعريف اتصاله.
لتجنب تثبيت قيم سرية للتحكم بالمصادر باستخدام قالب ARM الخاص بك، قم بتمرير القيم السرية كمعلمات قالب ARM.
في هذا المثال، يمكنك إنشاء تطبيق حاوية باستخدام Azure CLI مع سر المشار إليه في متغير بيئة. للإشارة إلى سر في متغير بيئة في Azure CLI، قم بتعيين قيمته إلى secretref:، متبوعا باسم السر.
هنا، يحصل متغير البيئة المسمى connection-string على قيمته من البيانات السرية على مستوى التطبيق queue-connection-string.
في هذا المثال، يمكنك إنشاء حاوية باستخدام Azure PowerShell مع سر يشار إليه في متغير بيئة. للإشارة إلى السر في متغير بيئة في PowerShell، قم بتعيين قيمته إلى secretref:، متبوعا باسم السر.
هنا، يحصل متغير البيئة المسمى ConnectionString على قيمته من البيانات السرية على مستوى التطبيق $QueueConnectionString.
إدخال البيانات السرية في وحدة تخزين
بعد الإعلان عن الأسرار على مستوى التطبيق كما هو موضح في قسم تعريف الأسرار ، يمكنك الرجوع إليها في تحميلات وحدة التخزين عند إنشاء مراجعة جديدة في تطبيق الحاوية الخاص بك. عند تحميل البيانات السرية في وحدة تخزين، يتم تحميل كل سر كملف في وحدة التخزين. اسم الملف هو اسم السر، ومحتويات الملف هي قيمة السر. يمكنك تحميل جميع الأسرار في تحميل وحدة تخزين، أو يمكنك تحميل أسرار معينة.
بعد تحديد سر في تطبيق الحاوية، يمكنك الرجوع إليه في تحميل وحدة تخزين عند إنشاء مراجعة جديدة.
انتقل إلى تطبيق الحاوية في مدخل Microsoft Azure.
افتح صفحة إدارة المراجعة.
حدد إنشاء مراجعة جديدة.
في صفحة إنشاء ونشر مراجعة جديدة.
حدد حاوية وحدد تحرير.
في قسم تحميلات وحدة التخزين، قم بتوسيع قسم Secrets .
حدد إنشاء وحدة تخزين جديدة.
أدخل المعلومات التالية:
الاسم: mysecrets
تحميل جميع الأسرار: ممكن
إشعار
إذا كنت ترغب في تحميل بيانات سرية معينة، ف قم بتعطيل تحميل جميع الأسرار وحدد الأسرار التي تريد تحميلها.
حدد إضافة.
ضمن اسم وحدة التخزين، حدد mysecrets.
ضمن مسار التحميل، أدخل /mnt/secrets.
حدد حفظ.
حدد Create لإنشاء المراجعة الجديدة مع تحميل وحدة التخزين.
في هذا المثال، يتم الإعلان عن سرين على مستوى التطبيق. يتم تحميل هذه الأسرار في وحدة تخزين تسمى mysecrets من النوع Secret. يتم تحميل وحدة التخزين في المسار /mnt/secrets. يمكن للتطبيق بعد ذلك الرجوع إلى الأسرار في تحميل وحدة التخزين.
لتحميل أسرار معينة وتحديد مساراتها داخل وحدة التخزين المثبتة، يمكنك تعريف الأسرار في secrets صفيف كائن وحدة التخزين. يوضح المثال التالي كيفية تحميل السر فقط queue-connection-string في mysecrets تحميل وحدة التخزين باسم connection-string.txtملف .
في تطبيقك، يمكنك قراءة السر من ملف موجود في /mnt/secrets/connection-string.txt.
في هذا المثال، يتم الإعلان عن سرين على مستوى التطبيق. يتم تحميل هذه الأسرار في وحدة تخزين تسمى mysecrets من النوع Secret. يتم تحميل وحدة التخزين في المسار /mnt/secrets. يمكن للتطبيق بعد ذلك قراءة الأسرار كملفات في تحميل وحدة التخزين.