Dela via


New-AzureRmRoleDefinition

Skapar en anpassad roll i Azure RBAC. Ange antingen en JSON-rolldefinitionsfil eller ett PSRoleDefinition-objekt som indata. Använd först kommandot Get-AzureRmRoleDefinition för att generera ett definitionsobjekt för baslinjerollen. Ändra sedan dess egenskaper efter behov. Använd slutligen det här kommandot för att skapa en anpassad roll med hjälp av rolldefinitionen.

Varning

AzureRM PowerShell-modulen är officiellt inaktuell från och med den 29 februari 2024. Användare rekommenderas att migrera från AzureRM till Az PowerShell-modulen för att säkerställa fortsatt support och uppdateringar.

Även om AzureRM-modulen fortfarande kan fungera, underhålls den inte längre eller stöds, vilket gör att användaren kan välja och riskera fortsatt användning. Se våra migreringsresurser för vägledning om övergången till Az-modulen.

Syntax

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

Description

Cmdleten New-AzureRmRoleDefinition skapar en anpassad roll i rollbaserad åtkomstkontroll i Azure. Ange en rolldefinition som indata till kommandot som en JSON-fil eller ett PSRoleDefinition-objekt. Indatarolldefinitionen MÅSTE innehålla följande egenskaper:

  1. DisplayName: namnet på den anpassade rollen
  2. Beskrivning: en kort beskrivning av rollen som sammanfattar den åtkomst som rollen ger.
  3. Åtgärder: den uppsättning åtgärder som den anpassade rollen ger åtkomst till. Använd Get-AzureRmProviderOperation för att hämta åtgärden för Azure-resursprovidrar som kan skyddas med hjälp av Azure RBAC. Här följer några giltiga åtgärdssträngar:
  • "*/read" ger åtkomst till läsåtgärder för alla Azure-resursprovidrar.
  • "Microsoft.Network/*/read" ger åtkomst till läsåtgärder för alla resurstyper i Microsoft.Network-resursprovidern i Azure.
  • "Microsoft.Compute/virtualMachines/*" ger åtkomst till alla åtgärder för virtuella datorer och dess underordnade resurstyper.
  1. AssignableScopes: den uppsättning omfång (Azure-prenumerationer eller resursgrupper) där den anpassade rollen kommer att vara tillgänglig för tilldelning. Med AssignableScopes kan du göra den anpassade rollen tillgänglig för tilldelning i endast de prenumerationer eller resursgrupper som behöver den, och inte belamra användarupplevelsen för resten av prenumerationerna eller resursgrupperna. Här följer några giltiga tilldelningsbara omfång:
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e", "/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624": gör rollen tillgänglig för tilldelning i två prenumerationer.
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e": gör rollen tillgänglig för tilldelning i en enda prenumeration.
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e/resourceGroups/Network": gör rollen endast tillgänglig för tilldelning i nätverksresursgruppen. Indatarolldefinitionen kan innehålla följande egenskaper:
  1. NotActions: den uppsättning åtgärder som måste undantas från åtgärderna för att fastställa de effektiva åtgärderna för den anpassade rollen. Om det finns en specifik åtgärd som du inte vill bevilja åtkomst till i en anpassad roll är det praktiskt att använda NotActions för att exkludera den, i stället för att ange alla andra åtgärder än den specifika åtgärden i Åtgärder.
  2. DataActions: den uppsättning dataåtgärder som den anpassade rollen ger åtkomst till.
  3. NotDataActions: den uppsättning åtgärder som måste undantas från DataActions för att fastställa de effektiva dataåtgärderna för den anpassade rollen. Om det finns en specifik dataåtgärd som du inte vill bevilja åtkomst till i en anpassad roll är det praktiskt att använda NotDataActions för att exkludera den, i stället för att ange alla andra åtgärder än den specifika åtgärden i Åtgärder. Obs! Om en användare tilldelas en roll som anger en åtgärd i NotActions och även tilldelas en annan roll ger åtkomst till samma åtgärd kan användaren utföra åtgärden. NotActions är inte en neka-regel – det är helt enkelt ett bekvämt sätt att skapa en uppsättning tillåtna åtgärder när specifika åtgärder måste undantas. Följande är ett exempel på en json-rolldefinition som kan anges som indata { "Name": "Updated Role", "Description": "Can monitor all resources and start and restart virtual machines", "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-xxxxxxxxxxxxxx"] } }

Exempel

Skapa med 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

Skapa med JSON-fil

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

Parametrar

-DefaultProfile

Autentiseringsuppgifter, konto, klientorganisation och prenumeration som används för kommunikation med Azure

Typ:IAzureContextContainer
Alias:AzureRmContext, AzureCredential
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-InputFile

Filnamn som innehåller en enda json-rolldefinition.

Typ:String
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Role

Rolldefinitionsobjekt.

Typ:PSRoleDefinition
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:False
Godkänn jokertecken:False

Indata

None

Utdata

PSRoleDefinition

Kommentarer

Nyckelord: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment