Bagikan melalui


Membuat peran kustom

Dalam panduan cara ini, Anda mempelajari cara membuat peran kustom untuk Operator Layanan. Peran kustom menyediakan izin yang diperlukan untuk mengakses sumber daya Penerbit Azure Operator Service Manager (AOSM) saat menyebarkan Layanan Jaringan Situs (SNS).

Prasyarat

Hubungi tim akun Microsoft Anda untuk mendaftarkan langganan Azure Anda untuk akses ke Azure Operator Service Manager (AOSM) atau ekspresikan minat Anda melalui formulir pendaftaran mitra.

Izin/Tindakan yang diperlukan oleh peran kustom

  • 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

Tentukan cakupan

Tentukan cakupan yang Anda inginkan agar peran dapat ditetapkan:

  • Jika sumber daya penerbit berada dalam satu grup sumber daya, Anda dapat menggunakan cakupan yang dapat ditetapkan dari grup sumber daya tersebut.

  • Jika sumber daya penerbit tersebar di beberapa grup sumber daya dalam satu langganan, Anda harus menggunakan cakupan langganan yang dapat ditetapkan.

  • Jika sumber daya penerbit tersebar di beberapa langganan, Anda harus membuat peran kustom yang dapat ditetapkan untuk masing-masing langganan ini.

Membuat peran kustom menggunakan Bicep

Buat peran kustom menggunakan Bicep. Untuk informasi selengkapnya, lihat Membuat atau memperbarui peran kustom Azure menggunakan Bicep

Sebagai contoh, Anda dapat menggunakan sampel berikut sebagai templat main.bicep. Sampel ini membuat peran dengan cakupan yang dapat ditetapkan di seluruh langganan.

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

Saat Anda menyebarkan templat, templat harus disebarkan dalam langganan yang sama dengan sumber daya Publisher.

az login

az account set --subscription <publisher subscription>

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

Membuat peran kustom menggunakan portal Azure

Buat peran kustom menggunakan portal Azure. Untuk informasi selengkapnya, lihat Membuat atau memperbarui peran kustom Azure menggunakan portal Azure

Jika diinginkan, Anda dapat menentukan sebagian besar nilai peran kustom Anda dalam file JSON.

JSON Sampel:

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

Langkah berikutnya