New-AzRoleDefinition
Vytvoří vlastní roli v Azure RBAC. Zadejte jako vstup soubor definice role JSON nebo objekt PSRoleDefinition. Nejprve pomocí příkazu Get-AzRoleDefinition vygenerujte objekt definice základní role. Potom podle potřeby upravte jeho vlastnosti. Nakonec pomocí tohoto příkazu vytvořte vlastní roli pomocí definice role.
Syntax
InputFileParameterSet
New-AzRoleDefinition
[-InputFile] <String>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
RoleDefinitionParameterSet
New-AzRoleDefinition
[-Role] <PSRoleDefinition>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Description
Rutina New-AzRoleDefinition vytvoří vlastní roli v Azure Role-Based Access Control. Zadejte definici role jako vstup příkazu jako soubor JSON nebo OBJEKT PSRoleDefinition.
Definice vstupní role musí obsahovat následující vlastnosti:
- Název: název vlastní role
- Popis: Stručný popis role, která shrnuje přístup, který role uděluje.
- Oprávnění: pole objektů oprávnění, z nichž každý obsahuje Akce a/nebo DataActions.
Pomocí Get-AzProviderOperation získejte operaci pro poskytovatele prostředků Azure, kteří je možné zabezpečit pomocí Azure RBAC.
Následuje několik platných provozních řetězců:
- */read uděluje přístup k operacím čtení všech poskytovatelů prostředků Azure.
- "Microsoft. Síť/*/čtení" uděluje přístup k operacím čtení pro všechny typy prostředků v Microsoft. Poskytovatel síťových prostředků Azure
- "Microsoft. Compute/virtualMachines/*" uděluje přístup ke všem operacím virtuálních počítačů a jeho podřízeným typům prostředků.
- AssignableScopes: sada oborů (Azure předplatných nebo skupin prostředků), ve kterých bude vlastní role k dispozici pro přiřazení.
Tady jsou některé platné přiřaditelné obory:
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e", "/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624": zpřístupňuje roli pro přiřazení ve dvou předplatných.
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e": zpřístupňuje roli pro přiřazení v jednom předplatném.
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e/resourceGroups/Network": zpřístupňuje roli pro přiřazení pouze ve skupině síťových prostředků.
Každý objekt oprávnění v poli Oprávnění může obsahovat:
- Akce: sada operací řídicí roviny, ke kterým vlastní role uděluje přístup.
- NotActions: sada operací, které musí být vyloučeny z akcí k určení efektivních akcí.
- DataActions: sada operací roviny dat, ke kterým vlastní role uděluje přístup.
- NotDataActions: sada operací, které musí být vyloučeny z DataActions.
- Podmínka: podmínka Attribute-Based Access Control (ABAC), která omezuje oprávnění.
- ConditionVersion: verze syntaxe podmínky, například "2.0" (vyžaduje se, pokud je zadána podmínka).
Note
Rozhraní API Azure RBAC v současné době při vytváření vlastních rolí podporuje pouze jeden prvek v poli Oprávnění. I když datový model podporuje více položek oprávnění, operace vytvoření musí používat přesně jeden objekt oprávnění.
Následuje ukázka definice role JSON, kterou je možné zadat jako vstup: { "Name": "Custom VM Operator", "Description": "Can monitor all resources and start and restart virtual machines", "Permissions": [ { "Actions": [ "/read", "Microsoft". Compute/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"] }
Příklady
Příklad 1: Vytvoření vlastní role pomocí objektu 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
Vytvoří vlastní roli s názvem Operátor virtuálního počítače se zadanými akcemi.
Příklad 2: Vytvoření vlastní role pomocí souboru JSON
New-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json
Vytvoří vlastní roli z definičního souboru JSON.
Parametry
-DefaultProfile
Přihlašovací údaje, účet, tenant a předplatné používané ke komunikaci s Azure
Vlastnosti parametru
| Typ: | IAzureContextContainer |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | AzContext, AzureRmContext, AzureCredential |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-InputFile
Název souboru obsahující jednu definici role JSON.
Vlastnosti parametru
| Typ: | String |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
InputFileParameterSet
| Position: | 0 |
| Povinné: | True |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Role
Objekt definice role.
Vlastnosti parametru
| Typ: | PSRoleDefinition |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
RoleDefinitionParameterSet
| Position: | 0 |
| Povinné: | True |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-SkipClientSideScopeValidation
Pokud je zadáno, přeskočte ověření oboru na straně klienta.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
CommonParameters
Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.
Vstupy
None
Výstupy
PSRoleDefinition
Poznámky
Klíčová slova: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment