تكوين المفاتيح المدارة من قبل العميل لحساب Azure Cosmos DB الخاص بك باستخدام Azure Key Vault
ينطبق على: NoSQL MongoDB كاساندرا العفريت جدول
يتم تشفير البيانات المخزنة في حساب Azure Cosmos DB تلقائيا وسلسا باستخدام المفاتيح التي تديرها Microsoft (المفاتيح المدارة بواسطة الخدمة). اختيارياً، يمكنك اختيار إضافة طبقة ثانية من التشفير باستخدام المفاتيح التي تديرها ( مفاتيح يديرها العميل أو CMK).
يجب تخزين المفاتيح المدارة من قبل العملاء في Azure Key Vault وتوفير مفتاح لكل حساب Azure Cosmos DB يتم تمكينه باستخدام مفاتيح يديرها العميل. يستخدم هذا المفتاح لتشفير جميع البيانات المخزنة في هذا الحساب.
إشعار
إذا كنت ترغب في تمكين المفاتيح المدارة من قبل العملاء على حسابات Azure Cosmos DB الحالية، فيمكنك الرجوع إلى الارتباط هنا لمزيد من التفاصيل
تحذير
يتم حجز أسماء الحقول التالية في جداول Cassandra API في الحسابات باستخدام المفاتيح المدارة من قبل العميل:
id
ttl
_ts
_etag
_rid
_self
_attachments
_epk
عندما لا يتم تمكين المفاتيح التي يديرها العميل، يتم حجز أسماء الحقول التي تبدأ فقط __sys_
.
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. أنشئ حساباً مجاناً.
تسجيل موفر موارد Azure Cosmos DB
إذا لم يكن موفر موارد Microsoft.DocumentDB مسجلا بالفعل، فيجب عليك تسجيل هذا الموفر كخطوة أولى.
سجّل الدخول إلى مدخل Microsoft Azure ، وانتقل إلى اشتراك Azure الخاص بك، وحدد موفرو الموارد ضمن علامة التبويب الإعدادات :
ابحث عن موفر مورد Microsoft.DocumentDB . تحقق مما إذا كان قد تم وضع علامة على موفر المورد على أنه مسجل بالفعل. إذا لم يكن كذلك، فاختر موفر المورد وحدد تسجيل :
قم بتكوين مثيل Azure Key Vault
هام
يجب أن يكون مثيل Azure Key Vault الخاص بك يمكن الوصول إليه من خلال الوصول إلى الشبكة العامة أو السماح لخدمات Microsoft الموثوقة بتجاوز جدار الحماية الخاص به. لا يمكن استخدام مثيل يمكن الوصول إليه حصرياً من خلال نقاط النهاية الخاصة لاستضافة المفاتيح التي يديرها العميل.
يتطلب استخدام المفاتيح المُدارة بواسطة العميل مع Azure Cosmos DB تعيين خاصيتين في مثيل Azure Key Vault الذي تخطط لاستخدامه لاستضافة مفاتيح التشفير: حذف ناعم و حماية التطهير .
إذا قمت بإنشاء مثيل Azure Key Vault جديد، فقم بتمكين هذه الخصائص أثناء الإنشاء:
إذا كنت تستخدم مثيل Azure Key Vault الحالي، فيمكنك التحقق من تمكين هذه الخصائص من خلال الاطلاع على قسم الخصائص في مدخل Microsoft Azure. إذا لم يتم تمكين أي من هذه الخصائص، فراجع قسمي "تمكين الحذف الناعم" و"تمكين الحماية من التطهير" في إحدى المقالات التالية:
اختيار نموذج الأمان المفضل
بمجرد تمكين الحماية من الإزالة والحذف المبدئي، في علامة تبويب نهج الوصول، يمكنك اختيار نموذج الإذن المفضل لاستخدامه. يتم تعيين نهج الوصول بشكل افتراضي، ولكن يتم دعم التحكم في الوصول المستند إلى الدور في Azure أيضا.
يجب منح الأذونات اللازمة للسماح ل Cosmos DB باستخدام مفتاح التشفير الخاص بك. تختلف هذه الخطوة بناء على ما إذا كان Azure Key Vault يستخدم إما نهج الوصول أو التحكم في الوصول المستند إلى الدور.
إشعار
من المهم ملاحظة أن نموذج أمان واحدا فقط يمكن أن يكون نشطا في كل مرة، لذلك ليست هناك حاجة لزرع التحكم في الوصول المستند إلى الدور إذا تم تعيين Azure Key Vault لاستخدام نهج الوصول والعكس بالعكس)
إضافة نهج وصول
في هذا التباين، استخدم أساس Azure Cosmos DB لإنشاء نهج وصول بالأذونات المناسبة.
من مدخل Microsoft Azure، انتقل إلى مثيل Azure Key Vault الذي تخطط لاستخدامه لاستضافة مفاتيح التشفير. حدد سياسات الوصول من القائمة اليمنى:
حدد + إضافة سياسة الوصول .
ضمن القائمة المنسدلة أذونات المفاتيح ، حدد أذونات الحصول على و إلغاء التفاف المفتاح و مفتاح التفاف :
ضمن تحديد الأساسي ، حدد غير محدد .
ابحث عن أساسي قاعدة بيانات Azure Cosmos وحدده (لتسهيل العثور عليه، يمكنك أيضاً البحث حسب المعرف الأساسي:
00001111-aaaa-2222-bbbb-3333cccc4444
لأي منطقة Azure باستثناء مناطق Azure Government حيث يكون المعرف الرئيسي هو11112222-bbbb-3333-cccc-4444dddd5555
).تلميح
يؤدي هذا إلى تسجيل هوية الطرف الأول Azure Cosmos DB في نهج الوصول إلى Azure Key Vault. إذا لم يكن أساس Azure Cosmos DB في القائمة، فقد تحتاج إلى إعادة تسجيل موفر موارد Microsoft.DocumentDB.
اختر تحديد في الأسفل.
حدد إضافة لإضافة نهج الوصول الجديد.
حدد حفظ في نسخة Key Vault لحفظ كل التغييرات.
إضافة أدوار التحكم في الوصول المستندة إلى الدور
من مدخل Microsoft Azure، انتقل إلى مثيل Azure Key Vault الذي تخطط لاستخدامه لاستضافة مفاتيح التشفير. حدد Access control (IAM) من القائمة اليسرى وحدد Grant access to this resource.
ابحث في دور مسؤول Key Vault وقم بتعيينه لنفسك. يتم هذا التعيين أولا عن طريق البحث في اسم الدور من القائمة ثم النقر فوق علامة التبويب "الأعضاء". بمجرد الوصول إلى علامة التبويب، حدد الخيار "المستخدم أو المجموعة أو كيان الخدمة" من الراديو ثم ابحث عن حساب Azure الخاص بك. بمجرد تحديد الحساب، يمكن تعيين الدور.
ثم، يجب تعيين الأذونات الضرورية إلى كيان Cosmos DB. لذلك، مثل تعيين الدور الأخير، انتقل إلى صفحة التعيين ولكن هذه المرة ابحث عن دور "مستخدم تشفير خدمة تشفير Key Vault" وفي علامة تبويب الأعضاء ابحث عن أساس Cosmos DB. للعثور على الأساسي، ابحث عن أساس Azure Cosmos DB وحدده.
هام
في منطقة Azure Government، معرف التطبيق هو
11112222-bbbb-3333-cccc-4444dddd5555
.حدد Review + assign وسيتم تعيين الدور إلى Cosmos DB.
التحقق من تعيين الأدوار بشكل صحيح
بعد ذلك، استخدم صفحة التحكم في الوصول للتأكد من تكوين جميع الأدوار بشكل صحيح.
بمجرد تعيين الأدوار، حدد "عرض الوصول إلى هذا المورد" في صفحة Access Control IAM للتحقق من تعيين كل شيء بشكل صحيح.
في الصفحة، قم بتعيين النطاق إلى "هذا المورد" وتحقق من أن لديك دور مسؤول Key Vault، وأن كيان Cosmos DB لديه دور مستخدم تشفير تشفير Key Vault.
قم بإنشاء مفتاح في Azure Key Vault
هنا، قم بإنشاء مفتاح جديد باستخدام Azure Key Vault واسترداد المعرف الفريد.
من مدخل Microsoft Azure، انتقل إلى مثيل Azure Key Vault الذي تخطط لاستخدامه لاستضافة مفاتيح التشفير. ثم حدد مفاتيح من القائمة اليمنى:
حدد إنشاء / استيراد ، وقدم اسماً للمفتاح الجديد، وحدد حجم مفتاح RSA. يوصى باستخدام 3072 كحد أدنى للحصول على أفضل حماية. ثم حدد Create:
تلميح
بدلا من ذلك، يمكنك استخدام Azure CLI لإنشاء مفتاح باستخدام:
az keyvault key create \ --vault-name <name-of-key-vault> \ --name <name-of-key>
لمزيد من المعلومات حول إدارة مخزن مفاتيح باستخدام Azure CLI، راجع إدارة Azure Key Vault باستخدام Azure CLI.
بعد إنشاء المفتاح، حدد المفتاح الذي تم إنشاؤه حديثاً ثم الإصدار الحالي.
انسخ معرّف المفتاح الخاص بالمفتاح، باستثناء الجزء الذي يلي آخر شرطة أمامية مائلة:
إنشاء حساب Azure Cosmos DB جديد
إنشاء حساب Azure Cosmos DB جديد باستخدام مدخل Azure أو Azure CLI.
عند إنشاء حساب Azure Cosmos DB جديد من مدخل Microsoft Azure، اختر مفتاح مدار بواسطة العميل في خطوة التشفير . في حقل Key URI ، الصق URI / معرف المفتاح لمفتاح Azure Key Vault الذي نسخته من الخطوة السابقة:
هام
اعتمادا على تكوين الشبكة، قد تحتاج إلى السماح بالوصول إلى Azure Cosmos DB من خدمات Azure الأخرى.
استخدام هوية مدارة في نهج الوصول إلى Azure Key Vault
يضمن نهج الوصول هذا إمكانية الوصول إلى مفاتيح التشفير الخاصة بك عن طريق حساب Azure Cosmos DB الخاص بك. يتم تنفيذ نهج الوصول عن طريق منح حق الوصول إلى هوية Microsoft Entra معينة. يتم دعم نوعين من الهويات:
- يمكن استخدام هوية الطرف الأول لـ Azure Cosmos DB لمنح الوصول إلى خدمة Azure Cosmos DB.
- يمكن استخدام الهوية المُدارة لحساب Azure Cosmos DB لمنح حق الوصول إلى حسابك على وجه التحديد.
استخدام المفاتيح التي يديرها العميل مع النسخ الاحتياطي المستمر
يمكنك إنشاء حساب نسخ احتياطي مستمر باستخدام Azure CLI أو قالب Azure Resource Manager.
حاليا، دعم الهوية المدارة المعينة من قبل المستخدم فقط لإنشاء حسابات النسخ الاحتياطي المستمر.
بمجرد إنشاء الحساب، يمكنك تحديث الهوية إلى الهوية المدارة المعينة من قبل النظام.
بدلا من ذلك، يمكن للمستخدم أيضا إنشاء هوية نظام مع وضع النسخ الاحتياطي الدوري أولا، ثم ترحيل الحساب إلى وضع النسخ الاحتياطي المستمر باستخدام هذه الإرشادات ترحيل حساب Azure Cosmos DB من وضع النسخ الاحتياطي الدوري إلى وضع النسخ الاحتياطي المستمر
استعادة حساب مستمر تم تكوينه بهوية مدارة
مطلوب هوية معينة من قبل المستخدم في طلب الاستعادة لأنه لا يمكن ترحيل الهوية المدارة لحساب المصدر (الهويات المعينة من قبل المستخدم والهويات المعينة من قبل النظام) تلقائيا إلى حساب قاعدة البيانات الهدف.
مفاتيح يديرها العميل وتشفير مزدوج
ينتهي الأمر بالبيانات التي تخزنها في حساب Azure Cosmos DB الخاص بك عند استخدام مفاتيح يديرها العميل مرتين:
- مرة واحدة من خلال التشفير الافتراضي الذي يتم إجراؤه باستخدام مفاتيح مدارة من Microsoft.
- مرة واحدة من خلال التشفير الإضافي الذي يتم إجراؤه باستخدام المفاتيح التي يديرها العميل.
ينطبق التشفير المزدوج فقط على تخزين عمليات Azure Cosmos DB الرئيسي. تتضمن بعض الميزات النسخ المتماثل الداخلي لبياناتك إلى مستوى ثانٍ من التخزين حيث لا يتم توفير تشفير مزدوج، حتى مع المفاتيح التي يديرها العميل. وتشمل هذه الميزات:
دوران المفتاح
يمكن تدوير المفتاح المدار من قبل العميل المستخدم من قبل حساب Azure Cosmos DB بطريقتين.
أنشئ إصداراً جديداً من المفتاح المستخدم حالياً من Azure Key Vault:
قم بتبديل المفتاح المستخدم حالياً بمفتاح مختلف عن طريق تحديث URI الرئيسي في حسابك. من مدخل Microsoft Azure، انتقل إلى حساب Azure Cosmos DB وحدد تشفير البيانات من القائمة اليسرى:
بعد ذلك، استبدل Key URI بالمفتاح الجديد الذي تريد استخدامه وحدد حفظ :
إليك كيفية تحقيق نفس النتيجة في PowerShell:
# Variable for resource group name $RESOURCE_GROUP_NAME = "<resource-group-name>" # Variable for account name $ACCOUNT_NAME = "<globally-unique-account-name>" # Variable for new key URI in the key vault $NEW_KEY_VAULT_KEY_URI="https://<key-vault-name>.vault.azure.net/keys/<new-key-name>" $parameters = @{ ResourceGroupName = $RESOURCE_GROUP_NAME Name = $ACCOUNT_NAME ResourceType = "Microsoft.DocumentDb/databaseAccounts" } $ACCOUNT = Get-AzResource @parameters $ACCOUNT.Properties.keyVaultKeyUri = $NEW_KEY_VAULT_KEY_URI $ACCOUNT | Set-AzResource -Force
يمكن تعطيل إصدار المفتاح أو المفتاح السابق بعد أن لا تعرض سجلات تدقيق Azure Key Vault نشاطاً من Azure Cosmos DB على هذا المفتاح أو إصدار المفتاح بعد الآن. يجب عدم إجراء المزيد من الأنشطة على المفتاح السابق أو الإصدار الرئيسي بعد 24 ساعة من تدوير المفتاح.
يتم دعم التدوير التلقائي للمفتاح في Azure Key Vault طالما لم يتم تعطيل المفتاح السابق أو حذفه. تحتاج الأنظمة الداخلية إلى بعض الوقت للحاق بالإصدار الجديد من المفتاح بعد التحقق من أن الحساب ليس في حالة إبطال أو في مرحلة انتقالية لتمكين المفاتيح التي يديرها العميل.
معالجة الخطأ
في حالة وجود أي أخطاء في المفاتيح المُدارة بواسطة العميل في Azure Cosmos DB، تُرجع Azure Cosmos DB تفاصيل الخطأ مع تعليمة برمجية لحالة HTTP الفرعية في الاستجابة. يمكنك استخدام رمز تعليمة برمجية لحالة HTTP الفرعية وتتبع الأخطاء لتصحيح السبب الجذري للمشكلة. راجع مقالة HTTP Status Codes لـ Azure Cosmos DB للحصول على قائمة بالتعليمة البرمجية لحالة HTTP الفرعية المدعومة.
الأسئلة الشائعة
يتم تضمين هنا الأسئلة المتداولة حول إعداد المفاتيح المدارة من قبل العملاء في Azure Cosmos DB.
هل هناك رسوم إضافية لتمكين المفاتيح التي يديرها العميل؟
لا، لا توجد رسوم لتمكين هذه الميزة.
كيف تؤثر المفاتيح التي يديرها العميل على تخطيط السعة؟
ترى Request Units التي تستهلكها عمليات قاعدة البيانات لديك زيادة ما لتعكس المعالجة الإضافية المطلوبة لإجراء تشفير وفك تشفير بياناتك عند استخدام مفاتيح يديرها العميل. قد يؤدي استهلاك عميل هام لمبيعات RU الإضافية إلى استخدام أعلى قليلاً من بند السعة المتوفرة لديك. استخدم هذا الجدول للحصول على إرشادات:
نوع العملية | زيادة وحدة الطلب |
---|---|
القراءات النقطية (إحضار العناصر بواسطة المعرف الخاص بهم) | + 5٪ لكل عملية |
أي عملية كتابة | + 6٪ لكل عملية | تقريبا + 0.06 وحدة طلب لكل خاصية مفهرسة |
استعلامات أو قراءة تغيير الخلاصة أو موجز النزاع | + 15% لكل عملية |
ما هي البيانات التي يتم تشفيرها باستخدام المفاتيح التي يديرها العميل؟
يتم تشفير جميع البيانات المخزنة في حساب Azure Cosmos DB باستخدام المفاتيح التي يديرها العميل، باستثناء بيانات التعريف التالية:
أسماء حسابات Azure Cosmos DB وقواعد البيانات والحاويات
أسماء إجراءاتك المخزنة
مسارات الخصائص المُعلنة في سياسات الفهرسة
قيم مفاتيح أقسام الحاويات الخاصة بك
هل المفاتيح التي يديرها العميل مدعومة لحسابات Azure Cosmos DB الحالية؟
نعم. يمكنك الرجوع إلى كيفية إعداد المفاتيح المدارة من قبل العملاء لحسابات Azure Cosmos DB الحالية
هل من الممكن استخدام المفاتيح التي يديرها العميل مع المخزن التحليلي Azure Cosmos DB؟
نعم، يدعم Azure Synapse Link فقط تكوين المفاتيح المُدارة بواسطة العميل باستخدام الهوية المُدارة لحساب Azure Cosmos DB. يجب استخدام الهوية المدارة لحساب Azure Cosmos DB في نهج الوصول إلى Azure Key Vault قبل تمكين Azure Synapse Link على حسابك. للحصول على دليل إرشادي بشأن كيفية تمكين الهوية المُدارة واستخدامها في نهج وصول، راجع الوصول إلى Azure Key Vault من Azure Cosmos DB باستخدام هوية مُدارة.
هل هناك خطة لدعم دقة التفاصيل أكثر من المفاتيح على مستوى الحساب؟
ليس حالياً، ولكن يتم النظر في مفاتيح مستوى الحاوية.
كيف يمكنني معرفة ما إذا كانت المفاتيح التي يديرها العميل ممكنة على حساب Azure Cosmos DB الخاص بي؟
من مدخل Microsoft Azure، انتقل إلى حساب Azure Cosmos DB الخاص بك وراقب إدخال تشفير البيانات في القائمة اليسرى؛ إذا كان هذا الإدخال موجودا، يتم تمكين المفاتيح المدارة من قبل العميل على حسابك:
يمكنك أيضا إحضار تفاصيل حساب Azure Cosmos DB الخاص بك برمجيا والبحث عن وجود الخاصية keyVaultKeyUri
.
كيف تؤثر المفاتيح المدارة من قِبل العملاء في النُسخ الاحتياطية الدورية؟
تأخذ Azure Cosmos DB نُسخاً احتياطية منتظمة وتلقائية من البيانات المخزنة في حسابك. هذه العملية تدعم البيانات المشفرة.
الشروط التالية ضرورية لاستعادة نسخة احتياطية دورية بنجاح:
- مفتاح التشفير الذي استخدمته في وقت النسخ الاحتياطي مطلوب ويجب أن يكون متاحاً في Azure Key Vault. يتطلب هذا الشرط عدم إجراء أي إبطال وأن يكون إصدار المفتاح الذي تم استخدامه في وقت النسخ الاحتياطي لا يزال ممكّناً.
- إذا استخدمت هوية مُدارة معينة من قبل النظام في نهج الوصول، فامنح حق الوصول إلى هوية الطرف الأول Azure Cosmos DB قبل استعادة بياناتك. يوجد هذا المطلب لأن الهوية المُدارة التي يخصصها النظام خاصة بحساب ما ولا يمكن إعادة استخدامها في الحساب الهدف. بمجرد استعادة البيانات بالكامل إلى الحساب الهدف، يمكنك إزالة هوية الطرف الأول من نهج الوصول إلى Key Vault وتعيين تكوين الهوية المطلوبة.
كيف تؤثر المفاتيح المدارة من قِبل العملاء في النُسخ الاحتياطية الدورية؟
يمنحك Azure Cosmos DB خيار تكوين النسخ الاحتياطية المستمرة على حسابك. باستخدام النسخ الاحتياطي المستمر ، يمكنك استعادة بياناتك إلى أي نقطة زمنية خلال ال 30 يوما الماضية. لاستخدام النسخ الاحتياطية المستمرة على حساب حيث يتم تمكين المفاتيح المدارة من قبل العميل، يجب استخدام هوية مدارة معينة من قبل النظام أو معينة من قبل المستخدم في نهج الوصول إلى Key Vault. هويات الطرف الأول في Azure Cosmos DB غير مدعومة حاليا على الحسابات التي تستخدم النسخ الاحتياطية المستمرة.
خطوات المتطلبات الأساسية للمفاتيح المدارة للعميل تمكن الحسابات لتحديث الهوية المعينة من قبل المستخدم.
- أضف هوية معينة من قبل المستخدم إلى حساب Cosmos DB، وامنح أذونات في نهج الوصول إلى مخزن المفاتيح.
- تعيين المستخدم المعين كهوية افتراضية عبر Azure CLI أو ARM.
az cosmosdb update --resource-group MyResourceGroup --name MyAccountName --default-identity UserAssignedIdentity=/subscriptions/MySubscriptionId/resourcegroups/MyResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyUserAssignedIdentity
الشروط التالية ضرورية لاستعادة نسخة احتياطية بنجاح:
- مفتاح التشفير الذي استخدمته في وقت النسخ الاحتياطي مطلوب ويجب أن يكون متاحاً في Azure Key Vault. يعني هذا المطلب أنه لم يتم إجراء أي إبطال وأن إصدار المفتاح الذي تم استخدامه في وقت النسخ الاحتياطي لا يزال ممكّناً.
- يجب التأكد من أن الهوية المدارة المعينة من قبل المستخدم والتي تم استخدامها في الأصل على الحساب المصدر لا تزال معلنة في سياسة الوصول إلى Key Vault.
هام
إذا قمت بإلغاء مفتاح التشفير قبل حذف حسابك، فقد تفوت النسخة الاحتياطية لحسابك البيانات المكتوبة حتى ساعة واحدة قبل إجراء الإلغاء.
كيف أبطل مفتاح التشفير؟
يتم إبطال المفتاح عن طريق تعطيل أحدث إصدار من المفتاح:
بدلاً من ذلك، لإلغاء جميع المفاتيح من مثيل Azure Key Vault، يمكنك حذف نهج الوصول الممنوح لمبدأ Azure Cosmos DB:
ما العمليات المتاحة بعد إبطال المفتاح الذي يديره العميل؟
العملية الوحيدة الممكنة عندما يتم إبطال مفتاح التشفير هي حذف الحساب.
تعيين هوية مدارة جديدة إلى حساب قاعدة البيانات المستعادة لمتابعة الوصول إلى حساب قاعدة البيانات أو استرداده
ترتبط الهوية المعينة من قبل المستخدم بحساب Cosmos DB محدد، كلما قمنا بتعيين هوية معينة من قبل المستخدم إلى حساب، يقوم ARM بإعادة توجيه الطلب إلى هويات الخدمة المدارة لإجراء هذا الاتصال. حاليا نقوم بنقل معلومات هوية المستخدم من حساب قاعدة البيانات المصدر إلى حساب قاعدة البيانات الهدف أثناء استعادة (لكل من استعادة النسخ الاحتياطي المستمر والدوري) من CMK + الهوية المعينة من قبل المستخدم،
نظرا لأن بيانات تعريف الهوية مرتبطة بحساب قاعدة البيانات المصدر ولا يقوم سير عمل الاستعادة بإعادة نطاق الهوية إلى حساب قاعدة البيانات الهدف. سيؤدي هذا إلى أن تكون حسابات قاعدة البيانات المستعادة في حالة سيئة، ويصبح الوصول إليها غير قابل للوصول بعد حذف الحساب المصدر وانتهاء مدة تجديد الهوية.
خطوات لتعيين هوية مدارة جديدة:
- إنشاء هوية مدارة جديدة يعينها المستخدم.
- امنح مفتاح KeyVault حق الوصول إلى هذه الهوية.
- قم بتعيين هذه الهوية الجديدة إلى حساب قاعدة البيانات المستعادة.
الخطوات التالية
- تعرف على المزيد حول تشفير البيانات في Azure Cosmos DB .