مشاركة عبر


مسرد مصطلحات الأمان ل Azure Cosmos DB للجدول

رسم تخطيطي للموقع الحالي ('المفاهيم') في تسلسل دليل التوزيع.

رسم تخطيطي لتسلسل دليل النشر بما في ذلك هذه المواقع، بالترتيب: نظرة عامة ومفاهيم وإعداد والتحكم في الوصول المستند إلى الدور والمرجع. يتم تمييز موقع "المفاهيم" حاليا.

تتضمن هذه المقالة مسرد المصطلحات الشائعة المستخدمة في دليل الأمان هذا ل Azure Cosmos DB للجدول.

التحكم في الوصول استناداً إلى الدور

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

لمزيد من المعلومات، راجع نظرة عامة على التحكم في الوصول المستند إلى الدور.

الهوية/الأساسي

تشير الهويات إلى كائنات داخل Microsoft Entra تمثل بعض الكيانات التي قد تحتاج إلى مستوى من الوصول إلى النظام الخاص بك. في سياق Azure وMicrosoft Entra، يمكن أن تشير الهويات إلى أحد الأنواع التالية من الكيانات:

‏‏الوصف
هويات حمل العمل. تمثل هوية حمل العمل حمل عمل برنامج يحتاج إلى الوصول إلى خدمات أو موارد أخرى
الهويات البشرية تمثل الهوية البشرية مستخدما يمكن أن يكون إما أصليا للمستأجر الخاص بك أو إضافته كضيف
الهويات المُدارة الهويات المدارة هي موارد مميزة في Azure تمثل هوية خدمة Azure
كيانات الخدمة كيان الخدمة هو حساب خدمة يمكن استخدامه في عدد مرن من سيناريوهات المصادقة
هويات الجهاز هوية الجهاز هي كائن في Microsoft Entra تم تعيينه إلى جهاز
المجموعات المجموعات هي كائنات تستخدم لإدارة الوصول إلى هوية واحدة أو أكثر كعملية واحدة

لمزيد من المعلومات، راجع أساسيات الهوية.

الدور

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

يحتوي Azure على مجموعة كبيرة من الأدوار المضمنة التي يمكنك استخدامها لمنح حق الوصول إلى موارد مختلفة. فكِّر في هذا المثال:

القيمة‬
الدور CosmosBackupOperator
التعريف Microsoft.DocumentDB/databaseAccounts/backup/action & Microsoft.DocumentDB/databaseAccounts/restore/action
النطاق مجموعة موارد

في هذا المثال، يتم تعيين CosmosBackupOperator دور لمجموعة موارد معينة. يمنحك هذا التعيين حق الوصول إلى تنفيذ backup أو restore الإجراءات على أي حساب Azure Cosmos DB ضمن مجموعة الموارد هذه.

هام

تحتوي بعض خدمات Azure، مثل Azure Cosmos DB، على تنفيذ التحكم في الوصول المستند إلى الدور الأصلي الخاص بها الذي يستخدم خصائص Azure Resource Manager المختلفة وأوامر Azure CLI وAzure PowerShell cmdLets. لن تعمل الأوامر التي تستخدمها عادة لإدارة التحكم في الوصول المستند إلى الدور مع الوصول إلى مستوى بيانات Azure Cosmos DB. قد تعمل بعض الأوامر الخاصة بالتحكم في الوصول المستند إلى الدور في Azure مع الوصول إلى وحدة التحكم في Azure Cosmos DB.

لمزيد من المعلومات، راجع أدوار Azure المضمنة

تعريف قاعدة

تعريف الدور هو كائن JSON يحتوي على قائمة إجراءات مستوى التحكم ولوحة البيانات المسموح بها وغير المسموح بها. خذ بعين الاعتبار هذا المثال المقتطع من CosmosRestoreOperator الدور المضمن:

{
  "roleName": "CosmosRestoreOperator",
  "type": "Microsoft.Authorization/roleDefinitions",
  ...
  "permissions": [
    {
      "actions": [
        "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action",
        "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read",
        "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read"
      ],
      "notActions": [],
      "dataActions": [],
      "notDataActions": []
    }
  ],
  ...
}

في هذا التعريف، يمكن للهوية المعينة لهذا الدور تنفيذ إجراء restore . بمجرد اكتمال عملية الاستعادة، يمكن للهوية بعد ذلك قراءة موارد مختلفة للتحقق من نجاح الاستعادة. يمكننا تحديد أنه يمكنه قراءة هذه الموارد بسبب * عامل التشغيل (حرف البدل) ل read.

لمزيد من المعلومات، راجع مفاهيم تعريف الدور.

تعيين الدور

يمنح تعيين الدور الوصول إلى هوية إلى مورد Azure معين. تتكون تعيينات الأدوار من المكونات التالية:

‏‏الوصف
رئيسي ما الهوية التي تم تعيينها لهذا الدور
الدور الدور الذي تم تعيينه للهوية
النطاق مورد أو مجموعة Azure الهدف للتعيين
الاسم/الوصف بيانات التعريف التي تسهل إدارة التعيينات على نطاق واسع

تلميح

في التحكم في الوصول المستند إلى الدور، قد ترى مصطلحي الهوية والكيان المستخدمين بالتبادل.

لمزيد من المعلومات، راجع مفاهيم تعيين الدور.

الإجراءات

تحدد الإجراءات الأذونات المحددة التي يمتلكها الدور لمورد مستهدف. الإجراءات هي سلاسل تتضمن عادة نوع المورد واسما وصفيا يفصل الأذونات التي يمنحها الإجراء. فيما يلي بعض الأمثلة الشائعة:

‏‏الوصف المستوى
Microsoft.DocumentDB/databaseAccounts/listKeys/action قراءة مفاتيح الحساب فقط وحدة التحكم
Microsoft.DocumentDB/databaseAccounts/backup/action إجراء النسخ الاحتياطية وحدة التحكم
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/replace استبدال عنصر موجود بالكامل خطة البيانات
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery تنفيذ استعلام NoSQL خطة البيانات

يمكن أن تحتوي الإجراءات أيضا على * أحرف (حرف بدل) حتى لا تضطر إلى تفصيل كل تفويض فرعي محدد يدويا. فيما يلي بعض الأمثلة على الإجراءات باستخدام أحرف البدل:

‏‏الوصف
Microsoft.DocumentDb/databaseAccounts/* إنشاء حسابات Azure Cosmos DB وإدارتها
Microsoft.DocumentDB/*/read قراءة أي حاوية أو قاعدة بيانات

يتم فصل الإجراءات إلى وحدة تحكم ولوحة بيانات. يجب تحديد الإجراءات بشكل منفصل على موارد وحدة التحكم والإجراءات التي يمكن أن تؤثر على البيانات. في تعريف الدور، تستخدم إجراءات وحدة التحكم الخاصية actions وإجراءات مستوى البيانات داخل الخاصيةdataActions. يمكنك أيضا تحديد الإجراءات التي لا يمكن للهوية تنفيذها باستخدام الخاصيتين notActions و notDataActions .

إشعار

يعد فصل الإجراءات في مستوى التحكم والبيانات مقياسا أمنيا لمنع إجراءات أحرف البدل من تعريفات الأدوار القديمة من الوصول غير المقيد وغير المقصود إلى البيانات.

لمزيد من المعلومات، راجع إجراءات التحكم والبيانات.

أقل امتياز

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

  • يمكن للتطبيق إتلاف البيانات بشكل غير متكرر
  • يمكن للمستخدم غير المصرح به الوصول إلى بيانات اعتماد التطبيق وتعديل البيانات

يضمن اتباع ممارسة أقل امتياز أن أي خروقات محتملة للبيانات محدودة في النطاق. تعمل هذه الممارسة على زيادة الأمان التشغيلي مع السماح للمستخدمين بالبقاء فعالين.

لمزيد من المعلومات، راجع الأدوار الأقل امتيازا الموصى بها حسب المهمة.

وحدة التحكم

يشير الوصول إلى وحدة التحكم إلى القدرة على إدارة الموارد لخدمة Azure دون إدارة البيانات. على سبيل المثال، يمكن أن يتضمن الوصول إلى وحدة التحكم في Azure Cosmos DB القدرة على:

  • قراءة جميع بيانات تعريف الحساب والموارد
  • قراءة مفاتيح الحساب سلسلة الاتصال وإعادة إنشائها
  • إجراء النسخ الاحتياطية للحساب واستعادته
  • بدء مهام نقل البيانات وتعقبها
  • إدارة قواعد البيانات والحاويات
  • تعديل خصائص الحساب

هام

في Azure Cosmos DB، تحتاج إلى سرعات مستوى التحكم لإدارة تعريفات وتعيينات التحكم في الوصول المستندة إلى دور مستوى البيانات الأصلية. نظرا لأن آلية التحكم في الوصول المستندة إلى دور مستوى البيانات في Azure Cosmos DB أصلية، فستحتاج إلى الوصول إلى وحدة التحكم لإنشاء تعريفات وتعيينات وتخزينها كموارد داخل حساب Azure Cosmos DB.

خطة البيانات

يشير الوصول إلى مستوى البيانات إلى القدرة على قراءة البيانات وكتابتها داخل خدمة Azure دون القدرة على إدارة الموارد في الحساب. بالنسبة إلى exmaple، يمكن أن يتضمن الوصول إلى مستوى بيانات Azure Cosmos DB القدرة على:

  • قراءة بعض بيانات تعريف الحساب والموارد
  • إنشاء العناصر وقراءتها وتحديثها وتصحيحها وحذفها
  • تنفيذ استعلامات NoSQL
  • القراءة من موجز تغيير الحاوية
  • تنفيذ الإجراءات المخزنة
  • إدارة التعارضات في موجز التعارض

مصادقة محمولة

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

تتوفر مكتبة عميل Azure Identity بلغات برمجة متعددة كجزء من Azure SDK. باستخدام هذه المكتبة، يمكنك إنشاء كائن DefaultAzureCredential يمر بذكاء عبر خيارات متعددة، من أجل العثور على بيانات الاعتماد الصحيحة استنادا إلى بيئتك. تتضمن خيارات المصادقة هذه (بالترتيب):

  1. سر العميل أو الشهادة المخزنة كمتغير بيئة
  2. هوية حمل عمل Microsoft Entra
  3. الهوية المدارة المعينة من قبل المستخدم أو المعينة من قبل النظام
  4. بيانات اعتماد Azure المشتقة من إعدادات Visual Studio
  5. بيانات الاعتماد المستخدمة في ملحق حساب Azure الخاص ب Visual Studio Code
  6. بيانات الاعتماد الحالية من Azure CLI
  7. بيانات الاعتماد الحالية من Azure PowerShell
  8. بيانات الاعتماد الحالية من Azure Developer CLI
  9. جلسة تفاعلية تقوم بتشغيل متصفح النظام لتسجيل الدخول

تدعم كل مكتبة Azure SDK حديثة الدالة الإنشائية لكائنات العميل أو الفئات الخاصة بها التي تقبل مثيلا DefaultAzureCredential أو نوعه الأساسي.

تلميح

لتسهيل تصحيح تعليمات الإنتاج البرمجية الخاصة بك والتنبؤ بها بشكل أكبر، يمكنك اختيار الاستخدام DefaultAzureCredential في التطوير والمبادلة ببيانات اعتماد أكثر تحديدا مثل WorkloadIdentityCredential أو ManagedIdentityCredential بمجرد نشر التطبيق. تستند جميع هذه الفئات إلى TokenCredential الفئة التي تتوقعها العديد من Azure SDKs كجزء من منطق تهيئة العميل الخاص بهم مما يجعل من السهل التبديل ذهابا وإيابا.

معرِّف فريد

تحتوي كل هوية في Microsoft Entra على معرف فريد. ترى أحيانا هذا المعرف الفريد المشار إليه باسم idأو objectIdأو principalId. عند إنشاء تعيينات الأدوار، تحتاج إلى المعرف الفريد للهوية التي تستخدمها مع التعيين.

النطاق

عند تعيين دور، يجب أن تقرر ما هي موارد أو مجموعات Azure لمنح حق الوصول إليها. يحدد نطاق تعيين الدور المستوى الذي يتم فيه تعيين.

على سبيل المثال:

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

عند تعيين دور في التحكم في الوصول المستند إلى الدور في Azure، من المثالي تعيين نطاق هذا التعيين لتضمين أقل قدر من الموارد كما هو مطلوب لحمل العمل الخاص بك. على سبيل المثال، يمكنك تعيين نطاق تعيين إلى مجموعة موارد. يتضمن نطاق مجموعة الموارد هذا جميع موارد Azure Cosmos DB ضمن مجموعة الموارد:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>

بدلا من ذلك، يمكنك تعيين النطاق إلى مورد Azure واحد وجعل تعيين الأذونات أكثر دقة وضيقا. في هذا المثال، يتم استخدام موفر واسم مورد Azure Cosmos DB لتضييق النطاق:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>

لمزيد من المعلومات، راجع نطاق التحكم في الوصول المستند إلى الدور في Azure.

النطاق (Azure Cosmos DB الأصلي)

في التنفيذ الأصلي ل Azure Cosmos DB للتحكم في الوصول المستند إلى الدور، يشير النطاق إلى دقة الموارد داخل الحساب الذي تريد تطبيق الإذن له.

على أعلى مستوى، يمكنك تحديد نطاق تعيين التحكم في الوصول المستند إلى دور مستوى البيانات إلى الحساب بأكمله باستخدام أكبر نطاق. يتضمن هذا النطاق جميع قواعد البيانات والحاويات داخل الحساب:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/

أو يمكنك تحديد نطاق تعيين دور مستوى البيانات إلى قاعدة البيانات الافتراضية:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/dbs/TablesDB

هام

قاعدة البيانات الافتراضية، TablesDB، حساسة لحالة الأحرف. إذا كنت تستخدم الغلاف الخطأ في نطاق، اقتطاع النطاق إلى أكبر نطاق مسموح به (مستوى الحساب).

وأخيرا، يمكنك تحديد نطاق التعيين إلى حاوية واحدة (جدول)، وهو النطاق الأكثر دقة:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/dbs/TablesDB/colls/<container-name>

الخطوة التالية