Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questa guida pratica si apprenderà come:
- Creare un'identità gestita assegnata dall'utente da usare con Azure Operator Service Manager (AOSM)
- Assegnare autorizzazioni UAMI per accedere alle risorse necessarie.
- Usare un UAMI durante l'esecuzione di operazioni NF (Network Network Function) o SNS (Site Network Service).
Avvertimento
UAMI è obbligatorio in cui un'operazione SNS prevista può essere eseguita per quattro o più ore. Se UAMI non viene usato durante le operazioni SNS a esecuzione prolungata, SNS potrebbe segnalare un falso stato di errore prima del completamento delle operazioni del componente.
Prerequisiti
È necessario creare un ruolo personalizzato tramite Crea un ruolo personalizzato. Questo articolo presuppone che il ruolo personalizzato sia chiamato "Ruolo personalizzato - Accesso dell'operatore del servizio AOSM al Publisher".
È necessario collaborare con Network Service Designer per comprendere le autorizzazioni richieste dall'identità gestita e la versione NFDV (Network Function Definition Version) usata da SNS.
È necessario il ruolo "Proprietario" o "Amministratore accesso utenti" sulla risorsa Versione della definizione della funzione di rete dal Publisher scelto. È inoltre necessario disporre di un gruppo di risorse su cui si dispone dell'assegnazione di ruolo "Proprietario" o "Amministratore accesso utenti".
Creare un UAMI
Creare prima di tutto un UAMI. Per informazioni dettagliate, consultare Creare un'identità gestita assegnata dall'utente per il tuo SNS.
Creare un ruolo personalizzato e assegnarlo a UAMI
Creare quindi un ruolo personalizzato. Per iniziare, considerate l'approccio migliore basato sull'ambito, quindi create e assegnate il ruolo al vostro nuovo UAMI.
Considerazioni sull'ambito per il ruolo personalizzato di un'identità gestita assegnata dall'utente (UAMI)
Al ruolo personalizzato devono essere assegnate autorizzazioni sufficienti per accedere alle risorse utente. Il ruolo personalizzato può essere assegnato a singole risorse figlio, ad esempio un NFDV, per garantire il controllo più granulare. In alternativa, il ruolo personalizzato può avere come ambito una risorsa padre, ad esempio il gruppo di risorse dell'autore, che concede accesso equo a tutte le risorse figlio. Per un funzionamento appropriato, singolarmente o tramite padre, è necessario assegnare tutte le risorse seguenti al ruolo personalizzato:
- Tutte le versioni e i gruppi di definizioni di funzione di rete (NFDG).
- Tutte le versioni e la definizione della funzione di rete (NFD).
- Tutti i gruppi di progettazione dei servizi di rete (NSD) e le versioni.
- Tutti gli schemi del gruppo di configurazione (CGS) e le versioni.
- Tutte le posizioni personalizzate.
Consenti autorizzazioni appropriate per l'ambito scelto
L'UAMI necessita delle autorizzazioni individuali seguenti per eseguire le operazioni SNS necessarie:
- Sul NFD;
- Microsoft.HybridNetwork/publishers/networkFunctionDefinitionGroups/networkFunctionDefinitionVersions/use/action
- Microsoft.HybridNetwork/Publishers/NetworkFunctionDefinitionGroups/NetworkFunctionDefinitionVersions/read
- Sul NSD;
- Microsoft.HybridNetwork/publishers/networkServiceDesignGroups/networkServiceDesignVersions/use/action
- Microsoft.HybridNetwork/publishers/networkServiceDesignGroups/networkServiceDesignVersions/read
- Sul CGS;
- Microsoft.HybridNetwork/Publishers/ConfigurationGroupSchemas/read
- Nella posizione personalizzata;
- Microsoft.ExtendedLocation/customLocations/deploy/action
- Microsoft.ExtendedLocation/customLocations/read
- Inoltre, l'identità gestita assegnata dall'utente necessita di accesso diretto;
- Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
Se si usa un approccio di ambito delle risorse padre, le autorizzazioni necessarie verrebbero applicate alla risorsa padre.
Annotazioni
Non fornire l'accesso in scrittura o eliminazione a nessuna di queste risorse dell'editore.
Assegnare un ruolo personalizzato tramite il portale
Accedere al portale di Azure e aprire l'ambito della risorsa scelto: ad esempio, Gruppo di risorse di pubblicazione o Definizione della funzione di rete versione.
Nel menu laterale di questa voce selezionare Controllo di accesso (IAM).
Scegliere Aggiungi assegnazione di ruolo.
In Ruoli funzione lavorativa trova il ruolo personalizzato nell'elenco e quindi procedi con Avanti.
Selezionare Identità gestita, quindi Scegliere + Seleziona membri , quindi trovare e scegliere la nuova identità gestita. Scegli Seleziona.
Selezionare Rivedi e assegna.
Ripetere l'assegnazione di ruolo
Ripetere il processo di assegnazione dei ruoli per tutte le risorse rimanenti in base all'approccio di ambito scelto.
Assegnare il ruolo di operatore dell'identità gestita tramite il portale
Passare al portale di Azure e cercare Identità gestite.
Seleziona la tua identità dall'elenco delle Identità Gestite.
Nel menu a sinistra selezionare Controllo di accesso (IAM).
Scegliere Aggiungi assegnazione di ruolo e selezionare il ruolo Operatore identità gestita .
Selezionare il ruolo Operatore di identità gestita.
Selezionare Identità gestita.
Seleziona + Seleziona membri e naviga verso l'identità gestita assegnata all'utente e procedi all'assegnazione.
Il completamento di tutte le attività descritte in questo articolo garantisce che il servizio di rete del sito disponga delle autorizzazioni necessarie per funzionare in modo efficace all'interno dell'ambiente Azure specificato.
Creare e assegnare autorizzazioni a un'identità gestita assegnata dall'utente tramite Bicep
Le operazioni necessarie per creare e assegnare le autorizzazioni sono supportate anche tramite gli script Bicep. Questo approccio può funzionare meglio quando è necessaria l'automazione di queste operazioni all'interno di una pipeline del flusso di lavoro. L'esempio seguente illustra le operazioni Bicep necessarie per stabilire l'identità gestita assegnata dall'utente con ruoli assegnati minimi. Espandere l'assegnazione di ruolo, se necessario, in base all'approccio di ambito.
// ----------- 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'
}
}
Utilizzare un'identità gestita assegnata dall'utente con operazioni NF e SNS
Considerazioni sul modello NF
Il modello NF deve essere aggiornato per includere il parametro identityObj. L'esempio JSON seguente illustra l'uso di questo parametro con una configurazione NF generica:
{
"$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'))]"
}
}
]
}
Considerazioni sul modello SNS
Il modello SNS deve essere aggiornato per includere il parametro della risorsa identità. Il seguente esempio di Bicep dimostra l'utilizzo di questo parametro con una configurazione generica di 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
}
}
}
}