Vysvětlení přiřazení rolí Azure

Přiřazení rolí umožňují udělit instančnímu objektu (například uživateli, skupině, spravované identitě nebo instančnímu objektu) přístup ke konkrétnímu prostředku Azure. Tento článek popisuje podrobnosti o přiřazeních rolí.

Přiřazení role

Přístup k prostředkům Azure se uděluje vytvořením přiřazení role a přístup se odvolá odebráním přiřazení role.

Přiřazení role má několik komponent, mezi které patří:

  • Objekt zabezpečení nebo přiřazený role.
  • Role, kterou mají přiřazenou.
  • Obor, ke kterému je role přiřazena.
  • Název přiřazení role a popis, který vám pomůže vysvětlit, proč byla role přiřazena.

Azure RBAC můžete například použít k přiřazování rolí, jako jsou:

  • Uživatel Sally má přístup vlastníka k účtu úložiště contoso123 ve skupině prostředků ContosoStorage.
  • Všichni ve skupině Cloud Správa istrators ve skupině Microsoft Entra ID mají přístup ke všem prostředkům ve skupině prostředků ContosoStorage.
  • Spravovaná identita přidružená k aplikaci může restartovat virtuální počítače v rámci předplatného společnosti Contoso.

Následující příklad ukazuje příklad vlastností v přiřazení role při zobrazení pomocí Azure PowerShellu:

{
  "RoleAssignmentName": "00000000-0000-0000-0000-000000000000",
  "RoleAssignmentId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
  "Scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
  "DisplayName": "User Name",
  "SignInName": "user@contoso.com",
  "RoleDefinitionName": "Contributor",
  "RoleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c",
  "ObjectId": "22222222-2222-2222-2222-222222222222",
  "ObjectType": "User",
  "CanDelegate": false,
  "Description": null,
  "ConditionVersion": null,
  "Condition": null
}

Následující příklad ukazuje příklad vlastností v přiřazení role při zobrazení pomocí Azure CLI nebo rozhraní REST API:

{
  "canDelegate": null,
  "condition": null,
  "conditionVersion": null,
  "description": null,
  "id": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
  "name": "00000000-0000-0000-0000-000000000000",
  "principalId": "22222222-2222-2222-2222-222222222222",
  "principalName": "user@contoso.com",
  "principalType": "User",
  "roleDefinitionId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c",
  "roleDefinitionName": "Contributor",
  "scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
  "type": "Microsoft.Authorization/roleAssignments"
}

Následující tabulka popisuje, co znamenají vlastnosti přiřazení role.

Vlastnost Popis
RoleAssignmentName
name
Název přiřazení role, což je globálně jedinečný identifikátor (GUID).
RoleAssignmentId
id
Jedinečné ID přiřazení role, které zahrnuje název.
Scope
scope
Identifikátor prostředku Azure, na který je přiřazení role vymezeno.
RoleDefinitionId
roleDefinitionId
Jedinečné ID role.
RoleDefinitionName
roleDefinitionName
Název role.
ObjectId
principalId
Identifikátor objektu Microsoft Entra pro objekt zabezpečení, který má přiřazenou roli.
ObjectType
principalType
Typ objektu Microsoft Entra, který objekt zabezpečení představuje. Platné hodnoty zahrnují User, Groupa ServicePrincipal.
DisplayName U přiřazení rolí pro uživatele se zobrazí zobrazované jméno uživatele.
SignInName
principalName
Jedinečný hlavní název uživatele (UPN) nebo název aplikace přidružené k instančnímu objektu.
Description
description
Popis přiřazení role.
Condition
condition
Příkaz podmínky sestavený pomocí jedné nebo více akcí z definice role a atributů
ConditionVersion
conditionVersion
Číslo verze podmínky. Výchozí hodnota je 2.0 a je jedinou podporovanou verzí.
CanDelegate
canDelegate
Není implementováno.

Obor

Při vytváření přiřazení role je potřeba zadat obor, ve kterém se použije. Obor představuje prostředek nebo sadu prostředků, ke kterým má objekt zabezpečení povolený přístup. Přiřazení role můžete vymezit na jeden prostředek, skupinu prostředků, předplatné nebo skupinu pro správu.

Tip

Použijte nejmenší rozsah, který potřebujete ke splnění svých požadavků.

Pokud například potřebujete udělit spravované identitě přístup k jednomu účtu úložiště, je vhodné vytvořit přiřazení role v oboru účtu úložiště, ne v oboru skupiny prostředků nebo předplatného.

Další informace o oboru naleznete v tématu Vysvětlení oboru.

Role k přiřazení

Přiřazení role je přidružené k definici role. Definice role určuje oprávnění, která má objekt zabezpečení mít v rámci oboru přiřazení role.

Můžete přiřadit předdefinované definice role nebo vlastní definici role. Při vytváření přiřazení role některé nástroje vyžadují, abyste použili ID definice role, zatímco jiné nástroje umožňují zadat název role.

Další informace o definicích rolí najdete v tématu Vysvětlení definic rolí.

Objekt zabezpečení

Mezi objekty zabezpečení patří uživatelé, skupiny zabezpečení, spravované identity, identity úloh a instanční objekty. Objekty zabezpečení se vytvářejí a spravují ve vašem tenantovi Microsoft Entra. Roli můžete přiřadit libovolnému objektu zabezpečení. Pomocí ID objektu Microsoft Entra ID identifikujte objekt zabezpečení, kterému chcete přiřadit roli.

Při vytváření přiřazení role pomocí Azure PowerShellu, Azure CLI, Bicep nebo jiné technologie infrastruktury jako kódu (IaC) zadáte typ objektu zabezpečení. Mezi hlavní typy patří User, Group a ServicePrincipal. Je důležité zadat správný typ objektu zabezpečení. Jinak může dojít k přerušovaným chybám nasazení, zejména při práci s instančními objekty a spravovanými identitami.

Název

Název prostředku přiřazení role musí být globálně jedinečný identifikátor (GUID).

Názvy prostředků přiřazení rolí musí být v rámci tenanta Microsoft Entra jedinečné, i když je obor přiřazení role užší.

Tip

Když vytvoříte přiřazení role pomocí webu Azure Portal, Azure PowerShellu nebo Azure CLI, proces vytvoření automaticky přiřadí roli jedinečný název.

Pokud vytvoříte přiřazení role pomocí bicep nebo jiné technologie infrastruktury jako kódu (IaC), musíte pečlivě naplánovat, jak pojmenujete přiřazení rolí. Další informace najdete v tématu Vytvoření prostředků Azure RBAC pomocí Bicep.

Chování při odstraňování prostředků

Když odstraníte uživatele, skupinu, instanční objekt nebo spravovanou identitu z ID Microsoft Entra, je vhodné odstranit všechna přiřazení rolí. Neodstraní se automaticky. Všechna přiřazení rolí, která odkazují na odstraněné ID objektu zabezpečení, budou neplatná.

Pokud se pokusíte znovu použít název přiřazení role pro jiné přiřazení role, nasazení selže. K tomuto problému pravděpodobně dojde, když k nasazení přiřazení rolí použijete Bicep nebo šablonu Azure Resource Manageru (šablonu ARM), protože při použití těchto nástrojů musíte explicitně nastavit název přiřazení role. Pokud chcete toto chování obejít, měli byste před opětovným vytvořením odebrat staré přiřazení role nebo zajistit, abyste při nasazení nového přiřazení role použili jedinečný název.

Popis

K přiřazení role můžete přidat textový popis. I když jsou popisy volitelné, je vhodné je přidat do přiřazení rolí. Zadejte krátké odůvodnění, proč objekt zabezpečení potřebuje přiřazenou roli. Když někdo audituje přiřazení rolí, můžou popisy pomoct pochopit, proč se vytvořil a jestli jsou stále použitelné.

Podmínky

Některé role podporují podmínky přiřazení rolí na základě atributů v kontextu konkrétních akcí. Podmínka přiřazení role je další kontrola, kterou můžete volitelně přidat k přiřazení role, abyste zajistili podrobnější řízení přístupu.

Můžete například přidat podmínku, která vyžaduje, aby měl objekt konkrétní značku, aby uživatel mohl objekt přečíst.

Podmínky obvykle vytváříte pomocí editoru vizuálních podmínek, ale tady je příklad podmínky, jak vypadá v kódu:

((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEqualsIgnoreCase 'Cascade'))

Předchozí podmínka umožňuje uživatelům číst objekty blob pomocí klíče značky indexu objektů blob v Projectua hodnoty Kaskády.

Další informace o podmínkách najdete v tématu Co je řízení přístupu na základě atributů Azure (Azure ABAC)?

Další kroky