Sdílet prostřednictvím


New-AzureRmRoleDefinition

Vytvoří vlastní roli v Azure RBAC. Zadejte jako vstup soubor definice role JSON nebo objekt PSRoleDefinition. Nejprve pomocí příkazu Get-AzureRmRoleDefinition vygenerujte základní objekt definice role. Potom podle potřeby upravte jeho vlastnosti. Nakonec pomocí tohoto příkazu vytvořte vlastní roli pomocí definice role.

Upozorňující

Modul AzureRM PowerShell byl od 29. února 2024 oficiálně zastaralý. Uživatelům se doporučuje migrovat z AzureRM do modulu Az PowerShell, aby se zajistila nepřetržitá podpora a aktualizace.

I když může modul AzureRM stále fungovat, už se neudržuje ani nepodporuje, přičemž jakékoli další použití se bude umisťovat podle vlastního uvážení a rizika uživatele. Pokyny k přechodu na modul Az najdete v našich zdrojích informací o migraci.

Syntax

New-AzureRmRoleDefinition
   [-InputFile] <String>
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
New-AzureRmRoleDefinition
   [-Role] <PSRoleDefinition>
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

Description

Rutina New-AzureRmRoleDefinition vytvoří vlastní roli v řízení přístupu na základě role v Azure. Zadejte definici role jako vstup příkazu jako soubor JSON nebo OBJEKT PSRoleDefinition. Definice vstupní role musí obsahovat následující vlastnosti:

  1. DisplayName: název vlastní role
  2. Popis: Stručný popis role, která shrnuje přístup, který role uděluje.
  3. Akce: sada operací, ke kterým vlastní role uděluje přístup. Pomocí rutiny Get-AzureRmProviderOperation 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 ke operacím čtení všech poskytovatelů prostředků Azure.
  • Microsoft.Network/*/read uděluje přístup k operacím čtení pro všechny typy prostředků v poskytovateli prostředků Microsoft.Network v 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ů.
  1. AssignableScopes: sada oborů (předplatná Azure nebo skupiny prostředků), ve kterých bude vlastní role k dispozici pro přiřazení. Pomocí assignableScopes můžete vlastní roli zpřístupnit pro přiřazení pouze v předplatných nebo skupinách prostředků, které ho potřebují, a nepotřebné uživatelské prostředí pro zbývající předplatná nebo skupiny prostředků. 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ů. Definice vstupní role může obsahovat následující vlastnosti:
  1. NotActions: sada operací, které musí být vyloučeny z akcí, aby bylo možné určit efektivní akce pro vlastní roli. Pokud existuje konkrétní operace, ke které nechcete udělit přístup ve vlastní roli, je vhodné ji pomocí NotActions vyloučit, a nikoli určit všechny operace jiné než konkrétní operace v akcích.
  2. DataActions: sada datových operací, ke kterým vlastní role uděluje přístup.
  3. NotDataActions: sada operací, které musí být vyloučeny z DataActions k určení efektivních datových akcí pro vlastní roli. Pokud existuje konkrétní datová operace, ke které nechcete udělit přístup ve vlastní roli, je vhodné ji vyloučit pomocí NotDataActions, a nikoli zadat všechny operace jiné než konkrétní operace v akcích. POZNÁMKA: Pokud je uživateli přiřazena role, která určuje operaci v NotActions a také přiřazena jiná role uděluje přístup ke stejné operaci – uživatel bude moci tuto operaci provést. NotActions není pravidlo zamítnutí – jednoduše je to pohodlný způsob, jak vytvořit sadu povolených operací, když je potřeba vyloučit konkrétní operace. Následuje ukázková definice role JSON, kterou je možné zadat jako vstup { "Name": "Updated Role", "Description": "Can monitor all resources and start and restart virtual machines" (Může monitorovat všechny prostředky a spustit a restartovat virtuální počítače). "Actions": [ "/read", "Microsoft.ClassicCompute/virtualmachines/restart/action", "Microsoft.ClassicCompute/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-xxxxxxxx"] }

Příklady

Vytvoření pomocí 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

Vytvoření pomocí souboru JSON

PS C:\> New-AzureRmRoleDefinition -InputFile C:\Temp\roleDefinition.json

Parametry

-DefaultProfile

Přihlašovací údaje, účet, tenant a předplatné používané ke komunikaci s Azure

Typ:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
výchozí hodnota:None
Vyžadováno:False
Accept pipeline input:False
Accept wildcard characters:False

-InputFile

Název souboru obsahující jednu definici role JSON.

Typ:String
Position:0
výchozí hodnota:None
Vyžadováno:True
Accept pipeline input:False
Accept wildcard characters:False

-Role

Objekt definice role.

Typ:PSRoleDefinition
Position:0
výchozí hodnota:None
Vyžadováno:True
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

None

Výstupy

PSRoleDefinition

Poznámky

Klíčová slova: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment