Az Azure-szerepkördefiníciók ismertetése

Ha meg szeretné érteni egy Azure-szerepkör működését, vagy ha saját egyéni Azure-szerepkört hoz létre, hasznos megérteni a szerepkörök definiálásának módját. Ez a cikk a szerepkör-definíciók részleteit ismerteti, és néhány példát is tartalmaz.

Szerepkör-definíció

A szerepkör-definíció engedélyek gyűjteménye. Néha csak szerepkörnek hívják. A szerepkör-definíciók felsorolják az elvégezhető műveleteket, például az olvasást, az írást és a törlést. Listázhatja azokat a műveleteket is, amelyek nincsenek kizárva az engedélyezett műveletekből vagy a mögöttes adatokhoz kapcsolódó műveletekből.

Az alábbiakban egy példa látható egy szerepkördefiníció tulajdonságaira, amikor az Azure PowerShell használatával jelenik meg:

Name
Id
IsCustom
Description
Actions []
NotActions []
DataActions []
NotDataActions []
AssignableScopes []

Az alábbiakban egy példa látható egy szerepkördefiníció tulajdonságaira, amikor a Azure Portal, az Azure CLI vagy a REST API használatával jelennek meg:

roleName
name
type
description
actions []
notActions []
dataActions []
notDataActions []
assignableScopes []

Az alábbi táblázat ismerteti a szerepkörtulajdonságok lényegét.

Tulajdonság Leírás
Name
roleName
A szerepkör megjelenítendő neve.
Id
name
A szerepkör egyedi azonosítója. A beépített szerepkörök ugyanazzal a szerepkör-azonosítóval rendelkeznek a felhőkben.
IsCustom
roleType
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 Beépített szerepkörök beállítása vagy BuiltInRole beállítása.
Description
description
A szerepkör leírása.
Actions
actions
Sztringek tömbje, amely meghatározza a vezérlősík azon műveleteit, amelyeket a szerepkör végrehajthat.
NotActions
notActions
Sztringek tömbje, amely meghatározza az engedélyezett Actionselemből kizárt vezérlősíkműveleteket.
DataActions
dataActions
Sztringek tömbje, amely meghatározza azokat az adatsíkműveleteket, amelyeket a szerepkör lehetővé tesz az adott objektumon belüli adatokon.
NotDataActions
notDataActions
Sztringek tömbje, amely meghatározza az engedélyezett DataActionselemből kizárt adatsíkműveleteket.
AssignableScopes
assignableScopes
Sztringek tömbje, amely meghatározza a szerepkör hozzárendeléshez elérhető hatóköreit.

Műveletek formátuma

A műveletek a következő formátumú sztringekkel vannak megadva:

  • {Company}.{ProviderName}/{resourceType}/{action}

A {action} műveleti sztring része határozza meg, hogy milyen típusú műveleteket hajthat végre egy erőforrástípuson. Például a következő sztringek jelennek meg a következőben {action}:

Művelet részkarakterlánca Description
* A helyettesítő karakter hozzáférést biztosít a sztringnek megfelelő összes művelethez.
read Olvasási műveletek (GET) engedélyezése.
write Írási műveletek engedélyezése (PUT vagy PATCH).
action Engedélyezi az egyéni műveleteket, például a virtuális gépek újraindítását (POST).
delete Engedélyezi a törlési műveleteket (DELETE).

Példa szerepkördefinícióra

A közreműködői szerepkör definíciója az Azure PowerShell és az Azure CLI-ben jelenik meg. Az alatta lévő Actions helyettesítő karakterek (*) műveletek azt jelzik, hogy a szerepkörhöz rendelt rendszerbiztonsági tag minden műveletet végrehajthat, vagyis mindent képes kezelni. Ez az Azure által hozzáadott új erőforrástípusokkal együtt a jövőben meghatározott műveletekre is vonatkozik. Az alatta lévő NotActions műveletek kivonása a következőből: Actions. Közreműködői szerepkör NotActions esetén eltávolítja a szerepkörnek az erőforrásokhoz való hozzáférés kezelésére és az Azure Blueprints-hozzárendelések kezelésére vonatkozó képességét.

Közreműködői szerepkör az Azure PowerShell látható módon:

{
  "Name": "Contributor",
  "Id": "b24988ac-6180-42a0-ab88-20f7382dd24c",
  "IsCustom": false,
  "Description": "Lets you manage everything except access to resources.",
  "Actions": [
    "*"
  ],
  "NotActions": [
    "Microsoft.Authorization/*/Delete",
    "Microsoft.Authorization/*/Write",
    "Microsoft.Authorization/elevateAccess/Action",
    "Microsoft.Blueprint/blueprintAssignments/write",
    "Microsoft.Blueprint/blueprintAssignments/delete"
  ],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/"
  ]
}

Közreműködői szerepkör az Azure CLI-ben látható módon:

{
  "assignableScopes": [
    "/"
  ],
  "description": "Lets you manage everything except access to resources.",
  "id": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c",
  "name": "b24988ac-6180-42a0-ab88-20f7382dd24c",
  "permissions": [
    {
      "actions": [
        "*"
      ],
      "notActions": [
        "Microsoft.Authorization/*/Delete",
        "Microsoft.Authorization/*/Write",
        "Microsoft.Authorization/elevateAccess/Action",
        "Microsoft.Blueprint/blueprintAssignments/write",
        "Microsoft.Blueprint/blueprintAssignments/delete"
      ],
      "dataActions": [],
      "notDataActions": []
    }
  ],
  "roleName": "Contributor",
  "roleType": "BuiltInRole",
  "type": "Microsoft.Authorization/roleDefinitions"
}

Vezérlési és adatműveletek

A vezérlősík-műveletek szerepköralapú hozzáférés-vezérlése a Actions szerepkördefiníciók tulajdonságaiban van NotActions megadva. Íme néhány példa az Azure vezérlősík-műveleteire:

  • Tárfiókhoz való hozzáférés kezelése
  • Blobtároló létrehozása, frissítése vagy törlése
  • Erőforráscsoport és annak összes erőforrásának törlése

A vezérlősík hozzáférése nem öröklődik az adatsíkhoz, feltéve, hogy a tárolóhitelesítési módszer "Azure AD Felhasználói fiók" értékre van állítva, nem pedig "Hozzáférési kulcs". Ez az elkülönítés megakadályozza, hogy a helyettesítő karakterekkel (*) rendelkező szerepkörök korlátlan hozzáféréssel férjenek hozzá az adatokhoz. Ha például egy felhasználó olvasói szerepkörrel rendelkezik egy előfizetésben, akkor megtekintheti a tárfiókot, de alapértelmezés szerint nem tekintheti meg a mögöttes adatokat.

Korábban a szerepköralapú hozzáférés-vezérlést nem használták adatműveletekhez. Az adatműveletek engedélyezése az erőforrás-szolgáltatóktól eltérően változott. A vezérlősík műveleteihez használt szerepköralapú hozzáférés-vezérlési engedélyezési modell ki lett terjesztve az adatsíkműveletekre.

Az adatsíkműveletek támogatásához új adattulajdonságok lettek hozzáadva a szerepkör-definícióhoz. Az adatsík műveletei a DataActions tulajdonságokban NotDataActions vannak megadva. Ezen adattulajdonságok hozzáadásával megmarad a vezérlősík és az adatsík elkülönítése. Az aktuális, helyettesítő karakterekkel (*) történő szerepkör-hozzárendelések így nem kaphatnak hirtelen hozzáférést az adatokhoz. Íme néhány adatsíkművelet, amelyek a következőben DataActionsNotDataActionsadhatók meg:

  • Egy tároló bloblistájának olvasása
  • Tárolóblob írása egy tárolóban
  • Egy üzenetsor üzenetének törlése

Íme a Storage Blob-adatolvasó szerepkör definíciója, amely a tulajdonságokban és DataActions a Actions tulajdonságokban is tartalmaz műveleteket. Ez a szerepkör lehetővé teszi a blobtároló és a mögöttes blobadatok olvasását.

A Storage Blob Data Reader szerepkör az Azure PowerShell látható módon:

{
  "Name": "Storage Blob Data Reader",
  "Id": "2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
  "IsCustom": false,
  "Description": "Allows for read access to Azure Storage blob containers and data",
  "Actions": [
    "Microsoft.Storage/storageAccounts/blobServices/containers/read",
    "Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action"
  ],
  "NotActions": [],
  "DataActions": [
    "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read"
  ],
  "NotDataActions": [],
  "AssignableScopes": [
    "/"
  ]
}

Storage Blob Data Reader szerepkör az Azure CLI-ben látható módon:

{
  "assignableScopes": [
    "/"
  ],
  "description": "Allows for read access to Azure Storage blob containers and data",
  "id": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
  "name": "2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
  "permissions": [
    {
      "actions": [
        "Microsoft.Storage/storageAccounts/blobServices/containers/read",
        "Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action"
      ],
      "notActions": [],
      "dataActions": [
        "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read"
      ],
      "notDataActions": []
    }
  ],
  "roleName": "Storage Blob Data Reader",
  "roleType": "BuiltInRole",
  "type": "Microsoft.Authorization/roleDefinitions"
}

A tulajdonságokhoz DataActionsNotDataActions csak adatsíkműveletek adhatók hozzá. Az erőforrás-szolgáltatók a tulajdonság truebeállításával isDataAction azonosítják, hogy mely műveletek adatműveletek. A műveletek isDataActiontruelistájának megtekintéséhez tekintse meg az erőforrás-szolgáltató műveleteit. Az adatműveletekkel nem rendelkező szerepköröknek nem kell rendelkezniük és NotDataActions tulajdonságaik DataActions a szerepkör-definícióban.

Az összes vezérlősík API-hívásának engedélyezését az Azure Resource Manager kezeli. Az adatsík API-hívásainak engedélyezését egy erőforrás-szolgáltató vagy az Azure Resource Manager kezeli.

Példa adatműveletek

A vezérlősík- és adatsíkműveletek működésének jobb megértéséhez vegyünk egy konkrét példát. Alice tulajdonosi szerepkört kapott az előfizetés hatókörében. Bob egy tárfiók hatókörében van hozzárendelve a Storage Blob-adatok közreműködője szerepkörhöz. Az alábbi ábrán ez a példa látható.

A szerepköralapú hozzáférés-vezérlést kiterjesztettük a vezérlősík és az adatsík műveleteinek támogatására

Alice tulajdonosi szerepköre és Bob storage-blobadatok közreműködői szerepköre a következő műveleteket hajtja végre:

Tulajdonos

    Műveletek
    *

Storage-blobadatok közreműködője

    Műveletek
    Microsoft.Storage/storageAccounts/blobServices/containers/delete
    Microsoft.Storage/storageAccounts/blobServices/containers/read
    Microsoft.Storage/storageAccounts/blobServices/containers/write
    Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action
    DataActions
    Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete
    Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
    Microsoft.Storage/storageAccounts/blobServices/containers/blobs/move/action
    Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write

Mivel Alice helyettesítő (*) műveletet hajt végre egy előfizetés hatókörében, az engedélyeik öröklődnek, hogy minden vezérlősík-műveletet végrehajthassanak. Alice képes tárolók olvasására, írására és törlésére. Alice azonban további lépések elvégzése nélkül nem hajthat végre adatsík-műveleteket. Alice például alapértelmezés szerint nem tudja beolvasni a tárolóban lévő blobokat. A blobok olvasásához Alice-nek le kell kérnie a tárelérési kulcsokat, és használnia kell őket a blobok eléréséhez.

Bob engedélyei csak a ActionsStorage-blobadatok közreműködője szerepkörben megadottakra DataActions korlátozódnak. A szerepkör alapján Bob vezérlősík- és adatsíkműveleteket is végrehajthat. Bob például képes a megadott tárfiókban lévő tárolók olvasására, írására és törlésére, valamint a blobok olvasására, írására és törlésére is.

A tárolás vezérlésével és adatsíkjának biztonságával kapcsolatos további információkért tekintse meg az Azure Storage biztonsági útmutatót.

Milyen eszközök támogatják az Azure-szerepkörök adatműveletekhez való használatát?

Az adatműveletek megtekintéséhez és használatához az eszközök vagy SDK-k megfelelő verzióival kell rendelkeznie:

Eszköz Verzió
Azure PowerShell 1.1.0-s vagy újabb verzió
Azure CLI 2.0.30 vagy újabb
Azure for .NET 2.8.0-s vagy újabb verzió
Azure SDK for Go 15.0.0 vagy újabb
Javához készült Azure 1.9.0-s vagy újabb verzió
Azure for Python 0.40.0 vagy újabb
Rubyhoz készült Azure SDK 0.17.1 vagy újabb

A REST API adatműveleteinek megtekintéséhez és használatához az API-version paramétert a következő vagy újabb verzióra kell állítania:

  • 2018-07-01

Műveletek

Az Actions engedély határozza meg a vezérlősík azon műveleteit, amelyeket a szerepkör végrehajthat. Sztringek gyűjteménye, amelyek azonosítják az Azure-erőforrásszolgáltatók biztonságos műveleteit. Íme néhány példa a vezérlősík műveleteire, amelyekben Actionshasználhatók.

Műveleti sztring Description
*/read Hozzáférést biztosít az olvasási műveletekhez az összes Azure-erőforrásszolgáltató összes erőforrástípusához.
Microsoft.Compute/* Hozzáférést biztosít a Microsoft.Compute erőforrás-szolgáltató összes erőforrástípusához tartozó összes művelethez.
Microsoft.Network/*/read Hozzáférést biztosít az olvasási műveletekhez a Microsoft.Network erőforrás-szolgáltató összes erőforrástípusához.
Microsoft.Compute/virtualMachines/* Hozzáférést biztosít a virtuális gépek és a gyermekerőforrás-típusok összes műveletéhez.
microsoft.web/sites/restart/Action Hozzáférést biztosít egy webalkalmazás újraindításához.

NotActions

Az NotActions engedély határozza meg a vezérlősík azon műveleteit, amelyek ki vannak vonva vagy ki vannak zárva az engedélyezett Actions helyettesítő karakterekkel (*). Akkor használja az NotActions engedélyt, ha az engedélyezni kívánt műveletek halmaza egyszerűbben definiálható a helyettesítő karakterrel (*) rendelkezők kivonásávalActions. A szerepkörök (érvényes engedélyek) által biztosított hozzáférés kiszámítása a NotActions műveletekből Actions való kivonással történik.

Actions - NotActions = Effective control plane permissions

Az alábbi táblázat két példát mutat be a Microsoft.CostManagement helyettesítő karakterekre vonatkozó érvényes vezérlősík-engedélyekre:

Actions NotActions Érvényes vezérlősík-engedélyek
Microsoft.CostManagement/exports/* nincs Microsoft.CostManagement/exports/action
Microsoft.CostManagement/exports/read
Microsoft.CostManagement/exports/write
Microsoft.CostManagement/exports/delete
Microsoft.CostManagement/exports/run/action
Microsoft.CostManagement/exports/* Microsoft.CostManagement/exports/delete Microsoft.CostManagement/exports/action
Microsoft.CostManagement/exports/read
Microsoft.CostManagement/exports/write
Microsoft.CostManagement/exports/run/action

Megjegyzés

Ha egy felhasználóhoz olyan szerepkör van hozzárendelve, amely kizár egy műveletet NotActions, és hozzá van rendelve egy második szerepkör, amely hozzáférést biztosít ugyanahhoz a művelethez, a felhasználó végrehajthatja ezt a műveletet. NotActions A nem megtagadási szabály – egyszerűen egy kényelmes módszer az engedélyezett műveletek készletének létrehozására, ha bizonyos műveleteket ki kell zárni.

A NotActions és a megtagadási hozzárendelések közötti különbségek

NotActions és a megtagadási hozzárendelések nem azonosak, és különböző célokat szolgálnak. NotActions A kényelmes módot biztosít arra, hogy bizonyos műveleteket kivonjon egy helyettesítő karakteres (*) műveletből.

A megtagadási hozzárendelések megakadályozzák, hogy a felhasználók bizonyos műveleteket hajtsanak végre, még akkor is, ha egy szerepkör-hozzárendelés hozzáférést biztosít számukra. További információ: Az Azure megtagadási hozzárendeléseinek ismertetése.

DataActions

Az DataActions engedély határozza meg, hogy a szerepkör milyen adatsík-műveleteket hajthat végre az objektumon belüli adatokon. Ha például egy felhasználó olvasási blobadatokhoz fér hozzá egy tárfiókhoz, akkor az abban a tárfiókban lévő blobokat is olvashatja. Íme néhány példa a következőkben DataActionshasználható adatműveletekre:

Adatműveleti sztring Description
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read Egy blobot vagy bloblistát ad vissza.
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write Egy blob írásának eredményét adja vissza.
Microsoft.Storage/storageAccounts/queueServices/queues/messages/read Egy üzenetet ad vissza.
Microsoft.Storage/storageAccounts/queueServices/queues/messages/* Egy üzenetet, illetve egy üzenet írásának vagy törlésének eredményét adja vissza.

NotDataActions

Az NotDataActions engedély határozza meg az adatsík azon műveleteit, amelyek ki vannak vonva vagy ki vannak zárva az engedélyezett DataActions helyettesítő karakterekkel (*). Akkor használja az NotDataActions engedélyt, ha az engedélyezni kívánt műveletek halmaza egyszerűbben definiálható a helyettesítő karakterrel (*) rendelkezők kivonásávalDataActions. A szerepkörök (érvényes engedélyek) által biztosított hozzáférés kiszámítása a NotDataActions műveletekből DataActions való kivonással történik. Minden erőforrás-szolgáltató biztosítja a megfelelő API-kat az adatműveletek elvégzéséhez.

DataActions - NotDataActions = Effective data plane permissions

Az alábbi táblázat két példát mutat be egy Microsoft.Storage helyettesítő karakteres művelet érvényes dátumsík-engedélyére:

DataActions NotDataActions Érvényes adatsík-engedélyek
Microsoft.Storage/storageAccounts/queueServices/queues/messages/* nincs Microsoft.Storage/storageAccounts/queueServices/queues/messages/read
Microsoft.Storage/storageAccounts/queueServices/queues/messages/write
Microsoft.Storage/storageAccounts/queueServices/queues/messages/delete
Microsoft.Storage/storageAccounts/queueServices/queues/messages/add/action
Microsoft.Storage/storageAccounts/queueServices/queues/messages/process/action
Microsoft.Storage/storageAccounts/queueServices/queues/messages/* Microsoft.Storage/storageAccounts/queueServices/queues/messages/delete
Microsoft.Storage/storageAccounts/queueServices/queues/messages/read
Microsoft.Storage/storageAccounts/queueServices/queues/messages/write
Microsoft.Storage/storageAccounts/queueServices/queues/messages/add/action
Microsoft.Storage/storageAccounts/queueServices/queues/messages/process/action

Megjegyzés

Ha egy felhasználóhoz olyan szerepkör van hozzárendelve, amely kizár egy adatműveletet NotDataActions, és egy második szerepkör van hozzárendelve, amely hozzáférést biztosít ugyanahhoz az adatművelethez, a felhasználó végrehajthatja az adatműveletet. NotDataActions A nem megtagadási szabály – egyszerűen egy kényelmes módszer az engedélyezett adatműveletek készletének létrehozására, ha bizonyos adatműveleteket ki kell zárni.

AssignableScopes

A AssignableScopes tulajdonság határozza meg azokat a hatóköröket (gyökér, felügyeleti csoport, előfizetések vagy erőforráscsoportok), ahol szerepkör-definíció rendelhető hozzá. Az egyéni szerepköröket csak a hozzá szükséges felügyeleti csoportban, előfizetésben vagy erőforráscsoportban teheti elérhetővé hozzárendeléshez. Legalább egy felügyeleti csoportot, előfizetést vagy erőforráscsoportot kell használnia.

Ha például AssignableScopes egy előfizetésre van beállítva, az azt jelenti, hogy az egyéni szerepkör hozzárendelésre érhető el a megadott előfizetés előfizetési hatókörében, az előfizetés bármely erőforráscsoportjának erőforráscsoport-hatókörében, vagy az előfizetés bármely erőforrásának erőforrás-hatókörében.

A beépített szerepkörök a gyökérhatókörre ("/") lettek AssignableScopes beállítva. A gyökérhatókör azt jelzi, hogy a szerepkör minden hatókörben hozzárendelhető.

Érvényes hozzárendelhető hatókörök például a következők:

A szerepkör hozzárendeléshez érhető el Példa
Egy előfizetés "/subscriptions/{subscriptionId1}"
Két előfizetés "/subscriptions/{subscriptionId1}", "/subscriptions/{subscriptionId2}"
Hálózati erőforráscsoport "/subscriptions/{subscriptionId1}/resourceGroups/Network"
Egy felügyeleti csoport "/providers/Microsoft.Management/managementGroups/{groupId1}"
Felügyeleti csoport és előfizetés "/providers/Microsoft.Management/managementGroups/{groupId1}", "/subscriptions/{subscriptionId1}",
Minden hatókör (csak a beépített szerepkörökre vonatkozik) "/"

Az egyéni szerepkörök AssignableScopes definíciójában csak egy felügyeleti csoportot definiálhat. Felügyeleti csoport AssignableScopes hozzáadása jelenleg előzetes verzióban érhető el.

Bár a parancssor használatával létrehozhat egyéni szerepkört egy erőforráspéldánysal AssignableScopes , ez nem ajánlott. Minden bérlő legfeljebb 5000 egyéni szerepkört támogat. Ennek a stratégiának a használata kimerítheti az elérhető egyéni szerepköröket. Végső soron a hozzáférési szintet az egyéni szerepkör-hozzárendelés (hatókör + szerepkörengedélyek + rendszerbiztonsági tag) határozza meg, és nem az AssignableScopes egyéni szerepkörben felsoroltak. Ezért hozzon létre egyéni szerepköröket felügyeleti csoporttal, előfizetéssel vagy erőforráscsoporttal AssignableScopes , de rendelje hozzá az egyéni szerepköröket szűk hatókörrel, például erőforrással vagy erőforráscsoporttal.

Az egyéni szerepkörökről AssignableScopes további információt az Egyéni Azure-szerepkörök című témakörben talál.

Következő lépések