Oktatóanyag: Egyéni Azure-szerepkör létrehozása az Azure PowerShell használatával

Ha az Azure beépített szerepkörei nem felelnek meg a szervezet adott igényeinek, létrehozhat saját egyéni szerepköröket. Ebben az oktatóanyagban egy Reader Support Tickets (Olvasó – Támogatási jegyek) nevű egyéni szerepkört fog létrehozni az Azure PowerShell-lel. Az egyéni szerepkör lehetővé teszi, hogy a felhasználó mindent megtekintsen az előfizetés vezérlősíkjában, és támogatási jegyeket is nyisson meg.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Create a custom role
  • Egyéni szerepkörök listázása
  • Egyéni szerepkörök frissítése
  • Egyéni szerepkörök törlése

Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.

Megjegyzés:

We recommend that you use the Azure Az PowerShell module to interact with Azure. See Install Azure PowerShell to get started. To learn how to migrate to the Az PowerShell module, see Migrate Azure PowerShell from AzureRM to Az.

Előfeltételek

Az oktatóanyag elvégzéséhez a következőkre van szükség:

Bejelentkezés az Azure PowerShellbe

Jelentkezzen be az Azure PowerShellbe.

Create a custom role

Legegyszerűbben úgy hozhat létre egyéni szerepkört, ha egy beépített szerepkört szerkeszt át.

  1. A PowerShellben a Get-AzProviderOperation paranccsal kérje le a Microsoft.Support erőforrás-szolgáltató műveleteinek listáját. Érdemes megismerkedni az engedélyek létrehozására szolgáló műveletekkel. Az Azure-erőforrás-szolgáltatói műveletek összes műveletének listáját is megtekintheti.

    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. A Get-AzRoleDefinition paranccsal JSON formátumban adja ki az Olvasó szerepkört.

    Get-AzRoleDefinition -Name "Reader" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole.json
    
  3. Nyissa meg a ReaderSupportRole.json fájlt egy tetszőleges szövegszerkesztőben.

    Az alábbiakban a JSON kimenete látható. A különböző tulajdonságokról további információt az Egyéni Azure-szerepkörökben talál.

    {
      "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. A JSON-fájl szerkesztésével adja hozzá a "Microsoft.Support/*" műveletet a Actions tulajdonsághoz. Az olvasási művelet után mindenképpen adjon meg vesszőt. Ez a művelet lehetővé teszi a felhasználónak a támogatási jegyek létrehozását.

  5. Kérje le az előfizetés azonosítóját a Get-AzSubscription paranccsal.

    Get-AzSubscription
    
  6. Az AssignableScopes elemnél adja meg az előfizetés azonosítóját a következő formátumban: "/subscriptions/00000000-0000-0000-0000-000000000000"

    Explicit előfizetési azonosítókat kell megadnia, különben nem importálhatja a szerepkört az előfizetésébe.

  7. Törölje az Id tulajdonságsort, és módosítsa az IsCustom tulajdonságot true értékre.

  8. Módosítsa a Name és a Description tulajdonságot „Reader Support Tickets” és „View everything in the subscription and also open support tickets” (Mindent megtekinthet az előfizetésben, valamint támogatási jegyeket nyithat) értékre.

    A JSON-fájlnak a következőhöz kell hasonlítania:

    {
      "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. Az új egyéni szerepkör létrehozásához használja a New-AzRoleDefinition parancsot, és adja meg a JSON-szerepkördefiníciós fájlt.

    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}
    

    Az új egyéni szerepkör mostantól elérhető az Azure Portalon, és a beépített szerepkörökhöz hasonlóan hozzárendelhető felhasználókhoz, csoportokhoz vagy szolgáltatásnevekhez.

Egyéni szerepkörök listázása

  • Az összes egyéni szerepkör listázásához használja a Get-AzRoleDefinition parancsot.

    Get-AzRoleDefinition | ? {$_.IsCustom -eq $true} | FT Name, IsCustom
    
    Name                   IsCustom
    ----                   --------
    Reader Support Tickets     True
    

    Az egyéni szerepköröket az Azure Portalon is megtekintheti.

    screenshot of custom role imported in the Azure portal

Egyéni szerepkörök frissítése

Egyéni szerepkör frissítéséhez módosítsa a JSON-fájlt, vagy használja a PSRoleDefinition objektumot.

  1. A JSON-fájl frissítéséhez a Get-AzRoleDefinition paranccsal adja ki az egyéni szerepkört JSON formátumban.

    Get-AzRoleDefinition -Name "Reader Support Tickets" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole2.json
    
  2. Nyissa meg a fájlt egy tetszőleges szövegszerkesztőben.

  3. Adja Actionshozzá az erőforráscsoport-üzemelő példányok "Microsoft.Resources/deployments/*"létrehozásához és kezeléséhez szükséges műveletet.

    A frissített JSON-fájlnak a következőhöz kell hasonlítania:

    {
      "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. Az egyéni szerepkör frissítéséhez használja a Set-AzRoleDefinition parancsot, és adja meg a frissített JSON-fájlt.

    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. Ha az PSRoleDefintion objektumot az egyéni szerepkör frissítéséhez szeretné használni, először a Get-AzRoleDefinition paranccsal szerezze be a szerepkört.

    $role = Get-AzRoleDefinition "Reader Support Tickets"
    
  6. Hívja meg a Add metódust, hogy adja hozzá a műveletet a diagnosztikai beállítások olvasásához.

    $role.Actions.Add("Microsoft.Insights/diagnosticSettings/*/read")
    
  7. A szerepkör frissítéséhez használja a Set-AzRoleDefinition parancsot.

    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}
    

Egyéni szerepkörök törlése

  1. Az egyéni szerepkör azonosítójának lekéréséhez használja a Get-AzRoleDefinition parancsot.

    Get-AzRoleDefinition "Reader Support Tickets"
    
  2. Használja a Remove-AzRoleDefinition parancsot, és adja meg a szerepkör azonosítóját az egyéni szerepkör törléséhez.

    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. Ha rendszer megerősítést kér, írja be a következőt: Y.

További lépések