Egyéni Azure-szerepkörök

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. A beépített szerepkörökhöz hasonlóan egyéni szerepköröket is hozzárendelhet felhasználókhoz, csoportokhoz és szolgáltatásnevekhez a felügyeleti csoport, az előfizetés és az erőforráscsoport hatókörében.

Az egyéni szerepkörök megoszthatók olyan előfizetések között, amelyek ugyanabban a Microsoft Entra-bérlőben bíznak. Bérlőnként legfeljebb 5000 egyéni szerepkör lehet. (A 21Vianet által üzemeltetett Microsoft Azure esetében a korlát 2000 egyéni szerepkör.) Egyéni szerepkörök hozhatók létre az Azure Portal, az Azure PowerShell, az Azure CLI vagy a REST API használatával.

Egyéni szerepkör létrehozásának lépései

Az alábbiakban bemutatjuk az egyéni szerepkörök létrehozásának alapvető lépéseit.

  1. Határozza meg a szükséges engedélyeket.

    Egyéni szerepkör létrehozásakor ismernie kell az engedélyek meghatározásához elérhető műveleteket. Általában egy meglévő beépített szerepkörrel kell kezdenie, majd módosítania kell az igényeinek megfelelően. A műveleteket a szerepkördefinícióhoz vagy NotActions -tulajdonságokhoz Actions fogja hozzáadni. Ha rendelkezik adatműveletekkel, ezeket hozzáadja a DataActions tulajdonságokhoz.NotDataActions

    További információ: A szükséges engedélyek meghatározása a következő szakaszban.

  2. Döntse el, hogyan szeretné létrehozni az egyéni szerepkört.

    Egyéni szerepköröket az Azure Portal, az Azure PowerShell, az Azure CLI vagy a REST API használatával hozhat létre.

  3. Hozza létre az egyéni szerepkört.

    A legegyszerűbb módszer az Azure Portal használata. Az egyéni szerepkörök Azure Portallal történő létrehozásáról és frissítéséről az Azure Portal használatával az Azure-beli egyéni szerepkörök létrehozása vagy frissítése című témakörben olvashat.

  4. Tesztelje az egyéni szerepkört.

    Miután megkapta az egyéni szerepkört, tesztelnie kell, hogy az a várt módon működik-e. Ha később módosítania kell, frissítheti az egyéni szerepkört.

How to determine the permissions you need

Az Azure több ezer olyan engedéllyel rendelkezik, amelyeket esetleg belefoglalhat az egyéni szerepkörbe. Íme néhány módszer, amely segíthet meghatározni az egyéni szerepkörhöz hozzáadni kívánt engedélyeket:

  • Tekintse meg a meglévő beépített szerepköröket.

    Érdemes lehet módosítani egy meglévő szerepkört, vagy egyesíteni a több szerepkörben használt engedélyeket.

  • Listázhatja azokat az Azure-szolgáltatásokat, amelyhez hozzáférést kíván adni.

  • Határozza meg az Azure-szolgáltatásokhoz leképező erőforrás-szolgáltatókat.

    Az Azure-szolgáltatások az erőforrás-szolgáltatókon keresztül teszik elérhetővé működésüket és engedélyeiket. A Microsoft.Compute erőforrás-szolgáltató például virtuálisgép-erőforrásokat, a Microsoft.Billing erőforrás-szolgáltató pedig előfizetési és számlázási erőforrásokat biztosít. Az erőforrás-szolgáltatók ismerete segíthet leszűkíteni és meghatározni az egyéni szerepkörhöz szükséges engedélyeket.

    Amikor egyéni szerepkört hoz létre az Azure Portal használatával, kulcsszavak keresésével is meghatározhatja az erőforrás-szolgáltatókat. Ezt a keresési funkciót az Egyéni Azure-szerepkörök létrehozása vagy frissítése az Azure Portalon ismerteti.

    Add permissions pane with resource provider

  • Keresse meg az elérhető engedélyeket a felvenni kívánt engedélyek megkereséséhez.

    Ha egyéni szerepkört hoz létre az Azure Portalon, kulcsszavak alapján kereshet engedélyeket. Kereshet például virtuális gépet vagy számlázási engedélyeket. Az összes engedélyt CSV-fájlként is letöltheti, majd kereshet ebben a fájlban. Ezt a keresési funkciót az Egyéni Azure-szerepkörök létrehozása vagy frissítése az Azure Portalon ismerteti.

    Add permissions list

Custom role example

Az alábbiakban látható, hogyan néz ki egy egyéni szerepkör az Azure PowerShell JSON-formátumban való használatával. Ez az egyéni szerepkör használható a virtuális gépek monitorozásához és újraindításához.

{
  "Name": "Virtual Machine Operator",
  "Id": "88888888-8888-8888-8888-888888888888",
  "IsCustom": true,
  "Description": "Can monitor and restart virtual machines.",
  "Actions": [
    "Microsoft.Storage/*/read",
    "Microsoft.Network/*/read",
    "Microsoft.Compute/*/read",
    "Microsoft.Compute/virtualMachines/start/action",
    "Microsoft.Compute/virtualMachines/restart/action",
    "Microsoft.Authorization/*/read",
    "Microsoft.ResourceHealth/availabilityStatuses/read",
    "Microsoft.Resources/subscriptions/resourceGroups/read",
    "Microsoft.Insights/alertRules/*",
    "Microsoft.Insights/diagnosticSettings/*",
    "Microsoft.Support/*"
  ],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/subscriptions/{subscriptionId1}",
    "/subscriptions/{subscriptionId2}",
    "/providers/Microsoft.Management/managementGroups/{groupId1}"
  ]
}

Az alábbiakban ugyanaz az egyéni szerepkör látható, mint az Azure CLI használatával.

[
  {
    "assignableScopes": [
      "/subscriptions/{subscriptionId1}",
      "/subscriptions/{subscriptionId2}",
      "/providers/Microsoft.Management/managementGroups/{groupId1}"
    ],
    "description": "Can monitor and restart virtual machines.",
    "id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/88888888-8888-8888-8888-888888888888",
    "name": "88888888-8888-8888-8888-888888888888",
    "permissions": [
      {
        "actions": [
          "Microsoft.Storage/*/read",
          "Microsoft.Network/*/read",
          "Microsoft.Compute/*/read",
          "Microsoft.Compute/virtualMachines/start/action",
          "Microsoft.Compute/virtualMachines/restart/action",
          "Microsoft.Authorization/*/read",
          "Microsoft.ResourceHealth/availabilityStatuses/read",
          "Microsoft.Resources/subscriptions/resourceGroups/read",
          "Microsoft.Insights/alertRules/*",
          "Microsoft.Insights/diagnosticSettings/*",
          "Microsoft.Support/*"
        ],
        "dataActions": [],
        "notActions": [],
        "notDataActions": []
      }
    ],
    "roleName": "Virtual Machine Operator",
    "roleType": "CustomRole",
    "type": "Microsoft.Authorization/roleDefinitions"
  }
]

Custom role properties

Az alábbi táblázat az egyéni szerepkör-tulajdonságokat ismerteti.

Property Required Type Description
Name
roleName
Igen Sztring Az egyéni szerepkör megjelenítendő neve. Bár a szerepkördefiníció felügyeleti csoport vagy előfizetési szintű erőforrás, a szerepkördefiníció több olyan előfizetésben is használható, amelyek azonos Microsoft Entra-bérlővel osztoznak. Ennek a megjelenítendő névnek egyedinek kell lennie a Microsoft Entra-bérlő hatókörében. Tartalmazhat betűket, számokat, szóközöket és speciális karaktereket. A karakterek maximális száma 512.
Id
name
Igen Sztring Az egyéni szerepkör egyedi azonosítója. Az Azure PowerShell és az Azure CLI esetében ez az azonosító automatikusan létrejön egy új szerepkör létrehozásakor.
IsCustom
roleType
Igen Sztring Azt jelzi, hogy ez egyéni szerepkör-e. true Egyéni szerepkörök beállítása vagy CustomRole beállítása. false A beépített szerepkörök beállítása vagy BuiltInRole beállítása.
Description
description
Igen Sztring Az egyéni szerepkör leírása. Tartalmazhat betűket, számokat, szóközöket és speciális karaktereket. A karakterek maximális száma 2048.
Actions
actions
Igen Karakterlánc[] Sztringek tömbje, amely meghatározza a szerepkör által végrehajtható vezérlősík-műveleteket. További információ: Műveletek.
NotActions
notActions
Nem Karakterlánc[] Sztringek tömbje, amely meghatározza az engedélyezett Actionselemből kizárt vezérlősík-műveleteket. További információ: NotActions.
DataActions
dataActions
Nem Karakterlánc[] Sztringek tömbje, amely meghatározza azokat az adatsík-műveleteket, amelyeket a szerepkör lehetővé tesz az adott objektumon belüli adatokon. Ha egyéni szerepkört hoz létre, DataActionsaz nem rendelhető hozzá a felügyeleti csoport hatókörében. További információ: DataActions.
NotDataActions
notDataActions
Nem Karakterlánc[] Sztringek tömbje, amely az engedélyezett DataActionsadatsík-műveleteket határozza meg. További információ: NotDataActions.
AssignableScopes
assignableScopes
Igen Karakterlánc[] Sztringek tömbje, amely meghatározza az egyéni szerepkör hozzárendeléshez elérhető hatóköreit. A maximális szám AssignableScopes 2000. További információ: AssignableScopes.

Az engedélysztringek nem érzékenyek a kis- és nagybetűkre. Az egyéni szerepkörök létrehozásakor a konvenció az, hogy megfeleljen az Azure-erőforrás-szolgáltatói műveletek engedélyeinek.

Wildcard permissions

Actions, NotActions, DataActionsés NotDataActions támogatja a helyettesítő karaktereket (*) az engedélyek definiálásához. A helyettesítő karakterek (*) mindenre kiterjesztik az engedélyt, amely megfelel az Ön által megadott műveletsztringnek. Tegyük fel például, hogy hozzá szeretné adni az Azure Cost Managementhez és az exportáláshoz kapcsolódó összes engedélyt. Az alábbi műveleti sztringek mindegyikét hozzáadhatja:

Microsoft.CostManagement/exports/action
Microsoft.CostManagement/exports/read
Microsoft.CostManagement/exports/write
Microsoft.CostManagement/exports/delete
Microsoft.CostManagement/exports/run/action

Ahelyett, hogy hozzáadná ezeket a sztringeket, egyszerűen hozzáadhat egy helyettesítő karakterláncot. A következő helyettesítő karaktersorozat például egyenértékű az előző öt sztringgel. Ez az esetlegesen hozzáadható jövőbeli exportálási engedélyeket is tartalmazza.

Microsoft.CostManagement/exports/*

Megjegyzés:

Javasoljuk, hogy a helyettesítő karakter (*) helyett explicit módon adja meg ActionsDataActions és használja. A jövőben ActionsDataActions megadott további hozzáférés és engedélyek nem kívánt viselkedést eredményezhetnek a helyettesítő karakter használatával.

Who can create, delete, update, or view a custom role

A beépített szerepkörökhöz hasonlóan a AssignableScopes tulajdonság is meghatározza a szerepkör hozzárendeléshez elérhető hatóköreit. Az AssignableScopes egyéni szerepkör tulajdonsága azt is szabályozza, hogy ki hozhatja létre, törölheti, frissítheti vagy tekintheti meg az egyéni szerepkört.

Task Action Leírás
Egyéni szerepkör létrehozása/törlése Microsoft.Authorization/ roleDefinitions/write Azok a felhasználók, akik ezt a műveletet az AssignableScopes összes egyéni szerepkörre vonatkozóan megkapják, egyéni szerepköröket hozhatnak létre (vagy törölhetnek) az adott hatókörökben való használatra. Például felügyeleti csoportok, előfizetések és erőforráscsoportok tulajdonosai és felhasználói hozzáférése Rendszergazda istratorok.
Egyéni szerepkörök frissítése Microsoft.Authorization/ roleDefinitions/write Azok a felhasználók, akik ezt a műveletet az AssignableScopes összes egyéni szerepkörre vonatkozóan megkapják, frissíthetik az egyéni szerepköröket ezekben a hatókörökben. Például felügyeleti csoportok, előfizetések és erőforráscsoportok tulajdonosai és felhasználói hozzáférése Rendszergazda istratorok.
Egyéni szerepkör megtekintése Microsoft.Authorization/ roleDefinitions/read Azok a felhasználók, amelyek egy hatókörben kapják meg ezt a műveletet, megtekinthetik az adott hatókörhöz hozzárendelhető egyéni szerepköröket. Az összes beépített szerepkör elérhetővé teszi az egyéni szerepköröket a hozzárendeléshez.

Szerepkör-hozzárendelések keresése egyéni szerepkör törléséhez

Mielőtt törölhet egy egyéni szerepkört, el kell távolítania az egyéni szerepkört használó szerepkör-hozzárendeléseket. Ha szerepkör-hozzárendelésekkel rendelkező egyéni szerepkört próbál törölni, a következő üzenetet kapja: There are existing role assignments referencing role (code: RoleDefinitionHasAssignments).

Az alábbi lépések segítenek megtalálni a szerepkör-hozzárendeléseket az egyéni szerepkörök törlése előtt:

Custom role limits

Az alábbi lista az egyéni szerepkörök korlátait ismerteti.

  • Minden bérlő legfeljebb 5000 egyéni szerepkört tartalmazhat.
  • A 21Vianet által üzemeltetett Microsoft Azure legfeljebb 2000 egyéni szerepkört tartalmazhat minden bérlőhöz.
  • A gyökérhatókör ("/") nem állítható beAssignableScopes.
  • A(z) nem használhat helyettesítő karaktereket (*) a következőben AssignableScopes: This wildcard restriction helps ensure a user can't potentially obtain access to a scope by updating the role definition.
  • You can have only one wildcard in an action string.
  • Az egyéni szerepkörök AssignableScopes definíciójában csak egy felügyeleti csoportot definiálhat.
  • Az Azure Resource Manager nem ellenőrzi a felügyeleti csoport meglétét a szerepkördefinícióban AssignableScopes.
  • DataActions művelettel rendelkező egyéni szerepkörök nem rendelhetők felügyeleti csoport hatókörhöz.
  • Egyéni szerepkört DataActions és egy felügyeleti csoportot is létrehozhat a következőben AssignableScopes: . Az egyéni szerepkör nem rendelhető hozzá a felügyeleti csoport hatóköréhez; Azonban hozzárendelheti az egyéni szerepkört a felügyeleti csoporton belüli előfizetések hatóköréhez. Ez akkor lehet hasznos, ha egyetlen egyéni szerepkört kell létrehoznia, amelyhez DataActions több előfizetésben kell hozzárendelni ahelyett, hogy minden előfizetéshez külön egyéni szerepkört kellene létrehoznia.

For more information about custom roles and management groups, see What are Azure management groups?.

Input and output formats

Ha egyéni szerepkört szeretne létrehozni a parancssor használatával, általában A JSON használatával adja meg az egyéni szerepkörhöz kívánt tulajdonságokat. A használt eszközöktől függően a bemeneti és kimeneti formátumok kissé eltérőek lesznek. Ez a szakasz az eszköztől függően sorolja fel a bemeneti és kimeneti formátumokat.

Azure PowerShell

Ha egyéni szerepkört szeretne létrehozni az Azure PowerShell használatával, a következő bemenetet kell megadnia.

{
  "Name": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Ha egyéni szerepkört szeretne frissíteni az Azure PowerShell használatával, az alábbi bemenetet kell megadnia. Vegye figyelembe, hogy a Id tulajdonság hozzá lett adva.

{
  "Name": "",
  "Id": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Az alábbiakban egy példa látható a kimenetre, amikor egy egyéni szerepkört listáz az Azure PowerShell és a ConvertTo-Json paranccsal.

{
  "Name": "",
  "Id": "",
  "IsCustom": true,
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Azure CLI

Ha egyéni szerepkört szeretne létrehozni vagy frissíteni az Azure CLI használatával, a következő bemenetet kell megadnia. Ez a formátum ugyanaz a formátum, amikor egyéni szerepkört hoz létre az Azure PowerShell használatával.

{
  "Name": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Az alábbiakban egy példa látható a kimenetre, amikor egy egyéni szerepkört listáz az Azure CLI használatával.

[
  {
    "assignableScopes": [],
    "description": "",
    "id": "",
    "name": "",
    "permissions": [
      {
        "actions": [],
        "dataActions": [],
        "notActions": [],
        "notDataActions": []
      }
    ],
    "roleName": "",
    "roleType": "CustomRole",
    "type": "Microsoft.Authorization/roleDefinitions"
  }
]

REST API

Ha egyéni szerepkört szeretne létrehozni vagy frissíteni a REST API használatával, a következő bemenetet kell megadnia. Ez a formátum ugyanaz a formátum, amely akkor jön létre, amikor egyéni szerepkört hoz létre az Azure Portal használatával.

{
  "properties": {
    "roleName": "",
    "description": "",
    "assignableScopes": [],
    "permissions": [
      {
        "actions": [],
        "notActions": [],
        "dataActions": [],
        "notDataActions": []
      }
    ]
  }
}

Az alábbiakban egy példa látható a kimenetre, amikor a REST API használatával listáz egy egyéni szerepkört.

{
    "properties": {
        "roleName": "",
        "type": "CustomRole",
        "description": "",
        "assignableScopes": [],
        "permissions": [
            {
                "actions": [],
                "notActions": [],
                "dataActions": [],
                "notDataActions": []
            }
        ],
        "createdOn": "",
        "updatedOn": "",
        "createdBy": "",
        "updatedBy": ""
    },
    "id": "",
    "type": "Microsoft.Authorization/roleDefinitions",
    "name": ""
}

Következő lépések