Samouczek: tworzenie roli niestandardowej platformy Azure przy użyciu programu Azure PowerShell
Jeśli wbudowane role platformy Azure nie spełniają konkretnych potrzeb organizacji, możesz utworzyć własne role niestandardowe. W tym samouczku utworzysz niestandardową rolę o nazwie Reader Support Tickets przy użyciu programu Azure PowerShell. Rola niestandardowa umożliwia użytkownikowi wyświetlanie wszystkich elementów w płaszczyźnie sterowania subskrypcji, a także otwieranie biletów pomocy technicznej.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Tworzenie roli niestandardowej
- Wyświetlanie ról niestandardowych
- Aktualizacja roli niestandardowej
- Usuwanie roli niestandardowej
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Wymagania wstępne
Do ukończenia tego samouczka niezbędne są następujące elementy:
- Uprawnienia do tworzenia ról niestandardowych, takich jak Administracja istrator dostępu użytkowników
- Usługa Azure Cloud Shell lub program Azure PowerShell
Logowanie się do programu Azure PowerShell
Zaloguj się do programu Azure PowerShell.
Tworzenie roli niestandardowej
Najprostszym sposobem na utworzenie roli niestandardowej jest rozpoczęcie od wbudowanej roli, poddanie jej edycji, a następnie utworzenie nowej roli.
W programie PowerShell użyj polecenia Get-AzProviderOperation, aby uzyskać listę operacji dla dostawcy zasobów Microsoft.Support. Dobrze jest znać operacje, które są dostępne do tworzenia uprawnień. Możesz również wyświetlić listę wszystkich operacji na stronie Operacje dostawcy zasobów platformy Azure.
Get-AzProviderOperation "Microsoft.Support/*" | FT Operation, Description -AutoSize
Operation Description --------- ----------- Microsoft.Support/register/action Registers to Support Resource Provider Microsoft.Support/supportTickets/read Gets Support Ticket details (including status, severity, contact ... Microsoft.Support/supportTickets/write Creates or Updates a Support Ticket. You can create a Support Tic...
Użyj polecenia Get-AzRoleDefinition w celu wygenerowania roli Czytelnik w formacie JSON.
Get-AzRoleDefinition -Name "Reader" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole.json
Otwórz plik ReaderSupportRole.json w edytorze.
Poniżej przedstawiono dane wyjściowe w formacie JSON. Aby uzyskać informacje o różnych właściwościach, zobacz Role niestandardowe platformy Azure.
{ "Name": "Reader", "Id": "acdd72a7-3385-48ef-bd42-f606fba81ae7", "IsCustom": false, "Description": "Lets you view everything, but not make any changes.", "Actions": [ "*/read" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/" ] }
Edytuj plik JSON, aby dodać
"Microsoft.Support/*"
akcję doActions
właściwości . Pamiętaj, aby uwzględnić przecinek po akcji odczytu. Ta akcja umożliwia użytkownikowi tworzenie biletów pomocy technicznej.Pobierz identyfikator subskrypcji za pomocą polecenia Get-AzSubscription.
Get-AzSubscription
W elemencie
AssignableScopes
dodaj swój identyfikator subskrypcji w następującym formacie:"/subscriptions/00000000-0000-0000-0000-000000000000"
Musisz jawnie dodać identyfikatory subskrypcji, ponieważ w przeciwnym razie nie będzie można zaimportować roli do subskrypcji.
Usuń wiersz właściwości
Id
i zmień właściwośćIsCustom
natrue
.Zmień właściwości
Name
iDescription
na „Reader Support Tickets” i „View everything in the subscription and also open support tickets”.Zawartość pliku JSON powinna wyglądać następująco:
{ "Name": "Reader Support Tickets", "IsCustom": true, "Description": "View everything in the subscription and also open support tickets.", "Actions": [ "*/read", "Microsoft.Support/*" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ] }
Aby utworzyć nową rolę niestandardową, użyj polecenia New-AzRoleDefinition i określ plik definicji roli JSON.
New-AzRoleDefinition -InputFile "C:\CustomRoles\ReaderSupportRole.json"
Name : Reader Support Tickets Id : 22222222-2222-2222-2222-222222222222 IsCustom : True Description : View everything in the subscription and also open support tickets. Actions : {*/read, Microsoft.Support/*} NotActions : {} DataActions : {} NotDataActions : {} AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000}
Nowa rola niestandardowa jest teraz dostępna w witrynie Azure Portal i można ją przypisywać do użytkowników, grup lub jednostek usług tak samo jak role wbudowane.
Wyświetlanie ról niestandardowych
Aby wyświetlić listę wszystkich ról niestandardowych, użyj polecenia Get-AzRoleDefinition.
Get-AzRoleDefinition | ? {$_.IsCustom -eq $true} | FT Name, IsCustom
Name IsCustom ---- -------- Reader Support Tickets True
Rolę niestandardową można również sprawdzić w witrynie Azure Portal.
Aktualizacja roli niestandardowej
Aby zaktualizować rolę niestandardową, zaktualizuj plik JSON lub użyj obiektu PSRoleDefinition
.
Aby zaktualizować plik JSON, użyj polecenia Get-AzRoleDefinition w celu wygenerowania roli niestandardowej w formacie JSON.
Get-AzRoleDefinition -Name "Reader Support Tickets" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole2.json
Otwórz plik w edytorze.
W
Actions
pliku dodaj akcję , aby utworzyć wdrożenia"Microsoft.Resources/deployments/*"
grup zasobów i zarządzać nimi.Zaktualizowany plik JSON powinien wyglądać następująco:
{ "Name": "Reader Support Tickets", "Id": "22222222-2222-2222-2222-222222222222", "IsCustom": true, "Description": "View everything in the subscription and also open support tickets.", "Actions": [ "*/read", "Microsoft.Support/*", "Microsoft.Resources/deployments/*" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ] }
Aby zaktualizować rolę niestandardową, użyj polecenia Set-AzRoleDefinition i określ zaktualizowany plik JSON.
Set-AzRoleDefinition -InputFile "C:\CustomRoles\ReaderSupportRole2.json"
Name : Reader Support Tickets Id : 22222222-2222-2222-2222-222222222222 IsCustom : True Description : View everything in the subscription and also open support tickets. Actions : {*/read, Microsoft.Support/*, Microsoft.Resources/deployments/*} NotActions : {} DataActions : {} NotDataActions : {} AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000}
Aby użyć obiektu
PSRoleDefintion
do aktualizacji roli niestandardowej, najpierw użyj polecenia Get-AzRoleDefinition w celu pobrania roli.$role = Get-AzRoleDefinition "Reader Support Tickets"
Wywołaj metodę ,
Add
aby dodać akcję w celu odczytania ustawień diagnostycznych.$role.Actions.Add("Microsoft.Insights/diagnosticSettings/*/read")
Użyj polecenia Set-AzRoleDefinition w celu zaktualizowania roli.
Set-AzRoleDefinition -Role $role
Name : Reader Support Tickets Id : 22222222-2222-2222-2222-222222222222 IsCustom : True Description : View everything in the subscription and also open support tickets. Actions : {*/read, Microsoft.Support/*, Microsoft.Resources/deployments/*, Microsoft.Insights/diagnosticSettings/*/read} NotActions : {} DataActions : {} NotDataActions : {} AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000}
Usuwanie roli niestandardowej
Użyj polecenia Get-AzRoleDefinition w celu uzyskania identyfikatora roli niestandardowej.
Get-AzRoleDefinition "Reader Support Tickets"
Użyj polecenia Remove-AzRoleDefinition i określ identyfikator roli w celu usunięcia roli niestandardowej.
Remove-AzRoleDefinition -Id "22222222-2222-2222-2222-222222222222"
Confirm Are you sure you want to remove role definition with id '22222222-2222-2222-2222-222222222222'. [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
Gdy zostanie wyświetlony monit o potwierdzenie, wpisz Y (T).