Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud předdefinované role Azure nevyhovují konkrétním potřebám vaší organizace, můžete vytvořit vlastní role. Stejně jako předdefinované role můžete uživatelům, skupinám a instančním objektům přiřadit vlastní role v oborech skupin pro správu, předplatného a skupin prostředků.
Vlastní role je možné sdílet mezi předplatnými, která důvěřují stejnému tenantovi Microsoft Entra. Pro tenanta platí limit 5 000 vlastních rolí. (Pro Microsoft Azure provozovaný společností 21Vianet je limit 2 000 vlastních rolí.) Vlastní role je možné vytvořit pomocí webu Azure Portal, Azure PowerShellu, Azure CLI nebo rozhraní REST API.
Postup vytvoření vlastní role
Tady jsou základní kroky k vytvoření vlastní role.
Určete potřebná oprávnění.
Při vytváření vlastní role potřebujete znát akce, které jsou k dispozici pro definování vašich oprávnění. Obvykle začnete s existující integrovanou rolí a pak ji upravíte podle svých potřeb. Akce přidáte do vlastností
ActionsneboNotActionsdefinice role. Pokud máte datové akce, přidáte je do těchto vlastnostíDataActionsneboNotDataActions.Další informace najdete v další části Jak určit potřebná oprávnění.
Rozhodněte se, jak chcete vytvořit vlastní roli.
Vlastní role můžete vytvářet pomocí webu Azure Portal, Azure PowerShellu, Azure CLI nebo rozhraní REST API.
Vytvořte vlastní roli.
Nejjednodušším způsobem je použít Azure Portal. Postup vytvoření vlastní role pomocí webu Azure Portal najdete v tématu Vytvoření nebo aktualizace vlastních rolí Azure pomocí webu Azure Portal.
Otestujte vlastní roli.
Jakmile máte vlastní roli, musíte ji otestovat, abyste ověřili, že funguje podle očekávání. Pokud budete potřebovat provést úpravy později, můžete vlastní roli aktualizovat.
Určení potřebných oprávnění
Azure má tisíce oprávnění, která můžete potenciálně zahrnout do vlastní role. Tady jsou některé metody, které vám můžou pomoct určit oprávnění, která chcete přidat do vlastní role:
Podívejte se na existující předdefinované role.
Můžete chtít upravit existující roli nebo zkombinovat oprávnění použitá v několika rolích.
Uveďte služby Azure, ke které chcete udělit přístup.
Určete poskytovatele prostředků, kteří se mapují na služby Azure.
Služby Azure zpřístupňují své funkce a oprávnění prostřednictvím poskytovatelů prostředků. Poskytovatel prostředků Microsoft.Compute například poskytuje prostředky virtuálních počítačů a poskytovatel prostředků Microsoft.Billing poskytuje předplatné a fakturační prostředky. Znalost poskytovatelů prostředků vám může pomoct zúžit a určit oprávnění, která potřebujete pro vaši vlastní roli.
Když vytvoříte vlastní roli pomocí webu Azure Portal, můžete také určit poskytovatele prostředků vyhledáním klíčových slov. Tato funkce vyhledávání je popsaná v tématu Vytvoření nebo aktualizace vlastních rolí Azure pomocí webu Azure Portal.
Vyhledejte dostupná oprávnění a vyhledejte oprávnění, která chcete zahrnout.
Když vytvoříte vlastní roli pomocí webu Azure Portal, můžete vyhledat oprávnění podle klíčových slov. Můžete například vyhledat virtuální počítač nebo fakturační oprávnění. Můžete si také stáhnout všechna oprávnění jako soubor CSV a pak tento soubor vyhledat. Tato funkce vyhledávání je popsaná v tématu Vytvoření nebo aktualizace vlastních rolí Azure pomocí webu Azure Portal.
Příklad vlastní role
Následující příklad ukazuje, jak vypadá vlastní role zobrazená pomocí Azure PowerShellu ve formátu JSON. Tuto vlastní roli je možné použít k monitorování a restartování virtuálních počítačů.
{
"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}"
]
}
Následující příklad ukazuje stejnou vlastní roli jako zobrazená pomocí Azure CLI.
[
{
"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"
}
]
Vlastnosti vlastní role
Následující tabulka popisuje, co znamenají vlastnosti vlastní role.
| Vlastnost | Požaduje se | Typ | Popis |
|---|---|---|---|
NameroleName |
Ano | String | Zobrazovaný název vlastní role Definice role je skupina pro správu nebo prostředek na úrovni předplatného, ale definici role je možné použít ve více předplatných, která sdílejí stejného tenanta Microsoft Entra. Tento zobrazovaný název musí být jedinečný v rámci tenanta Microsoft Entra. Může obsahovat písmena, číslice, mezery a speciální znaky. Doporučené maximum: 256 znaků. |
Idname |
Ano | String | Jedinečné ID uživatelsky definované role. Pro Azure PowerShell a Azure CLI se toto ID automaticky vygeneruje při vytváření nové role. |
IsCustomroleType |
Ano | String | Určuje, jestli se jedná o vlastní roli. Nastavte na true nebo CustomRole pro vlastní role. Nastavte na false nebo BuiltInRole pro předdefinované role. |
Descriptiondescription |
Ano | String | Popis vlastní role. Může obsahovat písmena, číslice, mezery a speciální znaky. Doporučené maximum: 512 znaků. |
Actionsactions |
Ano | Řetězec[] | Pole řetězců, které určuje akce řídicí roviny, které role umožňuje provést. Další informace najdete v tématu Akce. |
NotActionsnotActions |
Ne | Řetězec[] | Pole řetězců, které specifikují akce kontrolní roviny, které jsou vyloučeny ze seznamu povolených Actions. Další informace naleznete v tématu NotActions. |
DataActionsdataActions |
Ne | Řetězec[] | Pole řetězců, které určuje akce na úrovni dat, jež role umožňuje provádět s vašimi daty v tomto objektu. Pokud vytvoříte vlastní roli s DataActions, tato role se nedá přiřadit v rámci oboru skupiny pro správu. Další informace najdete v tématu DataActions. |
NotDataActionsnotDataActions |
Ne | Řetězec[] | Pole řetězců, které upřesňuje akce v rovině dat, jež jsou z povoleného DataActions vyloučeny. Další informace naleznete v tématu NotDataActions. |
AssignableScopesassignableScopes |
Ano | Řetězec[] | Pole řetězců určující rozsahy, pro které je vlastní role k dispozici k přiřazení. Maximální počet AssignableScopes je 2 000. Další informace naleznete v tématu AssignableScopes. |
Řetězce oprávnění nerozlišují malá a velká písmena. Při vytváření vlastních rolí je obvyklé používat stejnou velikost písmen, jakou vidíte u oprávnění v operacích poskytovatele prostředků Azure.
Oprávnění se zástupnými znaky
Actions, NotActions, DataActions a NotDataActions podporují zástupné znaky (*) k definování oprávnění. Zástupný znak (*) rozšiřuje oprávnění ke všemu, co odpovídá zadanému řetězci akce. Předpokládejme například, že jste chtěli přidat všechna oprávnění související se službou Microsoft Cost Management a exporty. Můžete přidat všechny tyto řetězce akcí:
Microsoft.CostManagement/exports/action
Microsoft.CostManagement/exports/read
Microsoft.CostManagement/exports/write
Microsoft.CostManagement/exports/delete
Microsoft.CostManagement/exports/run/action
Místo toho, abyste přidali všechny tyto řetězce, stačí přidat řetězec se zástupným znakem. Například následující řetězec se zástupnými znaky odpovídá předchozím pěti řetězcům. To by také zahrnovalo všechna budoucí oprávnění k exportu, která by mohla být přidána.
Microsoft.CostManagement/exports/*
Poznámka:
Doporučujeme explicitně zadat Actions a DataActions namísto použití zástupného znaku (*). Další přístupy a oprávnění udělené v budoucnu prostřednictvím Actions nebo DataActions mohou představovat nežádoucí chování kvůli použití zástupného znaku.
Kdo může vytvořit, odstranit, aktualizovat nebo zobrazit vlastní roli
Stejně jako u vestavěných rolí určuje vlastnost AssignableScopes obory, které mají být role k dispozici pro přiřazení. Vlastnost AssignableScopes vlastní role také určuje, kdo může vytvořit, odstranit, aktualizovat nebo zobrazit vlastní roli.
| Úloha | Akce | Popis |
|---|---|---|
| Vytvoření nebo odstranění vlastní role | Microsoft.Authorization/ roleDefinitions/write |
Uživatelé, kteří mají tuto akci udělenou pro všechny AssignableScopes vlastní role, mohou vytvořit (nebo odstranit) vlastní role pro použití v těchto oborech. Například Vlastníci a Administrátoři uživatelského přístupu skupin pro správu, předplatných a skupin prostředků. |
| Aktualizace vlastní role | Microsoft.Authorization/ roleDefinitions/write |
Uživatelé, kteří mají tuto akci udělenou na všechny AssignableScopes vlastní role, mohou v těchto oblastech aktualizovat vlastní role. Například Vlastníci a Administrátoři uživatelského přístupu skupin pro správu, předplatných a skupin prostředků. |
| Zobrazení vlastní role | Microsoft.Authorization/ roleDefinitions/read |
Uživatelé, kterým je udělena tato akce v oboru, můžou zobrazit vlastní role, které jsou k dispozici pro přiřazení v daném oboru. Všechny předdefinované role umožňují, aby byly vlastní role k dispozici pro přiřazení. |
Poznámka:
I když je role přejmenována, ID role se nezmění. Pokud k vytváření přiřazení rolí používáte skripty nebo automatizaci, doporučujeme místo názvu role použít jedinečné ID role. Proto pokud se role přejmenuje, budou vaše skripty pravděpodobně fungovat.
Najít přiřazení rolí pro odstranění vlastní role
Před odstraněním vlastní role musíte odebrat všechna přiřazení rolí, která používají vlastní roli. Pokud se pokusíte odstranit vlastní roli s přiřazeními rolí, zobrazí se zpráva: There are existing role assignments referencing role (code: RoleDefinitionHasAssignments).
Tady jsou kroky, které vám pomůžou najít přiřazení rolí před odstraněním vlastní role:
- Vyvpsat vlastní definici role.
- V části AssignableScopes získejte skupiny pro správu, předplatná a skupiny prostředků.
- Iterujte přes
AssignableScopesa vypište role přiřazení. - Odeberte tato přiřazení rolí využívající vlastní roli.
- Pokud používáte Microsoft Entra Privileged Identity Management, odeberte oprávněná přiřazení vlastních rolí.
- Odstraňte vlastní roli.
Informace o tom, jak najít nepoužívané vlastní role, najdete v tématu Příznaky – Nelze vytvořit žádné další definice rolí.
Limity vlastních rolí
Následující seznam popisuje omezení vlastních rolí.
- Každý tenant může mít až 5 000 vlastních rolí.
- Microsoft Azure provozovaný společností 21Vianet může mít až 2000 vlastních rolí pro každého tenanta.
- Nelze nastavit
AssignableScopesna kořenový obor názvů ("/"). - Nelze použít zástupné cardy (
*) vAssignableScopes. Toto omezení zástupných znaků pomáhá zajistit, aby uživatel nemohl získat přístup k určitému oboru aktualizací definice role. - Řetězec akce může obsahovat pouze jeden zástupný znak.
- V
AssignableScopesvlastní role můžete definovat pouze jednu skupinu pro správu. - Azure Resource Manager neověřuje existenci skupiny pro správu v definici
AssignableScopesrole . - Není možné přiřadit vlastní role s vlastností
DataActionsv oboru skupiny pro správu. - Můžete vytvořit vlastní roli s
DataActionsa jednou správcovskou skupinou v aplikaciAssignableScopes. Vlastní roli nemůžete přiřadit v samotném oboru skupiny pro správu; Vlastní roli však můžete přiřadit v oboru předplatných v rámci skupiny pro správu. To může být užitečné, pokud potřebujete vytvořit jedinou vlastní roli sDataActions, která musí být přiřazena do více předplatných, namísto toho, abyste pro každé předplatné vytvořili samostatnou vlastní roli.
Další informace o vlastních rolích a skupinách pro správu najdete v tématu Co jsou skupiny pro správu Azure?
Formáty vstupu a výstupu
Pokud chcete vytvořit vlastní roli pomocí příkazového řádku, obvykle pomocí kódu JSON zadáte požadované vlastnosti vlastní role. V závislosti na nástrojích, které používáte, budou vstupní a výstupní formáty vypadat trochu jinak. Tato část obsahuje seznam vstupních a výstupních formátů v závislosti na nástroji.
Azure PowerShell
Pokud chcete vytvořit vlastní roli pomocí Azure PowerShellu, musíte zadat následující vstup.
{
"Name": "",
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Pokud chcete aktualizovat vlastní roli pomocí Azure PowerShellu, musíte zadat následující vstup. Všimněte si, že Id vlastnost byla přidána.
{
"Name": "",
"Id": "",
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Následující příklad ukazuje výstup při výpisu vlastní role pomocí Azure PowerShellu a příkazu ConvertTo-Json .
{
"Name": "",
"Id": "",
"IsCustom": true,
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Azure CLI
Pokud chcete vytvořit nebo aktualizovat vlastní roli pomocí Azure CLI, musíte zadat následující vstup. Tento formát je stejný při vytváření vlastní role pomocí Azure PowerShellu.
{
"Name": "",
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Následující příklad ukazuje výstup při výpisu vlastní role pomocí Azure CLI.
[
{
"assignableScopes": [],
"description": "",
"id": "",
"name": "",
"permissions": [
{
"actions": [],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleName": "",
"roleType": "CustomRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
]
REST API
Pokud chcete vytvořit nebo aktualizovat vlastní roli pomocí rozhraní REST API, musíte zadat následující vstup. Tento formát je stejný formát, který se vygeneruje při vytváření vlastní role pomocí webu Azure Portal.
{
"properties": {
"roleName": "",
"description": "",
"assignableScopes": [],
"permissions": [
{
"actions": [],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
]
}
}
Následující příklad ukazuje výstup při výpisu vlastní role pomocí rozhraní REST API.
{
"properties": {
"roleName": "",
"type": "CustomRole",
"description": "",
"assignableScopes": [],
"permissions": [
{
"actions": [],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
],
"createdOn": "",
"updatedOn": "",
"createdBy": "",
"updatedBy": ""
},
"id": "",
"type": "Microsoft.Authorization/roleDefinitions",
"name": ""
}