Teilen über


Erstellen einer benutzerdefinierten Rolle

In dieser Anleitung erfahren Sie, wie Sie eine benutzerdefinierte Rolle für Dienstanbieter erstellen. Eine benutzerdefinierte Rolle bietet die erforderlichen Berechtigungen für den Zugriff auf Azure Operator Service Manager (AOSM)-Publisher-Ressourcen bei der Bereitstellung eines Standortnetzwerkdiensts (Site Network Service, SNS).

Voraussetzungen

Wenden Sie sich an Ihr Microsoft-Kontoteam, um Ihr Azure-Abonnement für den Zugriff auf Azure Operator Service Manager (AOSM) zu registrieren oder Ihr Interesse über das Partnerregistrierungsformular auszudrücken.

Berechtigungen/Aktionen, die von der benutzerdefinierten Rolle erforderlich sind

  • Microsoft.HybridNetwork/Publisher/NetworkFunctionDefinitionGroups/NetworkFunctionDefinitionVersions/use/action

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

  • Microsoft.HybridNetwork/Publisher/NetworkServiceDesignGroups/NetworkServiceDesignVersions/use/action

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

  • Microsoft.HybridNetwork/Publisher/ConfigurationGroupSchemas/read

Festlegen des Bereichs

Legen Sie den Bereich fest, dem die Rolle zugewiesen werden soll:

  • Wenn sich die Herausgeberressourcen in einer einzelnen Ressourcengruppe befinden, können Sie den zuordnungsfähigen Bereich dieser Ressourcengruppe verwenden.

  • Wenn die Herausgeberressourcen über mehrere Ressourcengruppen innerhalb eines einzelnen Abonnements verteilt sind, müssen Sie den zuweisungsfähigen Bereich dieses Abonnements verwenden.

  • Wenn die Herausgeberressourcen über mehrere Abonnements verteilt sind, müssen Sie eine benutzerdefinierte Rolle erstellen, die jedem dieser Abonnements zugewiesen werden kann.

Erstellen einer benutzerdefinierten Rolle mithilfe von Bicep

Erstellen Sie eine benutzerdefinierte Rolle mit Bicep. Weitere Informationen finden Sie unter Erstellen oder Aktualisieren von benutzerdefinierten Azure-Rollen mit Bicep

Als Beispiel können Sie das folgende Beispiel als vorlage "Standard.bicep" verwenden. In diesem Beispiel wird die Rolle mit abonnementweitem zuzuweisenden Bereich erstellt.

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

Wenn Sie die Vorlage bereitstellen, sollte sie im selben Abonnement wie die Publisher-Ressourcen bereitgestellt werden.

az login

az account set --subscription <publisher subscription>

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

Erstellen einer benutzerdefinierten Rolle mithilfe der Azure-Portal

Erstellen Sie eine benutzerdefinierte Rolle mit Azure-Portal. Weitere Informationen finden Sie unter Erstellen oder Aktualisieren von benutzerdefinierten Azure-Rollen mithilfe von Azure-Portal

Sie können die meisten Werte Ihrer benutzerdefinierten Rolle in einer JSON-Datei angeben.

JSON-Beispielcode:

{
  "$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]"
        ]
      }
    }
  ]
}

Nächste Schritte