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:

  1. DisplayName: nome del ruolo personalizzato
  2. Descrizione: breve descrizione del ruolo che riepiloga l'accesso concesso dal ruolo.
  3. 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.
  1. 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:
  1. 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.
  2. DataActions: set di operazioni sui dati a cui il ruolo personalizzato concede l'accesso.
  3. 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.Archiviazione/storageAccounts/blobServices/containers/blobs/read" ], "NotDataActions": [ "Microsoft.Archiviazione/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

Type:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputFile

Nome file contenente una singola definizione di ruolo JSON.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Role

Oggetto definizione ruolo.

Type:PSRoleDefinition
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Input

None

Output

PSRoleDefinition

Note

Parole chiave: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment