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 weiterhin funktioniert, wird es nicht mehr Standard tained oder unterstützt, wobei eine fortgesetzte Verwendung nach Ermessen und Risiko des Benutzers erfolgt. 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:

  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-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.
  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

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

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

-InputFile

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

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

-Role

Rollendefinitionsobjekt.

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

Eingaben

None

Ausgaben

PSRoleDefinition

Hinweise

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