次の方法で共有


カスタム ロールを作成する

このハウツー ガイドでは、サービス オペレーターのカスタム ロールを作成する方法について説明します。 カスタム ロールは、Site Network Service (SNS) を展開するときに Azure Operator Service Manager (AOSM) パブリッシャー リソースにアクセスするために必要なアクセス許可を提供します。

[前提条件]

Azure Operator Service Manager (AOSM) にアクセスするための Azure サブスクリプションの登録については、Microsoft アカウント チームにお問い合わせいただくか、関心をお持ちであることをパートナー登録フォームからお知らせください。

カスタム ロールに必要なアクセス許可/アクション

  • 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

スコープを決定する

役割が割り当て可能となるスコープを決めてください。

  • パブリッシャー リソースが 1 つのリソース グループ内にある場合は、そのリソース グループの割り当て可能なスコープを使用できます。

  • パブリッシャー リソースが 1 つのサブスクリプション内の複数のリソース グループに分散されている場合は、そのサブスクリプションの割り当て可能なスコープを使用する必要があります。

  • パブリッシャー リソースが複数のサブスクリプションに分散されている場合は、これらの各サブスクリプションに割り当て可能なカスタム ロールを作成する必要があります。

Bicep を使用してカスタム ロールを作成する

Bicep を使用してカスタム ロールを作成します。 詳細については、「Bicep を使用した Azure カスタム ロールの作成または更新」を参照してください。

例として、次のサンプルをメインとして使用できます。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
    ]
  }
}

テンプレートをデプロイするときは、パブリッシャー リソースと同じサブスクリプションにデプロイする必要があります。

az login

az account set --subscription <publisher subscription>

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

Azure portal を使用してカスタム ロールを作成する

Azure portal を使用してカスタム ロールを作成します。 詳細については、Azure portal を使用した 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]"
        ]
      }
    }
  ]
}

次のステップ