🚀 جرب Zilliz Cloud، الـ Milvus المدارة بالكامل، مجاناً — تجربة أداء أسرع بـ 10 أضعاف! جرب الآن>>

milvus-logo
LFAI
  • Home
  • Blog
  • كيف تضمن قاعدة بيانات ميلفوس فيكتور أمن البيانات؟

كيف تضمن قاعدة بيانات ميلفوس فيكتور أمن البيانات؟

  • Engineering
September 05, 2022
Angela Ni

Cover image صورة الغلاف

مراعاةً لأمان بياناتك بشكل كامل، أصبحت مصادقة المستخدم واتصال أمان طبقة النقل (TLS) متاحة الآن رسميًا في Milvus 2.1. بدون مصادقة المستخدم، يمكن لأي شخص الوصول إلى جميع البيانات في قاعدة بيانات المتجهات الخاصة بك باستخدام SDK. ومع ذلك، بدءًا من الإصدار Milvus 2.1، لا يمكن الوصول إلى قاعدة بيانات Milvus vector إلا لمن لديهم اسم مستخدم وكلمة مرور صالحين. بالإضافة إلى ذلك، في Milvus 2.1، يتم حماية أمن البيانات في Milvus 2.1 بشكل أكبر بواسطة TLS، مما يضمن اتصالات آمنة في شبكة الكمبيوتر.

تهدف هذه المقالة إلى تحليل كيفية ضمان قاعدة بيانات المتجهات في ملفوس لأمن البيانات من خلال مصادقة المستخدم واتصال TLS وشرح كيفية الاستفادة من هاتين الميزتين كمستخدم يريد ضمان أمن البيانات عند استخدام قاعدة بيانات المتجهات.

انتقل إلى:

ما هو أمن قاعدة البيانات ولماذا هو مهم؟

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

كيف تضمن قاعدة بيانات Milvus vector أمن البيانات؟

في الإصدار الحالي من الإصدار 2.1، تحاول قاعدة بيانات Milvus vector ضمان أمن قاعدة البيانات عن طريق المصادقة والتشفير. وبشكل أكثر تحديدًا، على مستوى الوصول، تدعم Milvus مصادقة المستخدم الأساسية للتحكم في من يمكنه الوصول إلى قاعدة البيانات. وفي الوقت نفسه، على مستوى قاعدة البيانات، تعتمد Milvus بروتوكول تشفير طبقة النقل (TLS) لحماية اتصال البيانات.

مصادقة المستخدم

تدعم ميزة مصادقة المستخدم الأساسية في Milvus الوصول إلى قاعدة بيانات المتجهات باستخدام اسم مستخدم وكلمة مرور من أجل أمن البيانات. وهذا يعني أنه لا يمكن للعملاء الوصول إلى مثيل Milvus إلا عند تقديم اسم مستخدم وكلمة مرور مصادق عليهما.

سير عمل المصادقة في قاعدة بيانات متجهات ميلفوس

يتم التعامل مع جميع طلبات gRPC بواسطة وكيل Milvus، وبالتالي تتم المصادقة بواسطة الوكيل. يكون سير عمل تسجيل الدخول باستخدام بيانات الاعتماد للاتصال بمثيل Milvus على النحو التالي.

  1. إنشاء بيانات اعتماد لكل مثيل Milvus ويتم تخزين كلمات المرور المشفرة في etcd. تستخدم Milvus bcrypt للتشفير حيث تقوم بتنفيذ خوارزمية التجزئة التكيفية الخاصة بـ Provos و Mazières.
  2. من جانب العميل، ترسل SDK نصًا مشفرًا عند الاتصال بخدمة Milvus. يتم إرفاق نص التشفير الأساسي 64 (:) بالبيانات الوصفية مع المفتاح authorization.
  3. يعترض وكيل Milvus الطلب ويتحقق من بيانات الاعتماد.
  4. يتم تخزين بيانات الاعتماد مؤقتًا محليًا في الوكيل.

authetication_workflow سير_عمل_التوثيق التلقائي

عندما يتم تحديث بيانات الاعتماد، يكون سير عمل النظام في ميلفوس كما يلي

  1. التنسيق الجذر هو المسؤول عن بيانات الاعتماد عند استدعاء واجهات برمجة التطبيقات للإدراج والاستعلام والحذف.
  2. عندما تقوم بتحديث بيانات الاعتماد لأنك نسيت كلمة المرور على سبيل المثال، يتم الاحتفاظ بكلمة المرور الجديدة في إلخد. ثم يتم إبطال جميع بيانات الاعتماد القديمة في ذاكرة التخزين المؤقت المحلية للوكيل.
  3. يبحث معترض المصادقة عن السجلات من ذاكرة التخزين المؤقت المحلية أولاً. إذا كانت بيانات الاعتماد الموجودة في ذاكرة التخزين المؤقت غير صحيحة، فسيتم تشغيل استدعاء RPC لجلب أحدث سجل من جذر التنسيق. ويتم تحديث بيانات الاعتماد في ذاكرة التخزين المؤقت المحلية وفقًا لذلك.

credential_update_workflow سير عمل_تحديث_بيانات_الاعتماد

كيفية إدارة مصادقة المستخدم في قاعدة بيانات Milvus vector

لتمكين المصادقة، تحتاج أولاً إلى تعيين common.security.authorizationEnabled إلى true عند تكوين ملف Milvus في ملف milvus.yaml.

بمجرد التمكين، سيتم إنشاء مستخدم جذر لمثيل ميلفوس. يمكن لمستخدم الجذر هذا استخدام كلمة المرور الأولية Milvus للاتصال بقاعدة بيانات Milvus vector.

from pymilvus import connections
connections.connect(
    alias='default',
    host='localhost',
    port='19530',
    user='root_user',
    password='Milvus',
)

نوصي بشدة بتغيير كلمة مرور المستخدم الجذر عند بدء تشغيل ميلفوس للمرة الأولى.

بعد ذلك يمكن للمستخدم الجذر إنشاء المزيد من المستخدمين الجدد للوصول المصادق عليه عن طريق تشغيل الأمر التالي لإنشاء مستخدمين جدد.

from pymilvus import utility
utility.create_credential('user', 'password', using='default') 

هناك أمران يجب تذكرهما عند إنشاء مستخدمين جدد:

  1. بالنسبة لاسم المستخدم الجديد، لا يمكن أن يتجاوز طوله 32 حرفًا ويجب أن يبدأ بحرف. يُسمح فقط بالشرطات السفلية أو الحروف أو الأرقام في اسم المستخدم. على سبيل المثال اسم المستخدم "2abc!" غير مقبول.

  2. بالنسبة لكلمة المرور، يجب أن يكون طولها 6-256 حرفًا.

بمجرد إعداد بيانات الاعتماد الجديدة، يمكن للمستخدم الجديد الاتصال بمثيل ميلفوس باستخدام اسم المستخدم وكلمة المرور.

from pymilvus import connections
connections.connect(
    alias='default',
    host='localhost',
    port='19530',
    user='user',
    password='password',
)

مثل جميع عمليات المصادقة، لا داعي للقلق إذا نسيت كلمة المرور. يمكن إعادة تعيين كلمة المرور لمستخدم موجود باستخدام الأمر التالي.

from pymilvus import utility
utility.reset_password('user', 'new_password', using='default')

اقرأ وثائق Milvus لمعرفة المزيد عن مصادقة المستخدم.

اتصال TLS

أمان طبقة النقل (TLS) هو نوع من بروتوكول المصادقة لتوفير أمان الاتصالات في شبكة الكمبيوتر. يستخدم TLS شهادات لتوفير خدمات المصادقة بين طرفين أو أكثر من أطراف الاتصال.

كيفية تمكين TLS في قاعدة بيانات Milvus vector

لتمكين TLS في Milvus، تحتاج أولاً إلى تشغيل الأمر التالي لإعداد ملفين لإنشاء الشهادة: ملف تكوين OpenSSL افتراضي باسم openssl.cnf وملف باسم gen.sh يستخدم لإنشاء الشهادات ذات الصلة.

mkdir cert && cd cert
touch openssl.cnf gen.sh

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

عندما يصبح الملفان جاهزين، يمكنك تشغيل الملف gen.sh لإنشاء تسعة ملفات شهادات. وبالمثل، يمكنك أيضًا تعديل التكوينات في ملفات الشهادات التسعة لتناسب حاجتك.

chmod +x gen.sh
./gen.sh

هناك خطوة أخيرة قبل أن تتمكن من الاتصال بخدمة Milvus باستخدام TLS. يجب عليك تعيين tlsEnabled إلى true وتكوين مسارات الملفات server.pem و server.key و ca.pem للخادم في config/milvus.yaml. الرمز أدناه هو مثال على ذلك.

tls:
  serverPemPath: configs/cert/server.pem
  serverKeyPath: configs/cert/server.key
  caPemPath: configs/cert/ca.pem

common:
  security:
    tlsEnabled: true

بعد ذلك تكون جاهزًا تمامًا ويمكنك الاتصال بخدمة Milvus باستخدام TLS طالما أنك تحدد مسارات الملفات client.pem و client.key و ca.pem للعميل عند استخدام مجموعة أدوات تطوير البرمجيات الخاصة باتصال Milvus. الرمز أدناه هو أيضًا مثال على ذلك.

from pymilvus import connections

_HOST = '127.0.0.1'
_PORT = '19530'

print(f"\nCreate connection...")
connections.connect(host=_HOST, port=_PORT, secure=True, client_pem_path="cert/client.pem",
                        client_key_path="cert/client.key",
                        ca_pem_path="cert/ca.pem", server_name="localhost")
print(f"\nList connections:")
print(connections.list_connections())

ما التالي

مع الإصدار الرسمي لـ Milvus 2.1، أعددنا سلسلة من المدونات التي تقدم الميزات الجديدة. اقرأ المزيد في سلسلة المدونات هذه:

Like the article? Spread the word

استمر في القراءة