Udostępnij za pośrednictwem


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:

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.

  1. 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...
    
  2. 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
    
  3. 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": [
        "/"
      ]
    }
    
  4. Edytuj plik JSON, aby dodać "Microsoft.Support/*" akcję do Actions właściwości . Pamiętaj, aby uwzględnić przecinek po akcji odczytu. Ta akcja umożliwia użytkownikowi tworzenie biletów pomocy technicznej.

  5. Pobierz identyfikator subskrypcji za pomocą polecenia Get-AzSubscription.

    Get-AzSubscription
    
  6. 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.

  7. Usuń wiersz właściwości Id i zmień właściwość IsCustom na true.

  8. Zmień właściwości Name i Description 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"
      ]
    }
    
  9. 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.

    zrzut ekranu przedstawiający rolę niestandardową zaimportowaną do witryny Azure Portal

Aktualizacja roli niestandardowej

Aby zaktualizować rolę niestandardową, zaktualizuj plik JSON lub użyj obiektu PSRoleDefinition.

  1. 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
    
  2. Otwórz plik w edytorze.

  3. W Actionspliku 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"
      ]
    }
    
  4. 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}
    
  5. 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"
    
  6. Wywołaj metodę , Add aby dodać akcję w celu odczytania ustawień diagnostycznych.

    $role.Actions.Add("Microsoft.Insights/diagnosticSettings/*/read")
    
  7. 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

  1. Użyj polecenia Get-AzRoleDefinition w celu uzyskania identyfikatora roli niestandardowej.

    Get-AzRoleDefinition "Reader Support Tickets"
    
  2. 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"):
    
  3. Gdy zostanie wyświetlony monit o potwierdzenie, wpisz Y (T).

Następne kroki