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:
- Nome: nome del ruolo personalizzato
- Descrizione: breve descrizione del ruolo che riepiloga l'accesso concesso dal ruolo.
- 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.
- 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:
- Azioni: set di operazioni del piano di controllo a cui il ruolo personalizzato concede l'accesso.
- NotActions: set di operazioni che devono essere escluse dalle azioni per determinare le azioni effettive.
- DataActions: set di operazioni del piano dati a cui il ruolo personalizzato concede l'accesso.
- NotDataActions: set di operazioni che devono essere escluse da DataActions.
- Condizione: condizione Attribute-Based Controllo di accesso (ABAC) che limita le autorizzazioni.
- 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