إدارة الأذونات لاستعادة حساب Azure Cosmos DB

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

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

قائمة الأدوار المطلوبة لأداء عملية الاستعادة.

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

قم بتعيين الأدوار للاستعادة باستخدام مدخل Microsoft Azure

لإجراء استعادة يحتاج المستخدم أو المسؤول إلى إذن للاستعادة (هذا إذن استعادة / إجراء)، وإذن لتوفير حساب جديد (أي إذن كتابة). لمنح هذه الأذونات، يمكن لمالك الاشتراك تعيين CosmosRestoreOperator الأدوار والمضمنة Cosmos DB Operator إلى أساس.

  1. سجل الدخول إلى مدخل Microsoft Azure وانتقل إلى اشتراكك. CosmosRestoreOperator يتوفر الدور على مستوى الاشتراك.

  2. حدد Access control (IAM).

  3. يرجى النقر فوق "إضافة" >"إضافة تعيين دور" لفتح صفحة إضافة تعيين الدور.

  4. تعيين الدور التالي. للحصول على خطوات تفصيلية، راجع تعيين أدوار Azure باستخدام مدخل Azure.

    الإعداد القيمة‬
    الدور CosmosRestoreOperator
    تعيين الوصول إلى المستخدم، والمجموعة، والخدمة الرئيسية
    الأعضاء <مستخدم من اختيارك>

    لقطة شاشة تعرض صفحة إضافة تعيين الدور في مدخل Microsoft Azure.

  5. كرر الخطوة 4 مع دور Cosmos DB Operator لمنح إذن الكتابة. عند تعيين هذا الدور من مدخل Microsoft Azure فإنه يمنح إذن الاستعادة للاشتراك بأكمله.

نطاقات الأذونات

النطاق مثال
الاشتراك /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e4e
مجموعة الموارد /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/Example-cosmosdb-rg
مورد حساب CosmosDB القابل للاستعادة /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e4e/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e4e

يمكن استخراج مورد الحساب القابل للاستعادة من إخراج الأمر az cosmosdb restorable-database-account list --account-name <accountname>في CLI أو cmdlet Get-AzCosmosDBRestorableDatabaseAccount -DatabaseAccountName <accountname> في PowerShell. تمثل سمة الاسم في الإخراج instanceID للحساب القابل للاستعادة.

أذونات حساب المصدر

الأذونات التالية مطلوبة لأداء الأنشطة المختلفة المتعلقة بالاستعادة لحسابات وضع النسخ الاحتياطي المستمر:

إشعار

يمكن تعيين الإذن لحساب قاعدة البيانات القابلة للاستعادة في نطاق الحساب أو نطاق الاشتراك. لا يتم دعم تعيين الأذونات في نطاق مجموعة الموارد.

الإذن تأثير النطاق الأدنى النطاق الأقصى
Microsoft.Resources/deployments/validate/action, Microsoft.Resources/deployments/write هذه الأذونات مطلوبة لنشر قالب ARM لإنشاء الحساب المستعاد. راجع نموذج الإذن RestorableAction أدناه للتعرف على كيفية تعيين هذا الدور. غير قابل للتطبيق غير قابل للتطبيق
Microsoft.DocumentDB/databaseAccounts/write هذا الإذن مطلوب لاستعادة حساب إلى مجموعة موارد مجموعة الموارد التي يتم بموجبها إنشاء الحساب المستعاد. الاشتراك الذي تم بموجبه إنشاء الحساب المستعاد
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action
لا يمكنك اختيار مجموعة الموارد كنطاق الإذن.
هذا الإذن مطلوب في نطاق حساب قاعدة البيانات القابلة للاستعادة للسماح بتنفيذ إجراءات الاستعادة عليه. تمت استعادة مورد RestorableDatabaseAccount الذي ينتمي إلى حساب المصدر. يتم توفير هذه القيمة أيضًا بواسطة خاصية ID لمورد حساب قاعدة البيانات القابلة للاستعادة. مثال على الحساب القابل للاستعادة هو /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> الاشتراك الذي يحتوي على حساب قاعدة البيانات القابلة للاستعادة.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read
لا يمكنك اختيار مجموعة الموارد كنطاق الإذن.
هذا الإذن مطلوب في نطاق حساب قاعدة البيانات القابلة للاستعادة لسرد حسابات قاعدة البيانات التي يمكن استعادتها. تمت استعادة مورد RestorableDatabaseAccount الذي ينتمي إلى حساب المصدر. يتم توفير هذه القيمة أيضًا بواسطة خاصية ID لمورد حساب قاعدة البيانات القابلة للاستعادة. مثال على الحساب القابل للاستعادة هو /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> الاشتراك الذي يحتوي على حساب قاعدة البيانات القابلة للاستعادة.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read
لا يمكنك اختيار مجموعة الموارد كنطاق الإذن.
هذا الإذن مطلوب في نطاق حساب المصدر القابل للاستعادة للسماح بقراءة الموارد القابلة للاستعادة مثل قائمة قواعد البيانات والحاويات لحساب قابل للاستعادة. تمت استعادة مورد RestorableDatabaseAccount الذي ينتمي إلى حساب المصدر. يتم توفير هذه القيمة أيضًا بواسطة خاصية ID لمورد حساب قاعدة البيانات القابلة للاستعادة. مثال على الحساب القابل للاستعادة هو /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> الاشتراك الذي يحتوي على حساب قاعدة البيانات القابلة للاستعادة.

أذونات حساب الوجهة

الأذونات التالية مطلوبة لأداء الأنشطة المختلفة المتعلقة بالاستعادة لحسابات وضع النسخ الاحتياطي المستمر:

الإذن تأثير
Microsoft.Resources/deployments/validate/action, Microsoft.Resources/deployments/write هذه الأذونات مطلوبة لنشر قالب ARM لإنشاء الحساب المستعاد. راجع نموذج الإذن RestorableAction أدناه للتعرف على كيفية تعيين هذا الدور.
Microsoft.DocumentDB/databaseAccounts/write هذا الإذن مطلوب لاستعادة حساب إلى مجموعة موارد

سيناريوهات تعيين دور Azure CLI للاستعادة في نطاقات مختلفة

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

تعيين القدرة على الاستعادة من أي حساب قابل للاستعادة في الاشتراك

  • تعيين الدور المضمن CosmosRestoreOperator إلى مستوى اشتراك معين
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope /subscriptions/<subscriptionId>

تعيين القدرة على الاستعادة من حساب معين

  • قم بتعيين إجراء الكتابة للمستخدم على مجموعة الموارد المحددة. هذا الإجراء مطلوب لإنشاء حساب جديد في مجموعة الموارد.
  • قم بتعيين الدور المضمن CosmosRestoreOperator إلى حساب قاعدة بيانات محدد قابل للاستعادة يحتاج إلى استعادة. في الأمر التالي، يتم استخراج نطاق ل RestorableDatabaseAccount من ID خاصية نتيجة تنفيذ az cosmosdb restorable-database-account list(إذا كنت تستخدم CLI) أو Get-AzCosmosDBRestorableDatabaseAccount(إذا كنت تستخدم PowerShell)
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope  <RestorableDatabaseAccount>

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

هذه العملية غير مدعومة حاليًا.

إنشاء دور مخصص لاستعادة الإجراء باستخدام CLI

يمكن لمالك الاشتراك توفير الإذن للاستعادة إلى أي هوية Microsoft Entra أخرى. يستند إذن الاستعادة إلى الإجراء: Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action، ويجب تضمينه في إذن الاستعادة الخاص بهم. يوجد دور مضمن يسمى CosmosRestoreOperator يتضمن هذا الدور. يمكنك إما تعيين الإذن باستخدام هذا الدور المضمن أو إنشاء دور مخصص.

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

{
  "assignableScopes": [
    "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f"
  ],
  "description": "Can do a restore request for any Azure Cosmos DB database account with continuous backup",
  "permissions": [
    {
      "actions": [
        "Microsoft.Resources/deployments/validate/action",
        "Microsoft.DocumentDB/databaseAccounts/write",
        "Microsoft.Resources/deployments/write",  
        "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action",
        "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read",
        "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read"
        ],
        "dataActions": [],
        "notActions": [],
        "notDataActions": []
      }
    ],
    "Name": "RestorableAction",
    "roleType": "CustomRole"
}

بعد ذلك؛ استخدم أمر نشر القالب التالي لإنشاء دور بإذن الاستعادة باستخدام قالب ARM:

az role definition create --role-definition <JSON_Role_Definition_Path>

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