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:

  1. Název: název vlastní role
  2. Popis: Stručný popis role, která shrnuje přístup, který role uděluje.
  3. 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ů.
  4. 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:

  1. Akce: sada operací řídicí roviny, ke kterým vlastní role uděluje přístup.
  2. NotActions: sada operací, které musí být vyloučeny z akcí k určení efektivních akcí.
  3. DataActions: sada operací roviny dat, ke kterým vlastní role uděluje přístup.
  4. NotDataActions: sada operací, které musí být vyloučeny z DataActions.
  5. Podmínka: podmínka Attribute-Based Access Control (ABAC), která omezuje oprávnění.
  6. 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