New-AzRoleDefinition

Crea un ruolo personalizzato in Azure controllo degli accessi in base al ruolo. Specificare un file di definizione del ruolo JSON o un oggetto PSRoleDefinition come input. Usare prima di tutto il comando Get-AzRoleDefinition 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.

Sintassi

InputFileParameterSet

New-AzRoleDefinition
    [-InputFile] <String>
    [-SkipClientSideScopeValidation]
    [-DefaultProfile <IAzureContextContainer>]
    [<CommonParameters>]

RoleDefinitionParameterSet

New-AzRoleDefinition
    [-Role] <PSRoleDefinition>
    [-SkipClientSideScopeValidation]
    [-DefaultProfile <IAzureContextContainer>]
    [<CommonParameters>]

Descrizione

Il cmdlet New-AzRoleDefinition crea un ruolo personalizzato in Azure Role-Based Controllo di accesso. 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. Nome: nome del ruolo personalizzato
  2. Descrizione: breve descrizione del ruolo che riepiloga l'accesso concesso dal ruolo.
  3. Autorizzazioni: una matrice di oggetti autorizzazione, ognuno contenente Actions e/o DataActions. Usare Get-AzProviderOperation per ottenere l'operazione per i provider di risorse Azure che possono essere protetti usando Azure controllo degli accessi in base al ruolo. Di seguito sono riportate alcune stringhe di operazione valide:
    • "*/read" concede l'accesso alle operazioni di lettura di tutti i provider di risorse Azure.
    • "Microsoft. Network/*/read" concede l'accesso alle operazioni di lettura per tutti i tipi di risorse nel Microsoft. Provider di risorse di rete di Azure.
    • "Microsoft. Compute/virtualMachines/*" concede l'accesso a tutte le operazioni delle macchine virtuali e ai relativi tipi di risorse figlio.
  4. AssignableScopes: set di ambiti (Azure sottoscrizioni o gruppi di risorse) in cui il ruolo personalizzato sarà disponibile per l'assegnazione. 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.

Ogni oggetto autorizzazione nella matrice Permissions PUÒ contenere:

  1. Azioni: set di operazioni del piano di controllo a cui il ruolo personalizzato concede l'accesso.
  2. NotActions: set di operazioni che devono essere escluse dalle azioni per determinare le azioni effettive.
  3. DataActions: set di operazioni del piano dati a cui il ruolo personalizzato concede l'accesso.
  4. NotDataActions: set di operazioni che devono essere escluse da DataActions.
  5. Condizione: condizione Attribute-Based Controllo di accesso (ABAC) che limita le autorizzazioni.
  6. ConditionVersion: versione della sintassi della condizione, ad esempio "2.0" (obbligatorio se viene specificato Condition).

Annotazioni

L'API controllo degli accessi in base al ruolo Azure supporta attualmente solo un singolo elemento nella matrice Permissions durante la creazione di ruoli personalizzati. Mentre il modello di dati supporta più voci di autorizzazione, le operazioni di creazione devono usare esattamente un oggetto autorizzazione.

Di seguito è riportata una definizione di ruolo JSON di esempio che può essere fornita come input: { "Name": "Custom VM Operator", "Description": "Can monitor all resources and start and restart virtual machines", "Permissions": [ { "Actions": [ "/read", "Microsoft. Calcolo/virtualMachines/restart/action", "Microsoft. Compute/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

Esempio 1: Creare un ruolo personalizzato usando l'oggetto PSRoleDefinition

$role = New-Object -TypeName Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition
$role.Name = 'Virtual Machine Operator'
$role.Description = 'Can monitor, start, and restart virtual machines.'
$role.IsCustom = $true
$role.AssignableScopes = @("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
$permission = New-Object -TypeName Microsoft.Azure.Commands.Resources.Models.Authorization.PSPermission
$permission.Actions = @(
    "Microsoft.Compute/*/read"
    "Microsoft.Compute/virtualMachines/start/action"
    "Microsoft.Compute/virtualMachines/restart/action"
    "Microsoft.Network/*/read"
    "Microsoft.Storage/*/read"
    "Microsoft.Authorization/*/read"
    "Microsoft.Resources/subscriptions/resourceGroups/read"
    "Microsoft.Resources/subscriptions/resourceGroups/resources/read"
    "Microsoft.Insights/alertRules/*"
    "Microsoft.Support/*"
)
$role.Permissions = @($permission)

New-AzRoleDefinition -Role $role

Crea un ruolo personalizzato denominato "Operatore macchina virtuale" con le azioni specificate.

Esempio 2: Creare un ruolo personalizzato usando il file JSON

New-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json

Crea un ruolo personalizzato da un file di definizione JSON.

Parametri

-DefaultProfile

Credenziali, account, tenant e sottoscrizione usati per la comunicazione con Azure

Proprietà dei parametri

Tipo:IAzureContextContainer
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:AzContext, AzureRmContext, AzureCredential

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-InputFile

Nome file contenente una singola definizione di ruolo JSON.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

InputFileParameterSet
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Role

Oggetto definizione ruolo.

Proprietà dei parametri

Tipo:PSRoleDefinition
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

RoleDefinitionParameterSet
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-SkipClientSideScopeValidation

Se specificato, ignorare la convalida dell'ambito lato client.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

Input

None

Output

PSRoleDefinition

Note

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