Freigeben über


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

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

Beschreibung

Das Cmdlet New-AzRoleDefinition erstellt eine benutzerdefinierte Rolle in der Azure-Rollenbasierten Zugriffssteuerung. 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. DisplayName: der Name der benutzerdefinierten Rolle
  2. Beschreibung: Eine kurze Beschreibung der Rolle, die den Zugriff zusammenfasst, den die Rolle gewährt.
  3. Aktionen: der Satz von Vorgängen, auf die die benutzerdefinierte Rolle Zugriff gewährt. Verwenden Sie Get-AzProviderOperation, um den Vorgang für Azure-Ressourcenanbieter abzurufen, die mithilfe von 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 Lesevorgängen für alle Ressourcentypen im Microsoft.Network-Ressourcenanbieter von Azure.
  • "Microsoft.Compute/virtualMachines/*" gewährt Zugriff auf alle Vorgänge virtueller Computer und seiner untergeordneten Ressourcentypen.
  1. AssignableScopes: die Gruppe von Bereichen (Azure-Abonnements oder Ressourcengruppen), in denen die benutzerdefinierte Rolle für die Zuordnung verfügbar ist. Mithilfe von AssignableScopes können Sie die benutzerdefinierte Rolle nur für die Zuordnung in den Abonnements oder Ressourcengruppen verfügbar machen, die sie benötigen, und nicht die Benutzererfahrung für die restlichen Abonnements oder Ressourcengruppen überladen. 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. Die Eingaberollendefinition KANN die folgenden Eigenschaften enthalten:
  1. NotActions: Die Gruppe von Vorgängen, die aus den Aktionen ausgeschlossen werden müssen, um die effektiven Aktionen für die benutzerdefinierte Rolle zu bestimmen. Wenn es einen bestimmten Vorgang gibt, auf den Sie keinen Zugriff in einer benutzerdefinierten Rolle gewähren möchten, ist es praktisch, notActions zu verwenden, um ihn auszuschließen, anstatt alle anderen Vorgänge als diesen bestimmten Vorgang in Aktionen anzugeben.
  2. DataActions: Der Satz von Datenvorgängen, auf die die benutzerdefinierte Rolle Zugriff gewährt.
  3. NotDataActions: Die Gruppe von Vorgängen, die aus den DataActions ausgeschlossen werden müssen, um die effektiven Datenaktionen für die benutzerdefinierte Rolle zu bestimmen. Wenn ein bestimmter Datenvorgang vorhanden ist, auf den Sie keinen Zugriff in einer benutzerdefinierten Rolle gewähren möchten, ist es praktisch, notDataActions zu verwenden, um ihn auszuschließen, anstatt alle anderen Vorgänge als diesen bestimmten Vorgang in Aktionen anzugeben. HINWEIS: Wenn einem Benutzer eine Rolle zugewiesen ist, die einen Vorgang in NotActions angibt und eine andere Rolle ebenfalls zugriff auf denselben Vorgang gewährt , kann der Benutzer diesen Vorgang ausführen. NotActions ist keine Verweigerungsregel – es ist einfach eine bequeme Möglichkeit, eine Reihe zulässiger Vorgänge zu erstellen, wenn bestimmte Vorgänge ausgeschlossen werden müssen. Es folgt eine Json-Beispielrollendefinition, die als Eingabe { "Name" bereitgestellt werden kann: "Aktualisierte Rolle", "Beschreibung": "Kann alle Ressourcen überwachen und virtuelle Computer starten und neu starten", "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/xxxxxx-xxxx-xxxx-xxxx-xx"] }

Beispiele

Beispiel 1: Erstellen mit 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

Beispiel 2: Erstellen mit JSON-Datei

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

Parameter

-DefaultProfile

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

Typ:IAzureContextContainer
Aliase:AzContext, AzureRmContext, AzureCredential
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-InputFile

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

Typ:String
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Role

Rollendefinitionsobjekt.

Typ:PSRoleDefinition
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-SkipClientSideScopeValidation

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

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

None

Ausgaben

PSRoleDefinition

Hinweise

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