Co je řízení přístupu na základě role v Azure (Azure RBAC)?What is Azure role-based access control (Azure RBAC)?

Správa přístupu ke cloudovým prostředkům je velmi důležitou funkcí pro jakoukoli organizaci, která používá cloud.Access management for cloud resources is a critical function for any organization that is using the cloud. Řízení přístupu na základě role v Azure (Azure RBAC) pomáhá spravovat, kdo má přístup k prostředkům Azure, co může s těmito prostředky dělat a k jakým oblastem má přístup.Azure role-based access control (Azure RBAC) helps you manage who has access to Azure resources, what they can do with those resources, and what areas they have access to.

Azure RBAC je autorizační systém postavený na Azure Resource Manager který poskytuje jemně odsoupravenou správu přístupu k prostředkům Azure.Azure RBAC is an authorization system built on Azure Resource Manager that provides fine-grained access management of Azure resources.

Toto video poskytuje rychlý přehled Azure RBAC.This video provides a quick overview of Azure RBAC.

Co můžu dělat s Azure RBAC?What can I do with Azure RBAC?

Tady je několik příkladů toho, co můžete s Azure RBAC dělat:Here are some examples of what you can do with Azure RBAC:

  • Jednomu uživateli můžete povolit správu virtuálních počítačů v předplatném a jinému uživateli správu virtuálních sítí.Allow one user to manage virtual machines in a subscription and another user to manage virtual networks
  • Skupině DBA můžete povolit správu databází SQL v předplatném.Allow a DBA group to manage SQL databases in a subscription
  • Uživateli můžete povolit správu všech prostředků ve skupině prostředků, například virtuálních počítačů, webů a podsítí.Allow a user to manage all resources in a resource group, such as virtual machines, websites, and subnets
  • Aplikaci můžete povolit přístup ke všem prostředkům ve skupině prostředků.Allow an application to access all resources in a resource group

Jak Azure RBAC fungujeHow Azure RBAC works

Přístup k prostředkům pomocí Azure RBAC můžete řídit přiřazením rolí Azure.The way you control access to resources using Azure RBAC is to assign Azure roles. Toto je klíčový koncept, který je třeba pochopit – je to způsob, jakým se oprávnění vynucuje.This is a key concept to understand – it's how permissions are enforced. Přiřazení role se skládá ze tří prvků: objekt zabezpečení, definice role a obor.A role assignment consists of three elements: security principal, role definition, and scope.

Objekt zabezpečeníSecurity principal

Objekt zabezpečení představuje uživatele, skupinu, instanční objekt nebo spravovanou identitu, která požaduje přístup k prostředkům Azure.A security principal is an object that represents a user, group, service principal, or managed identity that is requesting access to Azure resources. K jednomu z těchto objektů zabezpečení můžete přiřadit roli.You can assign a role to any of these security principals.

Diagram znázorňující typy objektů zabezpečení pro přiřazení role

Definice roleRole definition

Definice role je kolekce oprávnění.A role definition is a collection of permissions. Obvykle se mu říká role.It's typically just called a role. Definice role poskytuje seznam operací, které je možné provádět, například čtení, zápis a odstranění.A role definition lists the operations that can be performed, such as read, write, and delete. Role mohou být souhrnné, například vlastník, nebo konkrétní, například čtenář virtuálních počítačů.Roles can be high-level, like owner, or specific, like virtual machine reader.

Diagram znázorňující příklad definice role pro přiřazení role

Azure obsahuje několik předdefinových rolí, které můžete použít.Azure includes several built-in roles that you can use. Role Přispěvatel virtuálních počítačů například uživateli umožňuje vytvářet a spravovat virtuální počítače.For example, the Virtual Machine Contributor role allows a user to create and manage virtual machines. Pokud předdefinované role nesplňuje konkrétní potřeby vaší organizace, můžete si vytvořit vlastní role Azure.If the built-in roles don't meet the specific needs of your organization, you can create your own Azure custom roles.

Toto video poskytuje rychlý přehled předdefinované role a vlastních rolí.This video provides a quick overview of built-in roles and custom roles.

Azure nabízí operace s daty, které umožňují udělit přístup k datům v rámci objektu.Azure has data operations that enable you to grant access to data within an object. Pokud má uživatel například přístup ke čtení dat u účtu úložiště, bude moci číst objekty blob nebo zprávy v rámci daného účtu úložiště.For example, if a user has read data access to a storage account, then they can read the blobs or messages within that storage account.

Další informace najdete v tématu Principy definic rolí Azure.For more information, see Understand Azure role definitions.

OborScope

Obor je sada prostředků, na které se přístup vztahuje.Scope is the set of resources that the access applies to. Když přiřadíte roli, můžete definováním oboru dále omezit akce, které jsou povoleny.When you assign a role, you can further limit the actions allowed by defining a scope. To je užitečné, pokud chcete, aby někdo byl přispěvatelem webu,ale jenom pro jednu skupinu prostředků.This is helpful if you want to make someone a Website Contributor, but only for one resource group.

V Azure můžete zadat obor na čtyřech úrovních:skupina pro správu, předplatné, skupinaprostředků nebo prostředek.In Azure, you can specify a scope at four levels: management group, subscription, resource group, or resource. Obory jsou strukturovány ve vztahu nadřazený-podřízený obor.Scopes are structured in a parent-child relationship. Role můžete přiřazovat na kterékoli z těchto úrovní oboru.You can assign roles at any of these levels of scope.

Diagram znázorňující úrovně oboru pro přiřazení role

Další informace o oboru najdete v tématu Principy oboru.For more information about scope, see Understand scope.

Přiřazení rolíRole assignments

Přiřazení role je proces připojení definice role k uživateli, skupině, objektu služby nebo spravované identitě v konkrétním oboru za účelem udělení přístupu.A role assignment is the process of attaching a role definition to a user, group, service principal, or managed identity at a particular scope for the purpose of granting access. Přístup se uděluje vytvořením přiřazení role a odvolává se odebráním přiřazení role.Access is granted by creating a role assignment, and access is revoked by removing a role assignment.

Následující diagram znázorňuje příklad přiřazení role.The following diagram shows an example of a role assignment. V tomto příkladu byla marketingové skupině přiřazena role Přispěvatel pro skupinu prostředků prodeje farmaceutických výrobků.In this example, the Marketing group has been assigned the Contributor role for the pharma-sales resource group. To znamená, že uživatelé marketingové skupiny mohou vytvářet a spravovat prostředky Azure ve skupině prostředků prodeje farmaceutických výrobků.This means that users in the Marketing group can create or manage any Azure resource in the pharma-sales resource group. Uživatelé marketingové skupiny nemají přístup k prostředkům mimo skupinu prostředků prodeje farmaceutických výrobků, pokud nejsou součástí přiřazení jiné role.Marketing users do not have access to resources outside the pharma-sales resource group, unless they are part of another role assignment.

Diagram znázorňující, jak objekt zabezpečení, definice role a obor vytvářejí přiřazení role

Role můžete přiřazovat pomocí Azure Portal, Azure CLI, Azure PowerShell, azure SDK nebo rozhraní REST API.You can assign roles using the Azure portal, Azure CLI, Azure PowerShell, Azure SDKs, or REST APIs.

Další informace najdete v tématu Postup přiřazení role Azure.For more information, see Steps to assign an Azure role.

Více přiřazení rolíMultiple role assignments

Co se tedy stane, když máte více překrývajících se přiřazení rolí?So what happens if you have multiple overlapping role assignments? Azure RBAC je aditivní model, takže efektivní oprávnění jsou součtem přiřazení rolí.Azure RBAC is an additive model, so your effective permissions are the sum of your role assignments. Představte si následující příklad, ve kterém má uživatel udělenou roli Přispěvatel v oboru předplatného a roli Čtenář ve skupině prostředků.Consider the following example where a user is granted the Contributor role at the subscription scope and the Reader role on a resource group. Součet oprávnění Přispěvatel a Oprávnění Čtenář je v podstatě rolí přispěvatele pro předplatné.The sum of the Contributor permissions and the Reader permissions is effectively the Contributor role for the subscription. Proto v tomto případě nemá přiřazení role Čtenář žádný vliv.Therefore, in this case, the Reader role assignment has no impact.

Diagram znázorňující, jak se více přiřazení rolí překrývají

Přiřazení zamítnutíDeny assignments

Dříve byl Azure RBAC model, který byl jen pro povolení bez odepření, ale teď Azure RBAC podporuje přiřazení zamítnutí omezeným způsobem.Previously, Azure RBAC was an allow-only model with no deny, but now Azure RBAC supports deny assignments in a limited way. Podobně jako přiřazení role připojí přiřazení zamítnutí sadu akcí zamítnutí uživateli, skupině, objektu služby nebo spravované identitě v konkrétním oboru za účelem odepření přístupu.Similar to a role assignment, a deny assignment attaches a set of deny actions to a user, group, service principal, or managed identity at a particular scope for the purpose of denying access. Přiřazení role definuje sadu akcí, které jsou povolené, zatímco přiřazení zamítnutí definuje sadu akcí, které nejsou povolené.A role assignment defines a set of actions that are allowed, while a deny assignment defines a set of actions that are not allowed. Jinými slovy, přiřazení zamítnutí blokuje uživatelům možnost provádět určité akce i v případě, že přiřazení role jim přístup uděluje.In other words, deny assignments block users from performing specified actions even if a role assignment grants them access. Přiřazení zamítnutí mají přednost před přiřazením rolí.Deny assignments take precedence over role assignments.

Další informace najdete v tématu Principy přiřazení zamítnutí Azure.For more information, see Understand Azure deny assignments.

Jak Azure RBAC určuje, jestli má uživatel přístup k prostředkuHow Azure RBAC determines if a user has access to a resource

Níže jsou uvedené kroky vysoké úrovně, které Azure RBAC používá k určení, jestli máte přístup k prostředku.The following are the high-level steps that Azure RBAC uses to determine if you have access to a resource. Tyto kroky platí pro Azure Resource Manager nebo služby datové roviny integrované s Azure RBAC.These steps apply to Azure Resource Manager or data plane services integrated with Azure RBAC. Tyto principy je užitečné chápat, pokud se snažíte vyřešit potíže s přístupem.This is helpful to understand if you are trying to troubleshoot an access issue.

  1. Uživatel (nebo instanční objekt služby) získá token pro Azure Resource Manager.A user (or service principal) acquires a token for Azure Resource Manager.

    Tento token obsahuje členství uživatele ve skupinách (včetně tranzitivního členství ve skupinách).The token includes the user's group memberships (including transitive group memberships).

  2. Uživatel provede s připojeným tokenem volání rozhraní REST API do Azure Resource Manageru.The user makes a REST API call to Azure Resource Manager with the token attached.

  3. Azure Resource Manager načte všechna přiřazení rolí a přiřazení zamítnutí vztahující se k prostředku, na kterém se akce provádí.Azure Resource Manager retrieves all the role assignments and deny assignments that apply to the resource upon which the action is being taken.

  4. Pokud ano, přístup se zablokuje.If a deny assignment applies, access is blocked. V opačném případě bude vyhodnocení pokračovat.Otherwise, evaluation continues.

  5. Azure Resource Manageru zúží přiřazení rolí, které se vztahují na tohoto uživatele nebo jeho skupinu, a určí, jaké role má uživatel u daného prostředku.Azure Resource Manager narrows the role assignments that apply to this user or their group and determines what roles the user has for this resource.

  6. Azure Resource Manager určí, zda je akce ve volání rozhraní API je zahrnuta v rolích, které uživatel pro tento prostředek má.Azure Resource Manager determines if the action in the API call is included in the roles the user has for this resource. Pokud role obsahují Actions zástupné znaky ( * ), jsou skutečná oprávnění vypočítána odečtením NotActions od povoleného Actions .If the roles include Actions that have a wildcard (*), the effective permissions are computed by subtracting the NotActions from the allowed Actions. Podobně platí, že se stejné odčítání provádí pro jakékoli akce s daty.Similarly, the same subtraction is done for any data actions.

    Actions - NotActions = Effective management permissions

    DataActions - NotDataActions = Effective data permissions

  7. Pokud uživatel nemá roli s akcí v požadovaném oboru, přístup není povolen.If the user doesn't have a role with the action at the requested scope, access is not allowed. V opačném případě se vyhodnotí všechny podmínky.Otherwise, any conditions are evaluated.

  8. Pokud přiřazení role zahrnuje podmínky, vyhodnotí se.If the role assignment includes conditions, they are evaluated. V opačném případě je přístup povolen.Otherwise access is allowed.

  9. Pokud jsou splněné podmínky, přístup je povolený.If conditions are met, access is allowed. V opačném případě se přístup nepovoluje.Otherwise access is not allowed.

Následující diagram je souhrnem logiky vyhodnocení.The following diagram is a summary of the evaluation logic.

Vývojový diagram logiky vyhodnocení pro zjištění přístupu k prostředku.

Licenční požadavkyLicense requirements

Používání této funkce je zdarma a je součástí vašeho předplatného Azure.Using this feature is free and included in your Azure subscription.

Další krokyNext steps