New-AzureRmRoleDefinition
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-AzureRmRoleDefinition, 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.
Ostrzeżenie
Moduł AzureRM PowerShell jest oficjalnie przestarzały od 29 lutego 2024 r. Zaleca się migrowanie użytkowników z modułu AzureRM do modułu Az programu PowerShell w celu zapewnienia ciągłej obsługi i aktualizacji.
Mimo że moduł AzureRM może nadal działać, nie jest już utrzymywany ani obsługiwany, umieszczając wszelkie dalsze zastosowania według uznania i ryzyka użytkownika. Zapoznaj się z naszymi zasobami migracji, aby uzyskać wskazówki dotyczące przejścia do modułu Az.
Składnia
New-AzureRmRoleDefinition
[-InputFile] <String>
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzureRmRoleDefinition
[-Role] <PSRoleDefinition>
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Opis
Polecenie cmdlet New-AzureRmRoleDefinition 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-AzureRmProviderOperation, aby uzyskać operację dla dostawców zasobów platformy Azure, których 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 działania 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
Tworzenie przy użyciu obiektu 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
Tworzenie przy użyciu pliku JSON
PS C:\> New-AzureRmRoleDefinition -InputFile C:\Temp\roleDefinition.json
Parametry
-DefaultProfile
Poświadczenia, konto, dzierżawa i subskrypcja używane do komunikacji z platformą Azure
Typ: | IAzureContextContainer |
Aliasy: | 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 |
Dane wejściowe
None
Dane wyjściowe
Uwagi
Słowa kluczowe: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment