カスタム ロールを作成する
このハウツー ガイドでは、サービス オペレーターのカスタム ロールを作成する方法について説明します。 カスタム ロールは、Site Network Service (SNS) を展開するときに Azure Operator Service Manager (AOSM) パブリッシャー リソースにアクセスするために必要なアクセス許可を提供します。
前提条件
Microsoft アカウント チームに連絡して、Azure Operator Service Manager (AOSM) にアクセスするための Azure サブスクリプションを登録するか、パートナー登録フォームで関心を示してください。
カスタム ロールに必要なアクセス許可/アクション
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]"
]
}
}
]
}