New-AzRoleDefinition

Skapar en anpassad roll i Azure RBAC. Ange antingen en JSON-rolldefinitionsfil eller ett PSRoleDefinition-objekt som indata. Använd först kommandot Get-AzRoleDefinition 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.

Syntax

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

Description

Cmdleten New-AzRoleDefinition 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-AzProviderOperation för att hämta åtgärden för Azure-resursproviders 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

Exempel 1: Skapa med PSRoleDefinitionObject

$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")
$role.Actions = @(
    "Microsoft.Compute/*/read"
    "Microsoft.Compute/virtualMachines/start/action"
    "Microsoft.Compute/virtualMachines/restart/action"
    "Microsoft.Compute/virtualMachines/downloadRemoteDesktopConnectionFile/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/*"
)

New-AzRoleDefinition -Role $role

Exempel 2: Skapa med JSON-fil

New-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json

Parametrar

-DefaultProfile

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

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputFile

Filnamn som innehåller en enda json-rolldefinition.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Role

Rolldefinitionsobjekt.

Type:PSRoleDefinition
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SkipClientSideScopeValidation

Om du anger det hoppar du över validering av klientsidans omfång.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Indata

None

Utdata

PSRoleDefinition

Kommentarer

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