البرنامج التعليمي: إنشاء دور مخصص Azure باستخدام Azure PowerShell

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

في هذا البرنامج التعليمي، تتعلم كيفية:

  • إنشاء دور مخصص
  • الأدوار المخصصة بالقائمة
  • تحديث الدور المخصص
  • حذف الدور المخصص

في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

المتطلبات الأساسية

لإكمال هذا البرنامج التعليمي، ستحتاج إلى:

تسجيل الدخول إلى Azure PowerShell

تسجيل الدخول إلىAzure PowerShell.

إنشاء دور مخصص

أسهل طريقة لإنشاء دور مخصص هي البدء بدور مضمن، وتحريره ثم إنشاء دور جديد.

  1. في PowerShell، استخدم الأمرGet-AzProviderOperationللحصول على قائمة العمليات لموفر الموارد Microsoft.Support. من المفيد معرفة العمليات المتوفرة لإنشاء الأذونات الخاصة بك. يمكنك أيضًا مشاهدة قائمة بكافة العمليات في عمليات موفر الموارد بـ Azure.

    Get-AzProviderOperation "Microsoft.Support/*" | FT Operation, Description -AutoSize
    
    Operation                              Description
    ---------                              -----------
    Microsoft.Support/register/action      Registers to Support Resource Provider
    Microsoft.Support/supportTickets/read  Gets Support Ticket details (including status, severity, contact ...
    Microsoft.Support/supportTickets/write Creates or Updates a Support Ticket. You can create a Support Tic...
    
  2. استخدم الأمرGet-AzRoleDefinitionلإخراج دور القارئ بتنسيق JSON.

    Get-AzRoleDefinition -Name "Reader" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole.json
    
  3. افتح ملفReaderSupportRole.jsonفي المحرر.

    يظهر ما يلي مخرجات JSON. للحصول على معلومات حول الخصائص المختلفة، راجعأدوار Azure المخصصة.

    {
      "Name": "Reader",
      "Id": "acdd72a7-3385-48ef-bd42-f606fba81ae7",
      "IsCustom": false,
      "Description": "Lets you view everything, but not make any changes.",
      "Actions": [
        "*/read"
      ],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/"
      ]
    }
    
  4. قم بتحرير ملف JSON لإضافة الإجراء "Microsoft.Support/*" إلى الخاصية Actions. تأكد من تضمين فاصلة بعد إجراء القراءة. سيسمح هذا الإجراء للمستخدم بإنشاء تذاكر دعم.

  5. الحصول على مُعَرِّف اشتراكك، باستخدام الأمر Get-AzSubscription.

    Get-AzSubscription
    
  6. AssignableScopesأضف مُعَرِّف الاشتراك الخاص بك بالتنسيق التالي:"/subscriptions/00000000-0000-0000-0000-000000000000"

    يجب إضافة مُعَرِفات اشتراك صريحة، وإلا فلن يسمح لك باستيراد الدور إلى اشتراكك.

  7. حذفIdسطر الخاصية وتغييرIsCustomالخاصية إلى true.

  8. تغييرNameوDescriptionوالخصائص إلى "تذاكر دعم القارئ" و"عرض كل شيء في الاشتراك، وكذلك فتح تذاكر الدعم."

    يجب أن يبدو ملف JSON كما يلي:

    {
      "Name": "Reader Support Tickets",
      "IsCustom": true,
      "Description": "View everything in the subscription and also open support tickets.",
      "Actions": [
        "*/read",
        "Microsoft.Support/*"
      ],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ]
    }
    
  9. لإنشاء دور مخصص جديد، استخدم الأمرNew-AzRoleDefinitionوحدد ملف تعريف دور JSON.

    New-AzRoleDefinition -InputFile "C:\CustomRoles\ReaderSupportRole.json"
    
    Name             : Reader Support Tickets
    Id               : 22222222-2222-2222-2222-222222222222
    IsCustom         : True
    Description      : View everything in the subscription and also open support tickets.
    Actions          : {*/read, Microsoft.Support/*}
    NotActions       : {}
    DataActions      : {}
    NotDataActions   : {}
    AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000}
    

    يتوفر الآن دور مخصص جديد في مدخل Azure، ويمكن تعيينه للمستخدمين أو المجموعات أو أساسيات الخدمة مثل الأدوار المضمنة.

الأدوار المخصصة بالقائمة

  • لسرد كافة الأدوار المخصصة الخاصة بك، استخدم الأمرGet-AzRoleDefinition

    Get-AzRoleDefinition | ? {$_.IsCustom -eq $true} | FT Name, IsCustom
    
    Name                   IsCustom
    ----                   --------
    Reader Support Tickets     True
    

    يمكنك أيضًا مشاهدة الدور المخصص في مدخل Azure.

    screenshot of custom role imported in the Azure portal

تحديث الدور المخصص

لتحديث الدور المخصص، يمكنك تحديث ملف JSON أو استخدامPSRoleDefinitionالكائن.

  1. لتحديث ملف JSON، استخدم الأمرGet-AzRoleDefinitionلإخراج الدور المخصص بتنسيق JSON.

    Get-AzRoleDefinition -Name "Reader Support Tickets" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole2.json
    
  2. افتح الملف في المحرر.

  3. في Actions، أضف الإجراء الخاص بإنشاء وإدارة عمليات نشر مجموعة الموارد"Microsoft.Resources/deployments/*".

    يجب أن يبدو ملف JSON كما يلي:

    {
      "Name": "Reader Support Tickets",
      "Id": "22222222-2222-2222-2222-222222222222",
      "IsCustom": true,
      "Description": "View everything in the subscription and also open support tickets.",
      "Actions": [
        "*/read",
        "Microsoft.Support/*",
        "Microsoft.Resources/deployments/*"
      ],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ]
    }
    
  4. لتحديث الدور المخصص استخدم الأمرSet-AzRoleDefinition وحدد ملف JSON المُحَدَّث.

    Set-AzRoleDefinition -InputFile "C:\CustomRoles\ReaderSupportRole2.json"
    
    Name             : Reader Support Tickets
    Id               : 22222222-2222-2222-2222-222222222222
    IsCustom         : True
    Description      : View everything in the subscription and also open support tickets.
    Actions          : {*/read, Microsoft.Support/*, Microsoft.Resources/deployments/*}
    NotActions       : {}
    DataActions      : {}
    NotDataActions   : {}
    AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000}
    
  5. لاستخدام PSRoleDefintionالكائن لتحديث دورك المخصص، استخدم أولاً الأمر Get-AzRoleDefinition للحصول على الدور.

    $role = Get-AzRoleDefinition "Reader Support Tickets"
    
  6. اتصل بأسلوب Add لإضافة الإجراء لقراءة إعدادات التشخيص.

    $role.Actions.Add("Microsoft.Insights/diagnosticSettings/*/read")
    
  7. استخدم Set-AzRoleDefinitionلتحديث الدور.

    Set-AzRoleDefinition -Role $role
    
    Name             : Reader Support Tickets
    Id               : 22222222-2222-2222-2222-222222222222
    IsCustom         : True
    Description      : View everything in the subscription and also open support tickets.
    Actions          : {*/read, Microsoft.Support/*, Microsoft.Resources/deployments/*,
                       Microsoft.Insights/diagnosticSettings/*/read}
    NotActions       : {}
    DataActions      : {}
    NotDataActions   : {}
    AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000}
    

حذف الدور المخصص

  1. استخدم الأمرGet-AzRoleDefinitionللحصول على مُعَرِّف الدور المخصص.

    Get-AzRoleDefinition "Reader Support Tickets"
    
  2. استخدم الأمرRemove-AzRoleDefinition، وحدد مُعَرِّف الدور لحذف الدور المخصص.

    Remove-AzRoleDefinition -Id "22222222-2222-2222-2222-222222222222"
    
    Confirm
    Are you sure you want to remove role definition with id '22222222-2222-2222-2222-222222222222'.
    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"):
    
  3. عند مطالبتك بالتأكيد، اكتبY.

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