New-AzRoleDefinition
Tworzy rolę niestandardową w kontroli dostępu opartej na rolach platformy Azure. Podaj plik definicji roli JSON lub obiekt PSRoleDefinition jako dane wejściowe. Najpierw użyj polecenia Get-AzRoleDefinition, aby wygenerować obiekt definicji roli punktu odniesienia. Następnie zmodyfikuj jego właściwości zgodnie z potrzebami. Na koniec użyj tego polecenia, aby utworzyć rolę niestandardową przy użyciu definicji roli.
Składnia
New-AzRoleDefinition
[-InputFile] <String>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzRoleDefinition
[-Role] <PSRoleDefinition>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Opis
Polecenie cmdlet New-AzRoleDefinition tworzy rolę niestandardową w kontroli dostępu opartej na rolach platformy Azure. Podaj definicję roli jako dane wejściowe polecenia jako plik JSON lub obiekt PSRoleDefinition. Definicja roli wejściowej MUSI zawierać następujące właściwości:
- DisplayName: nazwa roli niestandardowej
- Opis: krótki opis roli, która podsumowuje dostęp udzielany przez rolę.
- Akcje: zestaw operacji, do których rola niestandardowa udziela dostępu. Użyj polecenia Get-AzProviderOperation, aby uzyskać operację dla dostawców zasobów platformy Azure, które można zabezpieczyć przy użyciu kontroli dostępu opartej na rolach platformy Azure. Poniżej przedstawiono kilka prawidłowych ciągów operacji:
- "*/read" przyznaje dostęp do operacji odczytu wszystkich dostawców zasobów platformy Azure.
- Program "Microsoft.Network/*/read" udziela dostępu do operacji odczytu dla wszystkich typów zasobów w dostawcy zasobów Microsoft.Network platformy Azure.
- Wyrażenie "Microsoft.Compute/virtualMachines/*" przyznaje dostęp do wszystkich operacji maszyn wirtualnych i ich podrzędnych typów zasobów.
- AssignableScopes: zestaw zakresów (subskrypcji platformy Azure lub grup zasobów), w których rola niestandardowa będzie dostępna do przypisania. Za pomocą funkcji AssignableScopes można udostępnić rolę niestandardową do przypisania tylko w subskrypcjach lub grupach zasobów, które jej potrzebują, a nie zaśmiecać środowisko użytkownika dla pozostałych subskrypcji lub grup zasobów. Poniżej przedstawiono kilka prawidłowych zakresów możliwych do przypisania:
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e", "/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624": udostępnia rolę do przypisania w dwóch subskrypcjach.
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e": udostępnia rolę do przypisania w jednej subskrypcji.
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e/resourceGroups/Network": udostępnia rolę do przypisania tylko w sieciowej grupie zasobów. Definicja roli wejściowej MOŻE zawierać następujące właściwości:
- NotActions: zestaw operacji, które należy wykluczyć z akcji, aby określić skuteczne akcje dla roli niestandardowej. Jeśli istnieje określona operacja, do której nie chcesz udzielać dostępu w roli niestandardowej, wygodnie jest użyć notActions do wykluczenia, zamiast określać wszystkie operacje inne niż ta konkretna operacja w obszarze Akcje.
- DataActions: zestaw operacji danych, do których rola niestandardowa udziela dostępu.
- NotDataActions: zestaw operacji, które należy wykluczyć z funkcji DataActions, aby określić skuteczne akcje danych dla roli niestandardowej. Jeśli istnieje określona operacja danych, do której nie chcesz udzielać dostępu w roli niestandardowej, wygodnie jest użyć funkcji NotDataActions, aby je wykluczyć, zamiast określać wszystkie operacje inne niż określona operacja w obszarze Akcje. UWAGA: Jeśli użytkownik ma przypisaną rolę określającą operację w notActions, a także przypisaną inną rolę przyznaje dostęp do tej samej operacji — użytkownik będzie mógł wykonać tę operację. NotActions nie jest regułą odmowy — jest to po prostu wygodny sposób tworzenia zestawu dozwolonych operacji, gdy trzeba wykluczyć określone operacje. Poniżej przedstawiono przykładową definicję roli JSON, którą można podać jako dane wejściowe { "Name": "Zaktualizowana rola", "Description": "Może monitorować wszystkie zasoby i uruchamiać i uruchamiać ponownie maszyny wirtualne", "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/xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx"] }
Przykłady
Przykład 1. Tworzenie przy użyciu obiektu 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
Przykład 2. Tworzenie przy użyciu pliku JSON
New-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json
Parametry
-DefaultProfile
Poświadczenia, konto, dzierżawa i subskrypcja używane do komunikacji z platformą Azure
Typ: | IAzureContextContainer |
Aliasy: | AzContext, AzureRmContext, AzureCredential |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-InputFile
Nazwa pliku zawierająca pojedynczą definicję roli JSON.
Typ: | String |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Role
Obiekt definicji roli.
Typ: | PSRoleDefinition |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-SkipClientSideScopeValidation
Jeśli zostanie określony, pomiń walidację zakresu po stronie klienta.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
None
Dane wyjściowe
Uwagi
Słowa kluczowe: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment