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

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

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

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