Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве вы узнаете:
- Создание назначаемого пользователем управляемого удостоверения (UAMI) для использования с Диспетчером Сервисов Оператора Azure (AOSM)
- Назначьте разрешения UAMI для доступа к необходимым ресурсам.
- Используйте UAMI при выполнении операций сетевой функции (NF) или сетевой службы сайта (SNS).
Предупреждение
UAMI требуется, если ожидаемая операция SNS может длиться четыре или более часов. Если UAMI не используется во время длительных операций SNS, SNS может ложно сообщить о состоянии сбоя до завершения операций компонентов.
Предпосылки
Необходимо создать пользовательскую роль с помощью создания настраиваемой роли. В этой статье предполагается, что вы назвали пользовательскую роль "Пользовательская роль — доступ оператора службы AOSM к издателю".
Вы должны работать с вашим конструктором сетевых служб, чтобы понять разрешения, необходимые вашему управляемому удостоверению, и какие версии определения сетевых функций (NFDV) использует ваш SNS.
Вам потребуется роль "владельца" или "администратора доступа пользователей" для ресурса версии определения сетевой функции от выбранного издателя. Кроме того, у вас должна быть группа ресурсов, для которой назначена роль "Владелец" или "Администратор доступа пользователей".
Создайте UAMI
Сначала создайте UAMI. Дополнительные сведения см. в статье "Создание управляемой идентичности, назначенной пользователем для вашей SNS".
Создайте настраиваемую роль и назначьте её UAMI
Затем создайте пользовательскую роль. Начните с рассмотрения оптимального подхода на основе областей, а затем создайте и назначьте роль новому UAMI.
Вопросы охвата для пользовательской роли UAMI
Пользовательской роли должно быть назначено достаточно разрешений для доступа к пользовательским ресурсам. Пользовательская роль может применяться к отдельным дочерним ресурсам, например, NFDV, для наиболее детализированного управления. Или пользовательская роль может быть областью родительского ресурса, например группы ресурсов издателя, которая предоставляет равный доступ ко всем дочерним ресурсам. Для надлежащих операций, как по отдельности, так и через родителя, необходимо назначить всем приведенным ниже ресурсам настраиваемую роль.
- Все группы определения функций сети (NFDG) и их версии.
- Все определения сетевой функции (NFD) и их версии.
- Все группы разработки сетевых служб (NSD) и версии.
- Все схемы и версии групп конфигурации (CGS).
- Все пользовательские местоположения.
Предоставьте соответствующие разрешения для выбранной области
UAMI требует следующих отдельных разрешений для выполнения необходимых операций SNS:
- На NFD;
- Microsoft.HybridNetwork/publishers/networkFunctionDefinitionGroups/networkFunctionDefinitionVersions/use/action
- Microsoft.HybridNetwork/Publishers/NetworkFunctionDefinitionGroups/NetworkFunctionDefinitionVersions/read
- На NSD;
- Microsoft.HybridNetwork/publishers/networkServiceDesignGroups/networkServiceDesignVersions/use/action
- Microsoft.HybridNetwork/publishers/networkServiceDesignGroups/networkServiceDesignVersions/read
- В CGS;
- Microsoft.HybridNetwork/Publishers/ConfigurationGroupSchemas/read
- В пользовательском расположении;
- Microsoft.ExtendedLocation/customLocations/deploy/action
- Microsoft.ExtendedLocation/customLocations/read
- Кроме того, для UAMI требуется доступ к самому себе;
- Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
Если используется подход к родительской области ресурсов, к родительскому ресурсу будут применены необходимые разрешения.
Замечание
Не предоставляйте доступ к записи или удалению любого из этих ресурсов издателя.
Назначение настраиваемой роли с помощью портала
Перейдите на портал Azure и откройте выбранную область ресурсов; Например, группа ресурсов издателя или версия определения сетевой функции.
В боковом меню этого элемента выберите элемент управления доступом (IAM).
Выберите " Добавить назначение ролей".
В разделе «Роли рабочих функций» найдите свою пользовательскую роль в списке и нажмите Далее.
Выберите управляемое удостоверение, а затем нажмите кнопку "Выбрать участников ", а затем найдите и выберите новое управляемое удостоверение. Нажмите кнопку "Выбрать".
Выберите Рецензирование и назначение.
Повторите назначение роли
Повторите процесс назначения ролей для всех оставшихся ресурсов, учитывая выбранный подход к области.
Назначение роли оператора управляемого удостоверения с помощью портала
Перейдите к портал Azure и найдите управляемые удостоверения.
Выберите ваше удостоверение из списка управляемых удостоверений.
В боковом меню выберите контроль доступа (IAM).
Выберите "Добавить назначение ролей " и выберите роль "Оператор управляемых удостоверений ".
Выберите роль Оператора Управляемого Удостоверения.
Выберите Управляемое удостоверение.
Выберите + Добавить участников и перейдите к управляемому удостоверению, назначенному пользователем, чтобы продолжить назначение.
Выполнение всех задач, описанных в этой статье, гарантирует, что служба сети сайта (SNS) имеет необходимые разрешения для эффективной работы в указанной среде Azure.
Создание и назначение разрешений для UAMI с использованием Bicep
Необходимые операции для создания и назначения разрешений также поддерживаются с помощью скриптов bicep. Этот подход может повысить эффективность автоматизации этих операций в конвейере рабочего процесса. В следующем примере показаны операции Bicep, необходимые для создания UAMI с минимально назначенными ролями. При необходимости расширьте назначение ролей в зависимости от подхода к сфере.
// ----------- MIO Role Definition -----------
// This role is used to assign the Managed Identity Operator role to the User Assigned Managed Identity (UAMI).
@description('This is the built-in MIO role. See https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#managed-identity-operator')
resource MIORoleDefinition 'Microsoft.Authorization/roleDefinitions@2018-01-01-preview' existing = {
scope: managedIdentity
name: 'f1a07417-d97a-45cb-824c-7a7467783830'
}
// This role is used to assign the Contributor role to the User Assigned Managed Identity (UAMI) at the resource group level.
resource ContributorRoleDefinition 'Microsoft.Authorization/roleDefinitions@2018-01-01-preview' existing = {
scope: subscription()
name: 'b24988ac-6180-42a0-ab88-20f7382dd24c'
}
// Assign the Managed Identity Operator role to the User Assigned Managed Identity (UAMI) at the scope of the managed identity.
resource roleAssignment 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = {
name: guid(resourceGroup().id, principalId, MIORoleDefinition.id)
scope: managedIdentity
properties: {
roleDefinitionId: MIORoleDefinition.id
principalId: managedIdentity.properties.principalId
principalType: 'ServicePrincipal'
}
}
// Get reference to the target resource group
resource targetRg 'Microsoft.Resources/resourceGroups@2022-09-01' existing = {
name: 'publisherResourceGroupName' // Replace with the actual resource group name
scope: subscription('subscriptionId')
}
// Assign the Contributor role to the User Assigned Managed Identity (UAMI) at the scope of the publisher resource group.
resource roleAssignmentContributor 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = {
name: guid(resourceGroup().id, principalId, ContributorRoleDefinition.id)
scope: targetRg
properties: {
roleDefinitionId: ContributorRoleDefinition.id
principalId: managedIdentity.properties.principalId
principalType: 'ServicePrincipal'
}
}
Используйте UAMI в операциях NF и SNS
Рекомендации по шаблону NF
Чтобы включить параметр identityObj, необходимо обновить шаблон NF. В следующем примере JSON демонстрируется использование этого параметра с универсальной настройкой NF:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"nameValue": {
"type": "string",
"defaultValue": "[concat('anf-', substring(uniqueString(deployment().name), 0, 6))]"
},
"locationValue": {
"type": "string",
"defaultValue": "eastus2euap"
},
"nfviTypeValue": {
"type": "string",
"defaultValue": "AzureArcKubernetes"
},
"nfviIdValue": {
"type": "string"
},
"config": {
"type": "object",
"defaultValue": {}
},
"nfdvId": {
"type": "string"
},
"identityObj": {
"type": "object",
"defaultValue": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionId>/resourceGroups/<rgName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<uaminame>": {}
}
}
}
},
"variables": {
"deploymentValuesValue": "[string(createObject('role1releasenamespace', parameters('config').role1releasenamespace, 'role1releasename',parameters('config').role1releasename, 'role2releasenamespace', parameters('config').role2releasenamespace, 'role2releasename',parameters('config').role2releasename,'role3releasenamespace', parameters('config').role3releasenamespace, 'role3releasename',parameters('config').role3releasename))]",
"nfName": "[concat(parameters('nameValue'), '-CNF')]"
},
"resources": [
{
"type": "Microsoft.HybridNetwork/networkFunctions",
"apiVersion": "2024-04-15",
"name": "[variables('nfName')]",
"location": "[parameters('locationValue')]",
"identity": "[parameters('identityObj')]",
"properties": {
"networkFunctionDefinitionVersionResourceReference": {
"id": "[parameters('nfdvId')]",
"idType": "Open"
},
"nfviType": "[parameters('nfviTypeValue')]",
"nfviId": "[parameters('nfviIdValue')]",
"allowSoftwareUpdate": true,
"configurationType": "Secret",
"secretDeploymentValues": "[string(variables('deploymentValuesValue'))]"
}
}
]
}
Особенности шаблона для социального сервиса SNS
Чтобы включить параметр ресурса удостоверения, необходимо обновить шаблон SNS. В примере bicep ниже демонстрируется использование этого параметра с общей настройкой SNS.
resource azCoreSnsUAMI 'Microsoft.HybridNetwork/sitenetworkservices@2023-09-01' = {
name: snsNameUAMI
location: location
sku: {
name: 'Standard'
}
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'${managedIdentity.id}': {}
}
}
properties: {
siteReference: {
id: azCoreSite.id
}
networkServiceDesignVersionResourceReference: {
id: nsdv.id
idType: 'Open'
}
desiredStateConfigurationGroupValueReferences: {
Test_Configuration: {
id: azCoreCgv.id
}
Secret_Configuration:{
id:azCoreCgvSecret.id
}
}
}
}