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

في هذا الدليل الإرشادي، ستتعلم كيفية إنشاء دور مخصص لمشغلي الخدمة. يوفر الدور المخصص الأذونات الضرورية للوصول إلى موارد Publisher Azure Operator Service Manager (AOSM) عند نشر خدمة شبكة الموقع (SNS).

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

اتصل بفريق حساب Microsoft لتسجيل اشتراك Azure للوصول إلى Azure Operator Service Manager (AOSM) أو أعرب عن اهتمامك من خلال نموذج تسجيل الشريك.

الأذونات/الإجراءات المطلوبة من قبل الدور المخصص

  • إجراء Microsoft.HybridNetwork/Publishers/NetworkFunctionDefinitionGroups/NetworkFunctionDefinitionVersions/use/

  • Microsoft.HybridNetwork/Publishers/NetworkFunctionDefinitionGroups/NetworkFunctionDefinitionVersions/read

  • إجراء Microsoft.HybridNetwork/Publishers/NetworkServiceDesignGroups/NetworkServiceDesignVersions/use/

  • Microsoft.HybridNetwork/Publishers/NetworkServiceDesignGroups/NetworkServiceDesignVersions/read

  • Microsoft.HybridNetwork/Publishers/ConfigurationGroupSchemas/read

تحديد النطاق

حدد النطاق الذي تريد أن يكون الدور قابلا للتعيين إليه:

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

  • إذا كانت موارد الناشر موزعة عبر مجموعات موارد متعددة ضمن اشتراك واحد، فيجب عليك استخدام النطاق القابل للتعيين لهذا الاشتراك.

  • إذا كانت موارد الناشر موزعة عبر اشتراكات متعددة، فيجب عليك إنشاء دور مخصص قابل للتعيين لكل اشتراك من هذه الاشتراكات.

إنشاء دور مخصص باستخدام Bicep

إنشاء دور مخصص باستخدام Bicep. لمزيد من المعلومات، راجع إنشاء أو تحديث أدوار Azure المخصصة باستخدام Bicep

على سبيل المثال، يمكنك استخدام النموذج التالي كقالب main.bicep. ينشئ هذا النموذج الدور مع نطاق قابل للتعيين على مستوى الاشتراك.

targetScope = 'subscription'

@description('Array of actions for the roleDefinition')
param actions array = [
  'Microsoft.HybridNetwork/Publishers/NetworkFunctionDefinitionGroups/NetworkFunctionDefinitionVersions/use/action'
  'Microsoft.HybridNetwork/Publishers/NetworkFunctionDefinitionGroups/NetworkFunctionDefinitionVersions/read'
  'Microsoft.HybridNetwork/Publishers/NetworkServiceDesignGroups/NetworkServiceDesignVersions/use/action'
  'Microsoft.HybridNetwork/Publishers/NetworkServiceDesignGroups/NetworkServiceDesignVersions/read'
  'Microsoft.HybridNetwork/Publishers/ConfigurationGroupSchemas/read'
]

@description('Array of notActions for the roleDefinition')
param notActions array = []

@description('Friendly name of the role definition')
param roleName string = 'Custom Role - AOSM Service Operator access to Publisher'

@description('Detailed description of the role definition')
param roleDescription string = 'Provides read and use access to AOSM Publisher resources'

var roleDefName = guid(subscription().id, string(actions), string(notActions))

resource roleDef 'Microsoft.Authorization/roleDefinitions@2022-04-01' = {
  name: roleDefName
  properties: {
    roleName: roleName
    description: roleDescription
    type: 'customRole'
    permissions: [
      {
        actions: actions
        notActions: notActions
      }
    ]
    assignableScopes: [
      subscription().id
    ]
  }
}

عند نشر القالب، يجب نشره في نفس الاشتراك مثل موارد Publisher.

az login

az account set --subscription <publisher subscription>

az deployment sub create --location <location> --name customRole --template-file main.bicep 

إنشاء دور مخصص باستخدام مدخل Microsoft Azure

إنشاء دور مخصص باستخدام مدخل Microsoft Azure. لمزيد من المعلومات، راجع إنشاء أو تحديث أدوار Azure المخصصة باستخدام مدخل Microsoft Azure

إذا كنت تفضل ذلك، يمكنك تحديد معظم قيم الدور المخصص في ملف JSON.

نموذج JSON:

{
  "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.22.6.54827",
      "templateHash": "14238097231376848271"
    }
  },
  "parameters": {
    "actions": {
      "type": "array",
      "defaultValue": [
        "Microsoft.HybridNetwork/Publishers/NetworkFunctionDefinitionGroups/NetworkFunctionDefinitionVersions/use/action",
        "Microsoft.HybridNetwork/Publishers/NetworkFunctionDefinitionGroups/NetworkFunctionDefinitionVersions/read",
        "Microsoft.HybridNetwork/Publishers/NetworkServiceDesignGroups/NetworkServiceDesignVersions/use/action",
        "Microsoft.HybridNetwork/Publishers/NetworkServiceDesignGroups/NetworkServiceDesignVersions/read",
        "Microsoft.HybridNetwork/Publishers/ConfigurationGroupSchemas/read"
      ],
      "metadata": {
        "description": "Array of actions for the roleDefinition"
      }
    },
    "notActions": {
      "type": "array",
      "defaultValue": [],
      "metadata": {
        "description": "Array of notActions for the roleDefinition"
      }
    },
    "roleName": {
      "type": "string",
      "defaultValue": "Custom Role - AOSM Service Operator Role",
      "metadata": {
        "description": "Friendly name of the role definition"
      }
    },
    "roleDescription": {
      "type": "string",
      "defaultValue": "Role Definition for AOSM Service Operator Role",
      "metadata": {
        "description": "Detailed description of the role definition"
      }
    }
  },
  "variables": {
    "roleDefName": "[guid(subscription().id, string(parameters('actions')), string(parameters('notActions')))]"
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/roleDefinitions",
      "apiVersion": "2022-04-01",
      "name": "[variables('roleDefName')]",
      "properties": {
        "roleName": "[parameters('roleName')]",
        "description": "[parameters('roleDescription')]",
        "type": "customRole",
        "permissions": [
          {
            "actions": "[parameters('actions')]",
            "notActions": "[parameters('notActions')]"
          }
        ],
        "assignableScopes": [
          "[subscription().id]"
        ]
      }
    }
  ]
}

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