حماية موارد Azure Cosmos DB باستخدام التأمينات
ينطبق على: NoSQL
MongoDB
كاساندرا
العفريت
جدول
كمسؤول، قد تحتاج إلى تأمين حساب Azure Cosmos DB أو قاعدة بيانات أو حاوية. تمنع الأقفال المستخدمين الآخرين في مؤسستك من حذف أو تعديل الموارد الهامة عن طريق الخطأ. يمكنك تعيين مستوى التأمين إلى CanNotDelete
أو ReadOnly
.
المستوى | الوصف |
---|---|
CanNotDelete |
لا يزال بإمكان المستخدمين المعتمدين قراءة المورد وتعديله، لكن لا يمكنهم حذف المورد. |
ReadOnly |
الأشخاص المعتمدين يمكنهم قراءة مورد، ولكن لا يمكنهم حذف المورد أو تحديثه. تطبيق هذا التأمين مشابه لتقييد كافة المستخدمين المعتمدين إلى الأذونات الممنوحة من قبل دور القارئ. |
المتطلبات الأساسية
- حساب Azure Cosmos DB موجود.
- إذا كان لديك اشتراك Azure، فبادر بإنشاء حساب جديد.
- في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
- بدلا من ذلك، يمكنك تجربة Azure Cosmos DB مجانا قبل الالتزام.
كيف يتم تطبيق الأقفال
عندما تقوم بتطبيق قفل على نطاق رئيسي، فإن جميع الموارد داخل هذا النطاق ترث نفس القفل. حتى الموارد التي تضيفها لاحقًا ترث التأمين من الأصل. القفل الأكثر تقييدًا في التوريث له الأسبقية.
بخلاف التحكم في الوصول المستند إلى الدور في Azure، يمكنك استخدام أقفال الإدارة لتطبيق قيد على جميع المستخدمين والأدوار.
تنطبق تأمينات Resource Manager فقط على العمليات التي تحدث في مستوى الإدارة، والتي تتكون من العمليات المرسلة إلى https://management.azure.com
. لا تقيد عمليات التأمين طريقة أداء الموارد لوظائفها الخاصة. تغييرات الموارد مقيدة، ولكن عمليات الموارد غير مقيدة. على سبيل المثال، يمنعك تأمين ReadOnly على حاوية Azure Cosmos DB من حذف الحاوية أو تعديلها. لا يمنعك من إنشاء أو تحديث أو حذف البيانات في الحاوية. يسمح بحركات البيانات لأنه لا يتم إرسال هذه العمليات إلى https://management.azure.com
.
إدارة الأقفال
لا تعمل أقفال الموارد مع التغييرات التي أجراها المستخدمون الذين يصلون إلى Azure Cosmos DB باستخدام مفاتيح الحساب ما لم يتم تأمين حساب Azure Cosmos DB أولا عن طريق تمكين الخاصية disableKeyBasedMetadataWriteAccess
. تأكد من أن هذه الخاصية لا تكسر التطبيقات الموجودة التي تجري تغييرات على الموارد باستخدام أي SDK أو مدخل Azure أو أدوات جهة خارجية. يؤدي تمكين هذه الخاصية إلى قطع التطبيقات التي تتصل عبر مفاتيح الحساب لتعديل الموارد. يمكن أن تتضمن هذه التعديلات تغيير معدل النقل وتحديث نهج الفهرس وما إلى ذلك.
$RESOURCE_GROUP_NAME = "<resource-group>"
$ACCOUNT_NAME = "<account-name>"
$LOCK_NAME = "$ACCOUNT_NAME-lock"
أولا، قم بتحديث الحساب لمنع التغييرات بواسطة أي شيء يتصل عبر مفاتيح الحساب.
$parameters = @{
Name = $ACCOUNT_NAME
ResourceGroupName = $RESOURCE_GROUP_NAME
DisableKeyBasedMetadataWriteAccess = true
}
Update-AzCosmosDBAccount @parameters
إنشاء تأمين حذف على مورد حساب Azure Cosmos DB وجميع الموارد التابعة.
$parameters = @{
ResourceGroupName = $RESOURCE_GROUP_NAME
ResourceName = $ACCOUNT_NAME
LockName = $LOCK_NAME
ApiVersion = "2020-04-01"
ResourceType = "Microsoft.DocumentDB/databaseAccounts"
LockLevel = "CanNotDelete"
}
New-AzResourceLock @parameters
قالب
عند تطبيق تأمين على مورد قاعدة بيانات Azure Cosmos استخدم Microsoft.Authorization/locks
مورد Azure Resource Manager (ARM).
{
"type": "Microsoft.Authorization/locks",
"apiVersion": "2017-04-01",
"name": "cosmoslock",
"dependsOn": [
"[resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('accountName'))]"
],
"properties": {
"level": "CanNotDelete",
"notes": "Do not delete Azure Cosmos DB account."
},
"scope": "[resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('accountName'))]"
}
العينات
إدارة تأمين الموارد لـ Azure Cosmos DB:
- واجهة برمجة التطبيقات لمساحة مفاتيح Cassandra والجدول Azure CLI | Azure PowerShell
- واجهة برمجة التطبيقات لقاعدة بيانات Gremlin والرسم البياني Azure CLI | Azure PowerShell
- واجهة برمجة التطبيقات لقاعدة بيانات MongoDB ومجموعة Azure CLI| Azure PowerShell
- واجهة برمجة التطبيقات لقاعدة بيانات NoSQL والحاوية Azure CLI | Azure PowerShell
- واجهة برمجة التطبيقات لجدول الجدول Azure CLI | Azure PowerShell