New-AzRoleDefinition

Erstellt eine benutzerdefinierte Rolle in Azure RBAC. Stellen Sie entweder eine JSON-Rollendefinitionsdatei oder ein PSRoleDefinition-Objekt als Eingabe bereit. Verwenden Sie zunächst den Befehl Get-AzRoleDefinition, um ein grundlegendes Rollendefinitionsobjekt zu generieren. Ändern Sie dann die Eigenschaften nach Bedarf. Verwenden Sie abschließend diesen Befehl, um eine benutzerdefinierte Rolle mithilfe der Rollendefinition zu erstellen.

Syntax

InputFileParameterSet

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

RoleDefinitionParameterSet

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

Beschreibung

Das Cmdlet New-AzRoleDefinition erstellt eine benutzerdefinierte Rolle in Azure Role-Based Access Control. Stellen Sie eine Rollendefinition als Eingabe für den Befehl als JSON-Datei oder als PSRoleDefinition-Objekt bereit.

Die Eingaberollendefinition MUSS die folgenden Eigenschaften enthalten:

  1. Name: der Name der benutzerdefinierten Rolle
  2. Beschreibung: Eine kurze Beschreibung der Rolle, die den Zugriff zusammenfasst, den die Rolle gewährt.
  3. Berechtigungen: ein Array von Berechtigungsobjekten, die jeweils Aktionen und/oder DataActions enthalten. Verwenden Sie Get-AzProviderOperation, um den Vorgang für Azure Ressourcenanbieter abzurufen, die mithilfe Azure RBAC gesichert werden können. Im Folgenden sind einige gültige Vorgangszeichenfolgen aufgeführt:
    • "*/read" gewährt Zugriff auf Lesevorgänge aller Azure Ressourcenanbieter.
    • "Microsoft. Network/*/read" gewährt Zugriff auf Lesevorgänge für alle Ressourcentypen im Microsoft. Netzwerkressourcenanbieter von Azure.
    • "Microsoft. Compute/virtualMachines/*" gewährt Zugriff auf alle Vorgänge virtueller Computer und seiner untergeordneten Ressourcentypen.
  4. AssignableScopes: die Gruppe der Bereiche (Azure Abonnements oder Ressourcengruppen), in denen die benutzerdefinierte Rolle für die Zuordnung verfügbar ist. Im Folgenden sind einige gültige zuzuweisende Bereiche aufgeführt:
    • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e", "/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624": stellt die Rolle für die Zuweisung in zwei Abonnements zur Verfügung.
    • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e": Stellt die Rolle für die Zuordnung in einem einzigen Abonnement zur Verfügung.
    • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e/resourceGroups/Network": Stellt die Rolle nur in der Netzwerkressourcengruppe zur Verfügung.

Jedes Berechtigungsobjekt im Berechtigungsarray KANN Folgendes enthalten:

  1. Aktionen: Die Gruppe der Steuerungsebenenvorgänge, auf die die benutzerdefinierte Rolle Zugriff gewährt.
  2. NotActions: Die Gruppe von Vorgängen, die von den Aktionen ausgeschlossen werden müssen, um die effektiven Aktionen zu bestimmen.
  3. DataActions: Der Satz von Datenebenenvorgängen, auf die die benutzerdefinierte Rolle Zugriff gewährt.
  4. NotDataActions: Der Satz von Vorgängen, die aus den DataActions ausgeschlossen werden müssen.
  5. Bedingung: eine Attribute-Based Access Control (ABAC)-Bedingung, die die Berechtigungen einschränkt.
  6. ConditionVersion: die Version der Bedingungssyntax, z. B. "2.0" (erforderlich, wenn Bedingung angegeben ist).

Note

Die Azure RBAC-API unterstützt derzeit nur ein einzelnes Element im Berechtigungsarray beim Erstellen benutzerdefinierter Rollen. Während das Datenmodell mehrere Berechtigungseinträge unterstützt, müssen Erstellungsvorgänge genau ein Berechtigungsobjekt verwenden.

Im Folgenden finden Sie eine Beispieldefinition der JSON-Rollen, die als Eingabe bereitgestellt werden kann: { "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/xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx"] }

Beispiele

Beispiel 1: Erstellen einer benutzerdefinierten Rolle mithilfe des PSRoleDefinition-Objekts

$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

Erstellt eine benutzerdefinierte Rolle namens "Virtual Machine Operator" mit den angegebenen Aktionen.

Beispiel 2: Erstellen einer benutzerdefinierten Rolle mithilfe der JSON-Datei

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

Erstellt eine benutzerdefinierte Rolle aus einer JSON-Definitionsdatei.

Parameter

-DefaultProfile

Anmeldeinformationen, Konto, Mandant und Abonnement für die Kommunikation mit Azure

Parametereigenschaften

Typ:IAzureContextContainer
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:AzContext, AzureRmContext, AzureCredential

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-InputFile

Dateiname, der eine einzelne JSON-Rollendefinition enthält.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

InputFileParameterSet
Position:0
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Role

Rollendefinitionsobjekt.

Parametereigenschaften

Typ:PSRoleDefinition
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

RoleDefinitionParameterSet
Position:0
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-SkipClientSideScopeValidation

Wenn angegeben, überspringen Sie die clientseitige Bereichsüberprüfung.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

Eingaben

None

Ausgaben

PSRoleDefinition

Hinweise

Schlüsselwörter: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment