New-AzureRmRoleDefinition
Crea un ruolo personalizzato nel controllo degli accessi in base al ruolo di Azure. Specificare un file di definizione del ruolo JSON o un oggetto PSRoleDefinition come input. Usare prima di tutto il comando Get-AzureRmRoleDefinition per generare un oggetto definizione del ruolo di base. Modificare quindi le relative proprietà in base alle esigenze. Usare infine questo comando per creare un ruolo personalizzato usando la definizione del ruolo.
Avviso
Il modulo AzureRM PowerShell è stato ufficialmente deprecato a partire dal 29 febbraio 2024. È consigliabile eseguire la migrazione da AzureRM al modulo Az PowerShell per garantire il supporto e gli aggiornamenti continui.
Anche se il modulo AzureRM può ancora funzionare, non è più gestito o supportato, posizionando qualsiasi uso continuo a discrezione e rischio dell'utente. Per indicazioni sulla transizione al modulo Az, vedere le risorse di migrazione.
Sintassi
New-AzureRmRoleDefinition
[-InputFile] <String>
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzureRmRoleDefinition
[-Role] <PSRoleDefinition>
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Descrizione
Il cmdlet New-AzureRmRoleDefinition crea un ruolo personalizzato nella Controllo di accesso basata su ruoli di Azure. Specificare una definizione di ruolo come input per il comando come file JSON o come oggetto PSRoleDefinition. La definizione del ruolo di input DEVE contenere le proprietà seguenti:
- DisplayName: nome del ruolo personalizzato
- Descrizione: breve descrizione del ruolo che riepiloga l'accesso concesso dal ruolo.
- Azioni: set di operazioni a cui il ruolo personalizzato concede l'accesso. Usare Get-AzureRmProviderOperation per ottenere l'operazione per i provider di risorse di Azure che possono essere protetti tramite il controllo degli accessi in base al ruolo di Azure. Di seguito sono riportate alcune stringhe di operazione valide:
- "*/read" concede l'accesso alle operazioni di lettura di tutti i provider di risorse di Azure.
- "Microsoft.Network/*/read" concede l'accesso alle operazioni di lettura per tutti i tipi di risorse nel provider di risorse Microsoft.Network di Azure.
- "Microsoft.Compute/virtualMachines/*" concede l'accesso a tutte le operazioni delle macchine virtuali e ai relativi tipi di risorse figlio.
- AssignableScopes: set di ambiti (sottoscrizioni di Azure o gruppi di risorse) in cui il ruolo personalizzato sarà disponibile per l'assegnazione. L'uso di AssignableScopes consente di rendere disponibile il ruolo personalizzato per l'assegnazione solo nelle sottoscrizioni o nei gruppi di risorse che ne hanno bisogno e non include l'esperienza utente per il resto delle sottoscrizioni o dei gruppi di risorse. Di seguito sono riportati alcuni ambiti assegnabili validi:
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e", "/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624": rende il ruolo disponibile per l'assegnazione in due sottoscrizioni.
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e": rende il ruolo disponibile per l'assegnazione in una singola sottoscrizione.
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e/resourceGroups/Network": rende disponibile il ruolo per l'assegnazione solo nel gruppo di risorse di rete. La definizione del ruolo di input PUÒ contenere le proprietà seguenti:
- NotActions: set di operazioni che devono essere escluse dalle azioni per determinare le azioni effettive per il ruolo personalizzato. Se è presente un'operazione specifica a cui non si vuole concedere l'accesso in un ruolo personalizzato, è consigliabile usare NotActions per escluderlo, anziché specificare tutte le operazioni diverse da quella specifica operazione in Azioni.
- DataActions: set di operazioni sui dati a cui il ruolo personalizzato concede l'accesso.
- NotDataActions: set di operazioni che devono essere escluse da DataActions per determinare le operazioni effettive per il ruolo personalizzato. Se è presente un'operazione di dati specifica a cui non si vuole concedere l'accesso in un ruolo personalizzato, è consigliabile usare NotDataActions per escluderla, anziché specificare tutte le operazioni diverse da quella specifica operazione in Azioni. NOTA: se a un utente viene assegnato un ruolo che specifica un'operazione in NotActions e a un altro ruolo viene concesso l'accesso alla stessa operazione. L'utente sarà in grado di eseguire tale operazione. NotActions non è una regola di negazione: è semplicemente un modo pratico per creare un set di operazioni consentite quando è necessario escludere operazioni specifiche. Di seguito è riportata una definizione di ruolo JSON di esempio che può essere fornita come input { "Name": "Updated Role", "Description": "Can monitor all resources and start and restart virtual machines", "Actions": [ "/read", "Microsoft.ClassicCompute/virtualmachines/restart/action", "Microsoft.ClassicCompute/virtualmachines/start/action" ], "NotActions": [ "/write" ], "DataActions": [ "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read" ], "NotDataActions": [ "Microsoft. Storage/storageAccounts/blobServices/containers/blobs/write" ], "AssignableScopes": ["/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"] }
Esempio
Creare con PSRoleDefinitionObject
PS C:\> $role = Get-AzureRmRoleDefinition -Name "Virtual Machine Contributor"
PS C:\> $role.Id = $null
PS C:\> $role.Name = "Virtual Machine Operator"
PS C:\> $role.Description = "Can monitor, start, and restart virtual machines."
PS C:\> $role.Actions.RemoveRange(0,$role.Actions.Count)
PS C:\> $role.Actions.Add("Microsoft.Compute/*/read")
PS C:\> $role.Actions.Add("Microsoft.Compute/virtualMachines/start/action")
PS C:\> $role.Actions.Add("Microsoft.Compute/virtualMachines/restart/action")
PS C:\> $role.Actions.Add("Microsoft.Compute/virtualMachines/downloadRemoteDesktopConnectionFile/action")
PS C:\> $role.Actions.Add("Microsoft.Network/*/read")
PS C:\> $role.Actions.Add("Microsoft.Storage/*/read")
PS C:\> $role.Actions.Add("Microsoft.Authorization/*/read")
PS C:\> $role.Actions.Add("Microsoft.Resources/subscriptions/resourceGroups/read")
PS C:\> $role.Actions.Add("Microsoft.Resources/subscriptions/resourceGroups/resources/read")
PS C:\> $role.Actions.Add("Microsoft.Insights/alertRules/*")
PS C:\> $role.Actions.Add("Microsoft.Support/*")
PS C:\> $role.AssignableScopes.Clear()
PS C:\> $role.AssignableScopes.Add("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
PS C:\> New-AzureRmRoleDefinition -Role $role
Creare usando il file JSON
PS C:\> New-AzureRmRoleDefinition -InputFile C:\Temp\roleDefinition.json
Parametri
-DefaultProfile
Credenziali, account, tenant e sottoscrizione usati per la comunicazione con Azure
Tipo: | IAzureContextContainer |
Alias: | AzureRmContext, AzureCredential |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-InputFile
Nome file contenente una singola definizione di ruolo JSON.
Tipo: | String |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Role
Oggetto definizione ruolo.
Tipo: | PSRoleDefinition |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
None
Output
Note
Parole chiave: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment