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 nesplňuje konkrétní potřeby vaší organizace, můžete si 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 (pouze ve verzi Preview), v oborech předplatného a skupiny prostředků.

Vlastní role je možné sdílet mezi předplatným, která důvěřují stejnému adresáři Azure AD. Pro každý adresář platí limit 5 000 vlastních rolí. (Pro Azure Germany a Azure China 21Vianet je limit 2 000 vlastních rolí.) Vlastní role je možné vytvářet pomocí Azure Portal, Azure PowerShell, Azure CLI nebo REST API.

Postup vytvoření vlastní role

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

  1. Určete příslušná 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í předdefinovou rolí a pak ji upravíte podle svých potřeb. Akce přidáte do vlastností Actions nebo NotActions definice role. Pokud máte akce s daty, přidáte je do DataActions vlastností NotDataActions nebo .

    Další informace najdete v další části Určení oprávnění, která potřebujete.

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

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

  3. Vytvořte vlastní roli.

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

  4. Otestujte vlastní roli.

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

Určení oprávnění, která potřebujete

Azure má tisíce oprávnění, která můžete potenciálně zahrnout do vlastní role. Tady je několik metod, které vám pomůžou určit oprávnění, která chcete přidat do vlastní role:

  • Podívejte se na existující předdefinované role.

    Možná budete chtít upravit existující roli nebo kombinovat oprávnění používaná ve více rolích.

  • Vy list the Azure services you want to grant access to.

  • Určete poskytovatele prostředků, kteří se mapovat na služby Azure.

    Služby Azure zpřístupňuje 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 prostředky předplatného a fakturace. Znalost poskytovatelů prostředků vám může pomoct zúžit a určit oprávnění, která potřebujete pro vlastní roli.

    Když vytváříte vlastní roli pomocí Azure Portal, můžete také určit poskytovatele prostředků hledá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ého slova. Můžete například vyhledat virtuální počítač nebo oprávnění k fakturaci. Všechna oprávnění si také můžete stáhnout 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 zobrazená pomocí Azure PowerShell ve formátu JSON. Tuto vlastní roli můžete 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 je 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ích rolí

Následující tabulka popisuje, co znamenají vlastnosti vlastních rolí.

Vlastnost Požaduje se Typ Popis
Name
roleName
Ano Řetězec Zobrazovaný název vlastní role. Definice role je prostředek na úrovni skupiny pro správu nebo předplatného, ale definici role je možné použít ve více předplatných, která sdílejí stejný adresář Azure AD. Tento zobrazovaný název musí být jedinečný v oboru adresáře služby Azure AD. Může obsahovat písmena, číslice, mezery a speciální znaky. Maximální počet znaků je 128.
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. Pro vlastní true CustomRole role nastavte na nebo . Pro false BuiltInRole předdefinované role nastavte na nebo .
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 1 024.
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ého Actions objektu . Další informace najdete v tématu NotActions.
DataActions
dataActions
No Řetězec[] Pole řetězců, které určuje akce roviny dat, které role umožňuje provádět s vašimi daty v rámci tohoto objektu. Pokud vytvoříte vlastní roli pomocí nástroje , nelze DataActions tuto roli 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ého objektu DataActions . Další informace najdete v tématu NotDataActions.
AssignableScopes
assignableScopes
Yes Řetězec[] Pole řetězců, které určuje obory, pro které je vlastní role k dispozici pro přiřazení. Ve vlastní roli můžete definovat pouze jednu AssignableScopes skupinu pro správu. Přidání skupiny pro správu do AssignableScopes je aktuálně ve verzi Preview. Další informace najdete v tématu AssignableScopes.

V řetězcích oprávnění se nerozlišují malá a velká písmena. Když vytváříte vlastní role, bude se tato konvence shodovat s případem, který se zobrazí pro oprávnění v operacích poskytovatele prostředků Azure.

Oprávnění zástupných znaků

Actions, NotActions , DataActions a NotDataActions podporují zástupné znaky ( * ) pro definování oprávnění. Zástupný znak ( * ) rozšiřuje oprávnění na vše, co odpovídá řetězci akce, který zadáte. Předpokládejme například, že jste chtěli přidat všechna oprávnění související s 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 přidávání všech těchto řetězců stačí přidat zástupný řetězec. Například následující zástupný řetězec je ekvivalentem předchozích pěti řetězců. To by také zahrnovalo všechna budoucí oprávnění k exportu, která by se mohla přidat.

Microsoft.CostManagement/exports/*

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

Stejně jako předdefinované role AssignableScopes Určuje vlastnost obory, které je role k dispozici pro přiřazení. AssignableScopesVlastnost vlastní role také určuje, 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é, kterým je tato akce udělena u všech AssignableScopes vlastních rolí, mohou vytvořit (nebo odstranit) vlastní role pro použití v těchto oborech. Například vlastníci a Správci přístupu uživatelů skupiny pro správu, předplatná a skupiny prostředků.
Aktualizace vlastní role Microsoft.Authorization/ roleDefinitions/write Uživatelé, kterým je tato akce udělená u všech AssignableScopes vlastních rolí, můžou aktualizovat vlastní role v těchto oborech. Například vlastníci a Správci přístupu uživatelů skupiny pro správu, předplatná a skupiny prostředků.
Zobrazení vlastní role Microsoft.Authorization/ roleDefinitions/read Uživatelé, kterým je tato akce udělená 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í.

Omezení vlastních rolí

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

  • Každý adresář může mít až 5000 vlastních rolí.
  • Azure Německo a Azure Čína 21Vianet můžou mít pro každý adresář až 2000 vlastních rolí.
  • Nelze nastavit AssignableScopes do kořenového oboru ( "/" ).
  • V nástroji nelze použít zástupné znaky ( * ) AssignableScopes . Toto omezení zástupných znaků pomáhá zajistit, aby uživatel mohl získat přístup k oboru aktualizací definice role.
  • V rámci vlastní role můžete definovat jenom jednu skupinu pro správu AssignableScopes . Přidání skupiny pro správu do AssignableScopes je aktuálně ve verzi Preview.
  • V řetězci akce můžete mít jenom jeden zástupný znak.
  • Vlastní role se DataActions nedají přiřadit v oboru skupiny pro správu.
  • Azure Resource Manager neověřuje existenci skupiny pro správu v oboru přiřazení definice role.

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

Chcete-li vytvořit vlastní roli pomocí příkazového řádku, obvykle použijte JSON k určení vlastností, které chcete použít pro vlastní roli. V závislosti na používaných nástrojích se formáty vstupu a výstupu budou mírně lišit. V této části jsou uvedeny formáty vstupu a výstupu 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": []
}

chcete-li aktualizovat vlastní roli pomocí Azure PowerShell, je nutné zadat následující vstup. Všimněte si, že byla Id přidána vlastnost.

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

následující ukázka ukazuje 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í rozhraní příkazového řádku Azure, musíte zadat následující vstup. Tento formát má při vytváření vlastní role pomocí Azure PowerShell stejný formát.

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

Následující ukázka ukazuje příklad výstupu 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"
  }
]

Rozhraní REST API

Pokud chcete vytvořit nebo aktualizovat vlastní roli pomocí REST API, musíte zadat následující vstup. Tento formát je stejný formát, který se generuje při vytvoření vlastní role pomocí Azure Portal.

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

Následující ukázka ukazuje příklad výstupu při výpisu vlastní role pomocí 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