التحكم في الوصول المستند إلى الدور لـ Azure في قاعدة بيانات Azure Cosmos

ينطبق على: NoSQL MongoDB كاساندرا العفريت الجدول

إشعار

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

لمعرفة المزيد حول التحكم في الوصول المستند إلى الدور المطبق على عمليات مستوى البيانات في واجهة برمجة التطبيقات ل NoSQL، راجع الوصول الآمن إلى البيانات ومقالات التحكم في الوصول استنادا إلى الدور في Azure Cosmos DB. للحصول على واجهة برمجة تطبيقات Azure Cosmos DB ل MongoDB، راجع التحكم في الوصول استنادا إلى الدور لمستوى البيانات في واجهة برمجة التطبيقات ل MongoDB.

توفر قاعدة بيانات Azure Cosmos التحكم في الوصول المستند إلى دور(Azure RBAC) لسيناريوهات الإدارة الشائعة في قاعدة بيانات Azure Cosmos. يمكن للفرد الذي لديه ملف تعريف في معرف Microsoft Entra تعيين أدوار Azure هذه للمستخدمين أو المجموعات أو أساسيات الخدمة أو الهويات المدارة لمنح أو رفض الوصول إلى الموارد والعمليات على موارد Azure Cosmos DB. يتم تحديد نطاق تعيينات الدور للوصول إلى مستوى التحكم فقط، والذي يتضمن الوصول إلى حسابات Azure Cosmos DB وقواعد البيانات والحاويات والعروض (معدل النقل).

أدوار مدمجة

فيما يلي الأدوار المضمنة التي تدعمها قاعدة بيانات Azure Cosmos:

الدور مدمج الوصف
مساهم حساب DocumentDB يمكن إدارة حسابات قاعدة بيانات Azure Cosmos.
دور قارئ حساب Cosmos DB يمكن قراءة بيانات حساب قاعدة بيانات Azure Cosmos.
CosmosBackupOperator يمكن إرسال طلب استعادة في مدخل Microsoft Azure لقاعدة بيانات دورية ممكنة للنسخ الاحتياطي أو حاوية. يمكن تعديل الفاصل الزمني للنسخ الاحتياطي والاستبقاء في مدخل Microsoft Azure. لا يمكن الوصول إلى أي بيانات أو استخدام Data Explorer.
CosmosRestoreOperator يمكن تنفيذ إجراء استعادة لحساب Azure Cosmos DB مع وضع النسخ الاحتياطي المستمر.
مشغل قاعدة بيانات COSMOS يمكن توفير حسابات Azure Cosmos DB وقواعد البيانات والحاويات. لا يمكن الوصول إلى أي بيانات أو استخدام Data Explorer.

إدارة الوصول والهوية (IAM)

يتم استخدام جزء التحكم في الوصول (IAM) في مدخل Microsoft Azure لتكوين التحكم في الوصول المستند إلى دور Azure على موارد Azure Cosmos DB. يتم تطبيق الأدوار على المستخدمين والمجموعات وأساسيات الخدمة والهويات المدارة في خدمات مجال Active Directory. يمكنك استخدام الأدوار المضمنة أو الأدوار المخصصة للأفراد والمجموعات. تظهر لقطة الشاشة التالية تكامل خدمات مجال Active Directory (Azure RBAC) باستخدام التحكم في الوصول (IAM) في مدخل Microsoft Azure:

Access control (IAM) in the Azure portal - demonstrating database security.

أدوار مخصصة

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

تلميح

يجب أن يكون Microsoft.DocumentDB/databaseAccounts/listKeys/* للأدوار المخصصة التي تحتاج إلى الوصول إلى البيانات المخزنة داخل Azure Cosmos DB أو استخدام مستكشف البيانات في مدخل Microsoft Azure إجراء.

إشعار

قد لا تكون تعيينات الأدوار المخصصة مرئية دائما في مدخل Microsoft Azure.

تحذير

لا يتم تدوير مفاتيح الحساب أو إبطالها تلقائيا بعد تغييرات التحكم في الوصول استنادا إلى الدور للإدارة. تمنح هذه المفاتيح الوصول إلى عمليات مستوى البيانات. عند إزالة الوصول إلى المفاتيح من مستخدم، يوصى بتدوير المفاتيح أيضا. بالنسبة إلى RBAC Data Plane، سترفض الخلفية Cosmos DB الطلبات بمجرد أن لا تتطابق الأدوار/المطالبات. إذا كان المستخدم يتطلب وصولا مؤقتا إلى عمليات مستوى البيانات، فمن المستحسن استخدام Azure Cosmos DB RBAC Data Plane.

منع التغييرات من وحدات SDKs في قاعدة بيانات Azure Cosmos

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

عند تمكين هذه الميزة، لا يمكن إجراء تغييرات على أي مورد إلا من مستخدم له دور Azure الصحيح وبيانات اعتماد Microsoft Entra بما في ذلك هويات الخدمة المدارة.

تحذير

يمكن أن يكون لتمكين هذه الميزة تأثير على تطبيقك. تأكد من أنك تفهم التأثير قبل تمكينه.

تحقق من القائمة قبل التمكين

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

  • إنشاء وحذف الموارد التابعة مثل قواعد البيانات والحاويات. يتضمن ذلك موارد لواجهات برمجة التطبيقات الأخرى مثل Cassandra وMongoDB وGremlin وموارد الجدول.

  • قراءة أو تحديث معدل النقل على قاعدة البيانات أو موارد مستوى الحاوية.

  • تعديل خصائص الحاوية بما في ذلك نهج الفهرس وTTL والمفاتيح الفريدة.

  • تعديل الإجراءات المخزنة أو المشغلات أو الوظائف المحددة من قِبَل المستخدم.

إذا نفذت تطبيقاتك (أو المستخدمون عبر مدخل Microsoft Azure) أياً من هذه الإجراءات، فسيلزم ترحيلهم لتنفيذها عبر قوالب ARM أو PowerShell أو Azure CLI، REST، أو مكتبة إدارة Azure . لاحظ أن إدارة Azure متوفرة بلغات متعددة.

تعيين عبر قالب ARM

لتعيين هذه الخاصية باستخدام قالب ARM، قم بتحديث القالب الموجود أو قم بتصدير قالب جديد للنشر الحالي، ثم قم بتضمين "disableKeyBasedMetadataWriteAccess": trueإلى خصائص databaseAccounts الموارد. فيما يلي مثال أساسي لقالب Azure Resource Manager مع إعداد الخاصية هذا.

{
    {
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "name": "[variables('accountName')]",
      "apiVersion": "2020-04-01",
      "location": "[parameters('location')]",
      "kind": "GlobalDocumentDB",
      "properties": {
        "consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
        "locations": "[variables('locations')]",
        "databaseAccountOfferType": "Standard",
        "disableKeyBasedMetadataWriteAccess": true
        }
    }
}

هام

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

تعيين عبر Azure CLI

لتمكين استخدام Azure CLI، استخدم الأمر أدناه:

az cosmosdb update  --name [CosmosDBAccountName] --resource-group [ResourceGroupName]  --disable-key-based-metadata-write-access true

تعيين عبر PowerShell

لتمكين استخدام Azure PowerShell، استخدم الأمر أدناه:

Update-AzCosmosDBAccount -ResourceGroupName [ResourceGroupName] -Name [CosmosDBAccountName] -DisableKeyBasedMetadataWriteAccess true

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