다음을 통해 공유


사용자 지정 역할 만들기

이 방법 가이드에서는 서비스 운영자에 대한 사용자 지정 역할을 만드는 방법을 알아봅니다. 사용자 지정 역할은 SNS(Site Network Service)를 배포할 때 AOSM(Azure Operator Service Manager) 게시자 리소스에 액세스하는 데 필요한 권한을 제공합니다.

필수 조건

Microsoft 계정 팀에 문의하여 AOSM(Azure Operator Service Manager)에 액세스할 수 있도록 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

범위 결정

역할을 할당할 범위를 결정합니다.

  • 게시자 리소스가 단일 리소스 그룹에 있는 경우 해당 리소스 그룹의 할당 가능한 범위를 사용할 수 있습니다.

  • 게시자 리소스가 단일 구독 내의 여러 리소스 그룹에 분산된 경우 해당 구독의 할당 가능한 범위를 사용해야 합니다.

  • 게시자 리소스가 여러 구독에 분산된 경우 이러한 각 구독에 할당할 수 있는 사용자 지정 역할을 만들어야 합니다.

Bicep을 사용하여 사용자 지정 역할 만들기

Bicep을 사용하여 사용자 지정 역할을 만듭니다. 자세한 내용은 Bicep을 사용하여 사용자 지정 역할 만들기 또는 업데이트를 참조하세요.

예를 들어 main.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을 사용하여 사용자 지정 역할 만들기 또는 업데이트를 참조하세요.

원할 경우 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]"
        ]
      }
    }
  ]
}

다음 단계