Créer un rôle personnalisé
Dans ce guide pratique, vous allez apprendre à créer un rôle personnalisé pour les opérateurs de service. Un rôle personnalisé fournit les autorisations nécessaires pour accéder aux ressources du serveur de publication Azure Operator Service Manager (AOSM) lors du déploiement d’un service de réseau de site (SNS).
Prérequis
Contactez votre équipe de compte Microsoft pour inscrire votre abonnement Azure pour accéder à Azure Operator Service Manager (AOSM) ou exprimer votre intérêt via le formulaire d’inscription du partenaire.
Autorisations/actions requises par le rôle personnalisé
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
Décider de l’étendue
Déterminez l’étendue à laquelle vous souhaitez attribuer le rôle :
Si les ressources de l’éditeur se trouvent dans un groupe de ressources unique, vous pouvez utiliser l’étendue assignable de ce groupe de ressources.
Si les ressources de l’éditeur sont réparties entre plusieurs groupes de ressources au sein d’un seul abonnement, vous devez utiliser l’étendue assignable de cet abonnement.
Si les ressources de l’éditeur sont réparties sur plusieurs abonnements, vous devez créer un rôle personnalisé assignable à chacun de ces abonnements.
Créer un rôle personnalisé à l’aide de Bicep
Créez un rôle personnalisé à l’aide de Bicep. Pour plus d’informations, consultez Créer ou mettre à jour des rôles personnalisés Azure à l’aide de Bicep
Par exemple, vous pouvez utiliser l’exemple suivant comme modèle main.bicep. Cet exemple crée le rôle avec une étendue assignable à l’échelle de l’abonnement.
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
]
}
}
Lorsque vous déployez le modèle, il doit être déployé dans le même abonnement que les ressources du serveur de publication.
az login
az account set --subscription <publisher subscription>
az deployment sub create --location <location> --name customRole --template-file main.bicep
Créer un rôle personnalisé à l’aide de l’Portail Azure
Créez un rôle personnalisé à l’aide de Portail Azure. Pour plus d’informations, consultez Créer ou mettre à jour des rôles personnalisés Azure à l’aide de Portail Azure
Si vous préférez, vous pouvez spécifier la plupart des valeurs de votre rôle personnalisé dans un fichier JSON.
Exemple de code 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]"
]
}
}
]
}