إنشاء أو تحديث Azure أدوار مخصصة باستخدام Azure CLI
إذا لم تلبِّ الأدوار المضمنة في Azureالاحتياجات المحددة لمؤسستك، يمكنك إنشاء أدوار مخصصة خاصة بك. توضح هذه المقالة كيفية سرد الأدوار المخصصة أو إنشاؤها أو تحديثها أو حذفها باستخدام Azure CLI.
للحصول على برنامج تعليمي خطوة بخطوة حول كيفية إنشاء دور مخصص، راجع البرنامج التعليمي: إنشاء دور مخصص Azure باستخدام Azure CLI.
المتطلبات الأساسية
لإنشاء أدوار مخصصة، تحتاج إلى:
- أذونات إنشاء أدوار مخصصة، مثل المستخدم Access مسؤول istrator
- Azure Cloud ShellأوAzure CLI
الأدوار المخصصة بالقائمة
لسرد الأدوار المخصصة المتوفرة للتعيين، استخدم قائمة تعريف الدور az. يسرد المثال التالي جميع الأدوار المخصصة في الاشتراك الحالي.
az role definition list --custom-role-only true --output json --query '[].{roleName:roleName, roleType:roleType}'
[
{
"roleName": "My Management Contributor",
"type": "CustomRole"
},
{
"roleName": "My Service Reader Role",
"type": "CustomRole"
},
{
"roleName": "Virtual Machine Operator",
"type": "CustomRole"
}
]
سرد تعريف دور مخصص
لسرد تعريف دور مخصص، استخدم قائمة تعريف الدور az. هذا الأمر هو نفس الأمر الذي ستستخدمه لدور مضمن.
az role definition list --name {roleName}
يسرد المثال التالي تعريف دور عامل تشغيل الجهاز الظاهري:
az role definition list --name "Virtual Machine Operator"
[
{
"assignableScopes": [
"/subscriptions/{subscriptionId}"
],
"description": "Can monitor and restart virtual machines.",
"id": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000",
"name": "00000000-0000-0000-0000-000000000000",
"permissions": [
{
"actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Support/*"
],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleName": "Virtual Machine Operator",
"roleType": "CustomRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
]
يسرد المثال التالي فقط إجراءات دور عامل تشغيل الجهاز الظاهري:
az role definition list --name "Virtual Machine Operator" --output json --query '[].permissions[0].actions'
[
[
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Support/*"
]
]
إنشاء دور مخصص
لإنشاء دور مخصص، استخدم az role definition create. يمكن أن يكون تعريف الدور وصف JSON أو مسارا إلى ملف يحتوي على وصف JSON.
az role definition create --role-definition {roleDefinition}
ينشئ المثال التالي دورا مخصصا يسمى عامل تشغيل الجهاز الظاهري. يعين هذا الدور المخصص الوصول إلى جميع إجراءات القراءة من موفري موارد Microsoft.Compute وMicrosoft.Storage وMicrosoft.Network ويعين الوصول لبدء تشغيل الأجهزة الظاهرية وإعادة تشغيلها ومراقبتها. يمكن استخدام هذا الدور المخصص في اشتراكين. يستخدم هذا المثال ملف JSON كمدخل.
vmoperator.json
{
"Name": "Virtual Machine Operator",
"IsCustom": true,
"Description": "Can monitor and restart virtual machines.",
"Actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Support/*"
],
"NotActions": [
],
"AssignableScopes": [
"/subscriptions/{subscriptionId1}",
"/subscriptions/{subscriptionId2}"
]
}
az role definition create --role-definition ~/roles/vmoperator.json
تحديث الدور المخصص
لتحديث دور مخصص، استخدم أولا قائمة تعريف الدور az لاسترداد تعريف الدور. ثانيا، قم بإجراء التغييرات المطلوبة على تعريف الدور. وأخيرا، استخدم az role definition update لحفظ تعريف الدور المحدث.
az role definition update --role-definition {roleDefinition}
يضيف المثال التالي الإجراء Microsoft.Insights/diagnostic الإعدادات/إلى Actions
ويضيف مجموعة إدارة إلى AssignableScopes
للدور المخصص لعامل تشغيل الجهاز الظاهري.
vmoperator.json
{
"Name": "Virtual Machine Operator",
"IsCustom": true,
"Description": "Can monitor and restart virtual machines.",
"Actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Support/*"
],
"NotActions": [
],
"AssignableScopes": [
"/subscriptions/{subscriptionId1}",
"/subscriptions/{subscriptionId2}",
"/providers/Microsoft.Management/managementGroups/marketing-group"
]
}
az role definition update --role-definition ~/roles/vmoperator.json
حذف الدور المخصص
قم بإزالة أي تعيينات دور تستخدم الدور المخصص. لمزيد من المعلومات، راجع البحث عن تعيينات الأدوار لحذف دور مخصص.
استخدم az role definition delete لحذف الدور المخصص. لتحديد الدور المراد حذفه، استخدم اسم الدور أو معرف الدور. لتحديد معرف الدور، استخدم قائمة تعريف الدور az.
az role definition delete --name {roleNameOrId}
يحذف المثال التالي الدور المخصص لعامل تشغيل الجهاز الظاهري.
az role definition delete --name "Virtual Machine Operator"