Özel rol oluşturma

Bu nasıl yapılır kılavuzunda, Hizmet İşleçleri için özel rol oluşturmayı öğreneceksiniz. Özel rol, Site Ağ Hizmeti (SNS) dağıtırken Azure Operatör Hizmeti Yöneticisi (AOSM) Yayımcı kaynaklarına erişmek için gerekli izinleri sağlar.

Önkoşullar

Azure Operatör Hizmeti Yöneticisi'ne (AOSM) erişim için Azure aboneliğinizi kaydetmek veya iş ortağı kayıt formu aracılığıyla ilginizi belirtmek için Microsoft hesabı ekibinize başvurun.

Özel rol için gereken izinler/eylemler

  • Microsoft.HybridNetwork/Publishers/NetworkFunctionDefinitionGroups/NetworkFunctionDefinitionVersions/use/eylemi

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

  • Microsoft.HybridNetwork/Publishers/NetworkServiceDesignGroups/NetworkServiceDesignVersions/use/eylemi

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

  • Microsoft.HybridNetwork/Publishers/ConfigurationGroupSchemas/read

Kapsamı belirleme

Rolün atanmasını istediğiniz kapsama karar verin:

  • Yayımcı kaynakları tek bir kaynak grubundaysa, bu kaynak grubunun atanabilir kapsamını kullanabilirsiniz.

  • Yayımcı kaynakları tek bir abonelik içinde birden çok kaynak grubuna yayılmışsa, bu aboneliğin atanabilir kapsamını kullanmanız gerekir.

  • Yayımcı kaynakları birden çok aboneliğe yayılmışsa, bu aboneliklerin her birine atanabilir bir özel rol oluşturmanız gerekir.

Bicep kullanarak özel rol oluşturma

Bicep kullanarak özel bir rol oluşturun. Daha fazla bilgi için bkz . Bicep kullanarak Azure özel rolleri oluşturma veya güncelleştirme

Örneğin, main.bicep şablonu olarak aşağıdaki örneği kullanabilirsiniz. Bu örnek, abonelik genelinde atanabilir kapsamla rolü oluşturur.

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
    ]
  }
}

Şablonu dağıttığınızda, şablonun Yayımcı kaynaklarıyla aynı abonelikte dağıtılması gerekir.

az login

az account set --subscription <publisher subscription>

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

Azure portalını kullanarak özel rol oluşturma

Azure portalını kullanarak özel bir rol oluşturun. Daha fazla bilgi için bkz. Azure portalını kullanarak Azure özel rolleri oluşturma veya güncelleştirme

İsterseniz, özel rol değerlerinizin çoğunu bir JSON dosyasında belirtebilirsiniz.

Örnek 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]"
        ]
      }
    }
  ]
}

Sonraki adımlar