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

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

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

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

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

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

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

تسجيل الدخول إلى واجهة سطر الأوامر Azure

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

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

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

  1. مراجعة قائمة الإجراءات لـ موفر موارد Microsoft.Support⁩. من المفيد معرفة الإجراءات المتوفرة لإنشاء الأذونات الخاصة بك.

    الإجراء ‏‏الوصف
    Microsoft.Support/register/action يسجل لدعم مزود الموارد
    Microsoft.Support/supportTickets/read الحصول على تفاصيل تذكرة الدعم (بما في ذلك الحالة والخطورة وتفاصيل الاتصال والاتصالات) أو الحصول على قائمة تذاكر الدعم عبر الاشتراكات.
    Microsoft.Support/supportTickets/write ينشئ أو يحدّث تذكرة دعم. يمكنك إنشاء تذكرة دعم للمسائل الفنية أو الفواتير أو الحصص أو إدارة الاشتراكات ذات الصلة. يمكنك تحديث الخطورة وتفاصيل الاتصال والاتصالات الخاصة ببطاقات الدعم الحالية.
  2. إنشاء ملف جديد باسم ReaderSupportRole.json⁩.

  3. افتح ReaderSupportRole.json في محرر وأضف JSON التالي.

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

    {
      "Name": "",
      "IsCustom": true,
      "Description": "",
      "Actions": [],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/subscriptions/{subscriptionId1}"
      ]
    }
    
  4. أضف الإجراءات التالية إلى خاصية Actions. تتيح هذه الإجراءات للمستخدم عرض كل شيء في الاشتراك وإنشاء تذاكر دعم.

    "*/read",
    "Microsoft.Support/*"
    
  5. الحصول على معرف اشتراكك باستخدام من الألف إلى الياء قائمة حساب⁩ الأوامر.

    az account list --output table
    
  6. في AssignableScopesاستبدال{subscriptionId1}⁩ مع ID اشتراكك.

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

  7. تغيير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"
      ]
    }
    
  8. لإنشاء دور مخصص جديد، استخدم الأمر إنشاء تعريف دور az وحدد ملف تعريف دور JSON.

    az role definition create --role-definition "~/CustomRoles/ReaderSupportRole.json"
    
    {
      "additionalProperties": {},
      "assignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ],
      "description": "View everything in the subscription and also open support tickets.",
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222",
      "name": "22222222-2222-2222-2222-222222222222",
      "permissions": [
        {
          "actions": [
            "*/read",
            "Microsoft.Support/*"
          ],
          "additionalProperties": {},
          "dataActions": [],
          "notActions": [],
          "notDataActions": []
        }
      ],
      "roleName": "Reader Support Tickets",
      "roleType": "CustomRole",
      "type": "Microsoft.Authorization/roleDefinitions"
    }
    

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

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

  • لسرد جميع الأدوار المخصصة، استخدم الأمر قائمة تعريف الدور az مع المعلمة --custom-role-only.

    az role definition list --custom-role-only true
    
    [
      {
        "additionalProperties": {},
        "assignableScopes": [
          "/subscriptions/00000000-0000-0000-0000-000000000000"
        ],
        "description": "View everything in the subscription and also open support tickets.",
        "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222",
        "name": "22222222-2222-2222-2222-222222222222",
        "permissions": [
          {
            "actions": [
              "*/read",
              "Microsoft.Support/*",
              "Microsoft.Resources/deployments/*",
              "Microsoft.Insights/diagnosticSettings/*/read"
            ],
            "additionalProperties": {},
            "dataActions": [],
            "notActions": [],
            "notDataActions": []
          }
        ],
        "roleName": "Reader Support Tickets",
        "roleType": "CustomRole",
        "type": "Microsoft.Authorization/roleDefinitions"
      }
    ]
    

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

    screenshot of custom role imported in the Azure portal

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

لتحديث الدور المخصص، قم بتحديث ملف JSON ثم قم بتحديث الدور المخصص.

  1. افتح ملف ReaderSupportRole.json.

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

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

    {
      "Name": "Reader Support Tickets",
      "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"
      ]
    }
    
  3. لتحديث الدور المخصص، استخدم الأمر تحديث تعريف الدور az وحدد ملف JSON المحدث.

    az role definition update --role-definition "~/CustomRoles/ReaderSupportRole.json"
    
    {
      "additionalProperties": {},
      "assignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ],
      "description": "View everything in the subscription and also open support tickets.",
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222",
      "name": "22222222-2222-2222-2222-222222222222",
      "permissions": [
        {
          "actions": [
            "*/read",
            "Microsoft.Support/*",
            "Microsoft.Resources/deployments/*"
          ],
          "additionalProperties": {},
          "dataActions": [],
          "notActions": [],
          "notDataActions": []
        }
      ],
      "roleName": "Reader Support Tickets",
      "roleType": "CustomRole",
      "type": "Microsoft.Authorization/roleDefinitions"
    }
    

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

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