Vlastní role Azure

Důležité

Přidání skupiny pro správu do AssignableScopes je aktuálně ve verzi Preview. Tato verze Preview se poskytuje bez smlouvy o úrovni služeb a nedoporučuje se pro úlohy v produkčním prostředí. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

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 přiřadit vlastní role uživatelům, skupinám a instančním objektům ve skupině pro správu (jenom ve verzi Preview), předplatném a rozsahům skupin prostředků.

Vlastní role je možné sdílet mezi předplatnými, která důvěřují stejnému Azure AD tenantovi. Pro každého tenanta platí limit 5 000 vlastních rolí. (Pro Azure China 21Vianet je limit 2 000 vlastních rolí.) Vlastní role je možné vytvořit pomocí Azure Portal, Azure PowerShell, Azure CLI nebo rozhraní REST API.

Postup vytvoření vlastní role

Tady jsou základní kroky k vytvoření vlastní role.

  1. Určete potřebná oprávnění.

    Při vytváření vlastní role potřebujete znát akce, které jsou k dispozici k definování 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 Actionsdefinice role nebo NotActions vlastnosti. Pokud máte akce s daty, přidáte je do DataActions těchto nebo NotDataActions vlastností.

    Další informace najdete v další části Postup určení potřebných oprávnění.

  2. Rozhodněte se, jak chcete vytvořit vlastní roli.

    Vlastní role můžete vytvářet pomocí Azure Portal, Azure PowerShell, Azure CLI nebo rozhraní REST API.

  3. Vytvořte vlastní roli.

    Nejjednodušším způsobem je použít Azure Portal. Postup vytvoření vlastní role pomocí Azure Portal najdete v tématu Vytvoření nebo aktualizace vlastních rolí Azure pomocí Azure Portal.

  4. Otestujte vlastní roli.

    Jakmile budete mít vlastní roli, musíte ji otestovat, abyste ověřili, že funguje podle očekávání. Pokud potřebujete později provést úpravy, můžete aktualizovat vlastní roli.

Jak určit potřebná 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 mapuje 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 vlastní roli.

    Když vytvoříte vlastní roli pomocí 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í Azure Portal.

    Podokno Přidat oprávnění s poskytovatelem prostředků

  • Vyhledejte dostupná oprávnění a vyhledejte oprávnění, která chcete zahrnout.

    Když vytvoříte vlastní roli pomocí Azure Portal, můžete vyhledat oprávnění podle klíčových slov. Můžete například vyhledat oprávnění k virtuálnímu počítači nebo fakturaci . 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í Azure Portal.

    Přidání seznamu oprávnění

Příklad vlastní role

Následující příklad ukazuje, jak vypadá vlastní role jako zobrazená pomocí Azure PowerShell 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 zobrazenou 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
Name
roleName
Ano Řetězec Zobrazovaný název vlastní role. Zatímco definice role je skupina pro správu nebo prostředek na úrovni předplatného, definice role se dá použít v několika předplatných, která sdílejí stejnou Azure AD tenanta. Tento zobrazovaný název musí být jedinečný v oboru tenanta Azure AD. Může obsahovat písmena, číslice, mezery a speciální znaky. Maximální počet znaků je 512.
Id
name
Ano Řetězec Jedinečné ID vlastní role. Pro Azure PowerShell a Azure CLI se toto ID automaticky vygeneruje při vytváření nové role.
IsCustom
roleType
Ano Řetězec Určuje, jestli se jedná o vlastní roli. Nastavte na true nebo CustomRole pro vlastní role. Nastavte nebo falseBuiltInRole pro předdefinované role.
Description
description
Ano Řetězec Popis vlastní role. Může obsahovat písmena, číslice, mezery a speciální znaky. Maximální počet znaků je 2048.
Actions
actions
Yes Řetězec[] Pole řetězců, které určuje akce řídicí roviny, které role umožňuje provádět. Další informace najdete v tématu Akce.
NotActions
notActions
No Řetězec[] Pole řetězců, které určuje akce řídicí roviny, které jsou vyloučeny z povolené Actions. Další informace najdete v tématu NotActions.
DataActions
dataActions
No Řetězec[] Pole řetězců, které určuje akce roviny dat, které tato role umožňuje provádět s daty v daném objektu. Pokud vytvoříte vlastní roli s DataActions, tuto roli nelze přiřadit v oboru skupiny pro správu. Další informace najdete v tématu DataActions.
NotDataActions
notDataActions
No Řetězec[] Pole řetězců, které určuje akce roviny dat, které jsou vyloučeny z povolené DataActions. Další informace najdete v tématu NotDataActions.
AssignableScopes
assignableScopes
Yes Řetězec[] Pole řetězců, které určuje obory, které má vlastní role k dispozici pro přiřazení. Maximální počet je AssignableScopes 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í se konvence shoduje s případem, že se zobrazí oprávnění v operacích poskytovatele prostředků Azure.

Oprávnění se zástupnými znaků

Actions, , NotActionsDataActionsa NotDataActions podpora zástupných znaků (*) 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 chcete přidat všechna oprávnění související se službou Azure 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í zástupný řetězec 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/*

Doporučujeme místo použití zástupného* znaku () zadat a DataActions explicitně ho zadatActions. Další přístup a oprávnění udělená v budoucnu Actions nebo DataActions může být nežádoucím chováním pomocí zástupné dokumentace.

Kdo může vytvořit, odstranit, aktualizovat nebo zobrazit vlastní roli

Stejně jako předdefinované role AssignableScopes určuje vlastnost obory, které má role k dispozici pro přiřazení. Vlastnost AssignableScopes vlastní role také řídí, kdo může vytvořit, odstranit, aktualizovat nebo zobrazit vlastní roli.

Úkol 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, můžou vytvořit (nebo odstranit) vlastní role pro použití v těchto oborech. Například Vlastníci a správci uživatelských přístupů 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 pro všechny AssignableScopes vlastní role, můžou v těchto oborech aktualizovat vlastní role. Například Vlastníci a správci uživatelských přístupů skupin pro správu, předplatných a skupin prostředků.
Zobrazení vlastní role Microsoft.Authorization/ roleDefinitions/read Uživatelé, kteří mají tuto akci udělenou 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í.

Vyhledání 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:

Limity vlastních rolí

Následující seznam popisuje limity pro vlastní role.

  • Každý tenant může mít až 5 000 vlastních rolí.
  • Azure China 21Vianet může mít pro každého tenanta až 2000 vlastních rolí.
  • Nelze nastavit AssignableScopes kořenový obor ("/").
  • Nelze použít zástupné cardy (*) v AssignableScopes. 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.
  • Ve vlastní roli můžete definovat pouze jednu skupinu AssignableScopes pro správu. Přidání skupiny pro správu do AssignableScopes skupiny pro správu je aktuálně ve verzi Preview.
  • Řetězec akce může obsahovat pouze jeden zástupný znak.
  • Vlastní role s DataActions oborem skupiny pro správu nelze přiřadit.
  • Azure Resource Manager neověřuje existenci skupiny pro správu v definici AssignableScopesrole .

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 použijete JSON k určení požadovaných vlastností pro vlastní roli. V závislosti na nástrojích, které používáte, se vstupní a výstupní formáty mírně liší. 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 PowerShell, musíte zadat následující vstup.

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

Pokud chcete aktualizovat vlastní roli pomocí Azure PowerShell, 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ásleduje příklad výstupu při výpisu vlastní role pomocí Azure PowerShell 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 PowerShell.

{
  "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ý, který se vygeneruje při vytváření vlastní role pomocí Azure Portal.

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

Následuje příklad výstupu 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": ""
}

Další kroky