Set-AzRoleDefinition
Ändert eine benutzerdefinierte Rolle in Azure RBAC. Geben Sie die geänderte Rollendefinition entweder als JSON-Datei oder als PSRoleDefinition an. Verwenden Sie zunächst den Befehl Get-AzRoleDefinition, um die benutzerdefinierte Rolle abzurufen, die Sie ändern möchten. Ändern Sie dann die Eigenschaften, die Sie ändern möchten. Speichern Sie schließlich die Rollendefinition mit diesem Befehl.
Syntax
InputFileParameterSet
Set-AzRoleDefinition
-InputFile <String>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
RoleDefinitionParameterSet
Set-AzRoleDefinition
-Role <PSRoleDefinition>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Beschreibung
Das cmdlet Set-AzRoleDefinition aktualisiert eine vorhandene benutzerdefinierte Rolle in Azure Role-Based Access Control. Stellen Sie die aktualisierte Rollendefinition als Eingabe für den Befehl als JSON-Datei oder als PSRoleDefinition-Objekt bereit.
Die Rollendefinition für die aktualisierte benutzerdefinierte Rolle MUSS Folgendes enthalten:
- ID: Der eindeutige Bezeichner der zu aktualisierenden Rollendefinition
- Name: der Name der benutzerdefinierten Rolle
- Beschreibung: eine kurze Beschreibung der Rolle
- Berechtigungen: ein Array von Berechtigungsobjekten, die Aktionen und/oder DataActions enthalten
- AssignableScopes: die Bereiche, denen die Rolle zugewiesen werden kann
Jedes Berechtigungsobjekt im Berechtigungsarray kann Aktionen, NotActions, DataActions, NotDataActions und optional Condition Und ConditionVersion für Attribute-Based Access Control (ABAC)-Bedingungen enthalten.
Important
Die Form von PSRoleDefinition und der -InputFile JSON hat sich geändert. Sowohl -Role (PSRoleDefinition) als -InputFile auch (JSON) verwenden jetzt ein Permissions Array von Berechtigungsobjekten anstelle von flacher oberer Ebene Actions, , NotActionsund DataActionsNotDataActions Eigenschaften. Skripts, in die Sie weitergeleitet Get-AzRoleDefinitionSet-AzRoleDefinition -Role werden, müssen Aktionen und Bedingungen $role.Permissions[n] lesen und ändern, anstatt direkt auf dem Rollenobjekt. JSON-Dateien, die mit -InputFile verwendet werden, müssen ebenfalls Berechtigungen unter einem Permissions Array verschachteln.
Note
Die Azure RBAC-API unterstützt derzeit nur ein einzelnes Element im Berechtigungsarray beim Aktualisieren benutzerdefinierter Rollen. Während das Datenmodell mehrere Berechtigungseinträge unterstützt, müssen Aktualisierungsvorgänge genau ein Berechtigungsobjekt verwenden.
Beispiele
Beispiel 1: Aktualisieren mit PSRoleDefinitionObject
$roleDef = Get-AzRoleDefinition "Contoso On-Call"
$roleDef.Permissions[0].Actions.Add("Microsoft.ClassicCompute/virtualmachines/start/action")
$roleDef.Description = "Can monitor all resources and start and restart virtual machines"
$roleDef.AssignableScopes = @("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
Set-AzRoleDefinition -Role $roleDef
Beispiel 2: Aktualisieren mit JSON-Datei
Set-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json
Aktualisiert eine benutzerdefinierte Rollendefinition aus einer JSON-Datei. Die JSON-Datei muss die ID-Eigenschaft der Rolle enthalten.
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, die aktualisiert werden soll. Fügen Sie nur die Eigenschaften hinzu, die im JSON-Code aktualisiert werden sollen. Id-Eigenschaft ist erforderlich.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
InputFileParameterSet
| Position: | Named |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Role
Rollendefinitionsobjekt, das aktualisiert werden soll
Parametereigenschaften
| Typ: | PSRoleDefinition |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
RoleDefinitionParameterSet
| Position: | Named |
| Obligatorisch: | True |
| Wert aus Pipeline: | True |
| 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
PSRoleDefinition
Ausgaben
PSRoleDefinition
Hinweise
Schlüsselwörter: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment