New-AzureRmRoleDefinition
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-AzureRmRoleDefinition", 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.
Warnung
Das AzureRM PowerShell-Modul ist seit dem 29. Februar 2024 offiziell veraltet. Benutzern wird empfohlen, von AzureRM zum Az PowerShell-Modul zu migrieren, um weiterhin Support und Updates zu erhalten.
Obwohl das AzureRM-Modul möglicherweise weiterhin funktioniert, wird es nicht mehr gewartet, und es wird kein Support mehr angeboten. Die weitere Nutzung erfolgt daher nach Ermessen und Risiko des Benutzers. Weitere Informationen zum Übergang zum Az-Modul finden Sie in unseren Migrationsressourcen.
Syntax
New-AzureRmRoleDefinition
[-InputFile] <String>
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzureRmRoleDefinition
[-Role] <PSRoleDefinition>
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Beschreibung
Das Cmdlet New-AzureRmRoleDefinition erstellt eine benutzerdefinierte Rolle in der rollenbasierten Zugriffssteuerung von Azure. 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:
- DisplayName: der Name der benutzerdefinierten Rolle
- Beschreibung: Eine kurze Beschreibung der Rolle, die den Zugriff zusammenfasst, den die Rolle gewährt.
- Aktionen: der Satz von Vorgängen, auf die die benutzerdefinierte Rolle Zugriff gewährt. Verwenden Sie Get-AzureRmProviderOperation, um den Vorgang für Azure-Ressourcenanbieter abzurufen, die mit 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.
- 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:
- 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.
- DataActions: Der Satz von Datenvorgängen, auf die die benutzerdefinierte Rolle Zugriff gewährt.
- 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
Erstellen mit 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
Erstellen mit JSON-Datei
PS C:\> New-AzureRmRoleDefinition -InputFile C:\Temp\roleDefinition.json
Parameter
-DefaultProfile
Anmeldeinformationen, Konto, Mandant und Abonnement für die Kommunikation mit Azure
Typ: | IAzureContextContainer |
Aliase: | 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 |
Eingaben
None
Ausgaben
Hinweise
Schlüsselwörter: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment