Řízení přístupu k prostředkům pomocí rolí
Předdefinované role pro prostředky Azure (používá se PowerShell)
Azure poskytuje několik předdefinovaných rolí pro pokrytí nejběžnějších scénářů zabezpečení. Abyste pochopili, jak tyto role fungují, podíváme se na tři role, které se vztahují na všechny typy prostředků:
- Vlastník: Má úplný přístup ke všem prostředkům, včetně práva delegovat přístup k ostatním.
- Přispěvatel: Může vytvářet a spravovat všechny typy prostředků Azure, ale nemůže udělit přístup ostatním.
- Čtenář: Může zobrazit existující prostředky Azure.
Definice rolí
Každá role je sada vlastností definovaných v souboru JSON (JavaScript Object Notation). Tato definice role zahrnuje vlastnosti Name (Název), ID a Description (Popis). Zahrnuje také přípustná oprávnění (Actions), odepřená oprávnění (NotActions) a rozsah role (například oprávnění ke čtení).
U role Vlastník (Owner) to znamená všechny akce – vyznačeno hvězdičkou (*), žádné odepřené akce a všechny rozsahy – vyznačeno lomítkem (/).
Tyto informace můžete získat pomocí rutiny PowerShellu Get-AzRoleDefinition Owner
.
Get-AzRoleDefinition Owner
Daný kód by měl vytvořit následující výstup:
Name : Owner
Id : 8e3af657-a8ff-443c-a75c-2fe8c4bcb635
IsCustom : False
Description : Lets you manage everything, including access to resources.
Actions : {*}
NotActions : {}
DataActions : {}
NotDataActions : {}
AssignableScopes : {/}
Zkuste stejný příkaz pro role Contributor a Reader a podívejte se na povolené a odepřené akce.
Předdefinované role
Podrobné zkoumání rolí RBAC a rolí uživatelů v Microsoft Entra ID najdete v tématu Prozkoumání role RBAC a uživatelů v Microsoft Entra ID.
Co je definice role?
Definice role je kolekce oprávnění. Definice role obsahuje seznam operací, které může role provádět, například čtení, zápis a odstranění. Může také obsahovat seznam operací, které není možné provádět, nebo operací souvisejících s podkladovými daty.
Jak jsme už popsali, definice role má následující strukturu:
Název | Popis |
---|---|
Id |
Jedinečný identifikátor role přiřazené Azure |
IsCustom |
True if a custom role, False if a built-in role |
Description |
Čitelný popis role |
Actions [] |
Povolená oprávnění; * označuje vše |
NotActions [] |
Odepřená oprávnění |
DataActions [] |
Konkrétní povolená oprávnění, která se aplikují na data, například Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read |
NotDataActions [] |
Konkrétní odepřená oprávnění, která se aplikují na data |
AssignableScopes [] |
Obory, ve kterých se tato role vztahuje; / označuje globální, ale může se spojit s hierarchickým stromem. |
Tato struktura je při použití v řízení přístupu na základě role (RBAC) nebo ze základního rozhraní API reprezentována jako JSON. Tady je příklad definice role Contributor ve formátu JSON.
{
"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"
],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/"
]
}
Vlastnosti Actions a NotActions
Vlastnosti Actions
a NotActions
můžete přizpůsobit tak, abyste oprávnění udělili nebo odepřeli přesně, jak potřebujete. Uvedené vlastnosti mají vždy formát: {Company}.{ProviderName}/{resourceType}/{action}
.
Tady jsou například akce pro tři role, na které jsme se podívali dříve:
Předdefinovaná role | Akce | NotActions |
---|---|---|
Vlastník (Owner) – povolení všech akcí | * |
- |
Přispěvatel (Contributor) – povolení všech akcí kromě zápisu a odstranění přiřazení rolí | * |
Microsoft.Authorization/*/Delete, Microsoft.Authorization/*/Write, Microsoft.Authorization/elevateAccess/Action |
Čtenář (Reader) – povolení všech akcí čtení | */read |
- |
Operace Actions
se zástupnými znaménkami*
označuje, že objekt zabezpečení přiřazený k této roli může provádět všechny akce. Jinými slovy, tato role může spravovat vše, včetně akcí definovaných v budoucnu, protože se do Azure přidají nové typy prostředků. V případě role Reader (Čtenář) je povolena jen akce read
(čtení).
Operace ve sloupci NotActions
se odčítají od operací ve sloupci Actions
. S rolí Přispěvatel odebere schopnost této role NotActions
spravovat přístup k prostředkům a také odebere přiřazování přístupu k prostředkům.
Vlastnosti DataActions a NotDataActions
Operace s daty se definují pomocí vlastností DataActions
a NotDataActions
. Operace s daty můžete zadat odděleně od operací správy. Zabrání se tak tomu, aby aktuální přiřazení role pomocí zástupných znaků (*
) nepředvídaně umožnilo přístup k datům. Tady jsou některé operace s daty, ve DataActions
které můžete zadat:NotDataActions
- Čtení seznamu objektů blob v kontejneru
- Zápis objektu blob úložiště v kontejneru
- Odstranění zprávy ve frontě
Operace s daty můžete přidávat pouze do DataActions
vlastností a NotDataActions
vlastností. Poskytovatelé prostředků označují operace s daty nastavením vlastnosti isDataAction
na hodnotu true
. Role, které nemají datové operace, mohou tyto vlastnosti vynechat z definice role.
Tyto akce fungují naprosto stejně jako jejich protějšky u operací správy. Můžete zadat akce, které chcete povolit (nebo *
pro všechny), a pak zadat seznam konkrétních akcí, které se mají v kolekci NotDataActions
odebrat. Tady je několik příkladů; Úplný seznam akcí a akcí dat najdete v dokumentaci poskytovatele prostředků:
Datová operace | Popis |
---|---|
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete |
Odstranění dat objektů blob |
Microsoft.Compute/virtualMachines/login/action |
Přihlášení k virtuálnímu počítači jako běžný uživatel |
Microsoft.EventHub/namespaces/messages/send/action |
Poslání zpráv v centru událostí |
Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read |
Vrácení souboru/složky nebo seznamu souborů/složek |
Microsoft.Storage/storageAccounts/queueServices/queues/messages/read |
Načtení zprávy z fronty |
Přiřaditelné rozsahy
K plné implementaci role nestačí definovat vlastnosti Actions a NotActions. Musíte také správně určit rozsah role.
Vlastnost role AssignableScopes určuje rozsahy (předplatná, skupiny prostředků nebo prostředky), ve kterých je role k dispozici pro přiřazení. Vlastní roli můžete nastavit tak, aby byla k dispozici pro přiřazení jenom v předplatných nebo ve skupinách prostředků, které ji potřebují. Zbavíte tak uživatelské prostředí nepotřebných předplatných a skupin prostředků.
Několik příkladů:
Záměr | Použitý rozsah |
---|---|
Omezení na předplatné | "/subscriptions/{sub-id}" |
Omezení na konkrétní skupinu prostředků v konkrétním předplatném | "/subscriptions/{sub-id}/resourceGroups/{rg-name}" |
Omezení na konkrétní prostředek | "/subscriptions/{sub-id}/resourceGroups/{rg-name}/{resource-name}" |
Zpřístupnění role pro přiřazení ve dvou předplatných | "/subscriptions/{sub-id}", "/subscriptions/{sub-id}" |
Vytvoření rolí
Microsoft Entra ID se dodává s předdefinovanými rolemi, které pravděpodobně pokrývají 99 % toho, co budete někdy chtít udělat. Pokud je to možné, je vhodnější použít předdefinované role. Můžete však v případě potřeby vytvořit vlastní role.
Poznámka:
Vytvoření vlastní role vyžaduje Microsoft Entra ID P1 nebo P2; Nemůžete vytvořit vlastní role na úrovni Free.
Novou roli můžete vytvořit několika mechanismy:
Centrum pro správu Microsoft Entra: Pomocí Centra pro správu Microsoft Entra můžete vytvořit vlastní roli výběrem rolí a správců v nabídce Vlevo a následným výběrem možnosti Nová vlastní role.
Azure Portal: Pomocí webu Azure Portal můžete vytvořit vlastní roli výběrem rolí ID Microsoft Entra>a správců>Nová vlastní role.
Azure PowerShell: Pomocí rutiny
New-AzRoleDefinition
můžete definovat novou roli.Azure Graph API: Pomocí volání REST do rozhraní Graph API můžete programově vytvořit novou roli.
Část Souhrn tohoto modulu obsahuje odkaz na dokumentaci pro tyto přístupy.