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

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 (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.Role-based access control (RBAC) helps you manage who has access to Azure resources, what they can do with those resources, and what areas they have access to.

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

Co mi RBAC umožňuje?What can I do with RBAC?

Tady je několik příkladů toho, co vám RBAC umožňuje:Here are some examples of what you can do with 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

Osvědčený postup pro použití RBACBest practice for using RBAC

Pomocí řízení přístupu na základě role můžete povinnosti v rámci týmu oddělit a udělit uživatelům jenom takový přístup, který potřebují k výkonu své práce.Using RBAC, you can segregate duties within your team and grant only the amount of access to users that they need to perform their jobs. Místo toho, abyste všem uživatelům udělili neomezená oprávnění v předplatném nebo prostředcích Azure, můžete povolit pouze určité akce v určitém oboru.Instead of giving everybody unrestricted permissions in your Azure subscription or resources, you can allow only certain actions at a particular scope.

Osvědčeným postupem při plánování strategie řízení přístupu je udělit uživatelům nejnižší úroveň oprávnění, kterou k práci potřebují.When planning your access control strategy, it's a best practice to grant users the least privilege to get their work done. Následující diagram ukazuje navrhovaný způsob používání RBAC.The following diagram shows a suggested pattern for using RBAC.

RBAC a nejnižší úroveň oprávnění

Jak RBAC fungujeHow RBAC works

Způsob řízení přístupu k prostředkům pomocí RBAC spočívá ve vytvoření přiřazení rolí.The way you control access to resources using RBAC is to create role assignments. To je klíčový koncept, který je třeba pochopit, protože udává, jak se oprávnění vynucují.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í je objekt, který představuje uživatele, skupinu, instanční objekt nebo spravovanou identitu, která žádá o 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.

Objekt zabezpečení pro přiřazení role

  • Uživatel – jednotlivec, který má profil ve službě Azure Active Directory.User - An individual who has a profile in Azure Active Directory. Můžete také přiřadit role uživatelům v jiných tenantech.You can also assign roles to users in other tenants. Informace o uživatelích v jiných organizacích najdete v článku o B2B ve službě Azure Active Directory.For information about users in other organizations, see Azure Active Directory B2B.
  • Skupina – skupina uživatelů vytvořená ve službě Azure Active Directory.Group - A set of users created in Azure Active Directory. Když přiřadíte roli skupině, budou mít danou roli všichni její uživatelé.When you assign a role to a group, all users within that group have that role.
  • Instanční objekt – identita zabezpečení, kterou používají aplikace nebo služby pro přístup ke konkrétním prostředkům Azure.Service principal - A security identity used by applications or services to access specific Azure resources. Můžete si ji představit jako identitu uživatele (uživatelské jméno a heslo nebo certifikát) pro aplikaci.You can think of it as a user identity (username and password or certificate) for an application.
  • Spravovaná identita – identita v Azure Active Directory, kterou automaticky spravuje Azure.Managed identity - An identity in Azure Active Directory that is automatically managed by Azure. Spravované identity obvykle používáte při vývoji cloudových aplikací pro správu přihlašovacích údajů pro ověřování ve službách Azure.You typically use managed identities when developing cloud applications to manage the credentials for authenticating to Azure services.

Definice roleRole definition

Definice role je kolekce oprávnění.A role definition is a collection of permissions. Obvykle se nazývá jenom 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.

Definice role pro přiřazení role

Azure obsahuje několik předdefinovaných rolí, které můžete využít.Azure includes several built-in roles that you can use. V následujícím seznamu najdete čtyři základní předdefinované role.The following lists four fundamental built-in roles. První tři se vztahují ke všem typům prostředků.The first three apply to all resource types.

  • Vlastník – má úplný přístup ke všem prostředkům, včetně práva delegovat přístup na ostatní.Owner - Has full access to all resources including the right to delegate access to others.
  • Přispěvatel – může vytvářet a spravovat všechny typy prostředků Azure, ale nemůže udělovat přístup ostatním.Contributor - Can create and manage all types of Azure resources but can’t grant access to others.
  • Čtenář – může zobrazit existující prostředky Azure.Reader - Can view existing Azure resources.
  • Správce uživatelských přístupů – může spravovat uživatelský přístup k prostředkům Azure.User Access Administrator - Lets you manage user access to Azure resources.

Zbývající předdefinované role umožňují správu konkrétních prostředků Azure.The rest of the built-in roles allow management of specific Azure resources. 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 nevyhovují konkrétním potřebám vaší organizace, můžete vytvořit vlastní role pro prostředky Azure.If the built-in roles don't meet the specific needs of your organization, you can create your own custom roles for Azure resources.

Azure obsahuje 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 vysvětlení definic rolí pro prostředky Azure.For more information, see Understand role definitions for Azure resources.

RozsahScope

Obor je sada prostředků, na které se vztahuje přístup.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é v případě, kdy někomu chcete udělit roli Přispěvatel webů, ale pouze 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 více úrovních: na úrovni skupiny pro správu, předplatného, skupiny prostředků nebo prostředku.In Azure, you can specify a scope at multiple 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.

Obor přiřazení role

Když udělíte přístup na úrovni nadřízeného oboru, podřízené obory zdědí příslušná oprávnění.When you grant access at a parent scope, those permissions are inherited to the child scopes. Například:For example:

  • Pokud uživateli přiřadíte roli Vlastník na úrovni oboru skupiny pro správu, může tento uživatel spravovat vše ve všech předplatných v příslušné skupině pro správu.If you assign the Owner role to a user at the management group scope, that user can manage everything in all subscriptions in the management group.
  • Pokud přiřadíte roli Čtenář skupině v oboru předplatného, členové takové skupiny mohou zobrazit všechny skupiny prostředků a prostředky v daném předplatném.If you assign the Reader role to a group at the subscription scope, the members of that group can view every resource group and resource in the subscription.
  • Pokud přiřadíte roli Přispěvatel aplikaci v oboru skupiny prostředků, může aplikace spravovat prostředky všech typů v dané skupině prostředků, ale už ne žádné jiné skupiny prostředků v předplatném.If you assign the Contributor role to an application at the resource group scope, it can manage resources of all types in that resource group, but not other resource groups in the subscription.

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 pro účely 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.

Přiřazení role za účelem řízení přístupu

Přiřazení rolí můžete vytvořit pomocí portálu Azure Portal, Azure CLI, Azure PowerShellu, sad Azure SDK nebo rozhraní REST API.You can create role assignments using the Azure portal, Azure CLI, Azure PowerShell, Azure SDKs, or REST APIs. V každé skupině pro správu můžete mít až 2000 přiřazení rolí v každém předplatném a v 500 přiřazení rolí.You can have up to 2000 role assignments in each subscription and 500 role assignments in each management group. K vytváření a odebírání přiřazení rolí musíte mít oprávnění Microsoft.Authorization/roleAssignments/*.To create and remove role assignments, you must have Microsoft.Authorization/roleAssignments/* permission. Toto oprávnění se uděluje prostřednictvím role Vlastník nebo Správce uživatelských přístupů.This permission is granted through the Owner or User Access Administrator roles.

Přiřazení více rolíMultiple role assignments

Co se 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? RBAC je aditivní model, takže vaše efektivní oprávnění jsou přidáním přiřazení rolí.RBAC is an additive model, so your effective permissions are the addition of your role assignments. Vezměte v úvahu následující příklad, kdy je uživateli udělena role Přispěvatel v oboru předplatného a role č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. Přidání oprávnění přispěvatele a oprávnění čtenářů je efektivně rolí přispěvatele pro skupinu prostředků.The addition of the Contributor permissions and the Reader permissions is effectively the Contributor role for the resource group. Proto v takovém případě přiřazení role čtenáře nemá žádný vliv.Therefore, in this case, the Reader role assignment has no impact.

Přiřazení více rolí

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

Model RBAC původně umožňoval jen povolení, ne zamítnutí, teď ale omezeně podporuje také přiřazení zamítnutí.Previously, RBAC was an allow-only model with no deny, but now RBAC supports deny assignments in a limited way. Podobně jako u přiřazení role přiřazení zamítnutí připojuje sadu akcí Odepřít pro uživatele, skupinu, instanční objekt nebo spravovanou identitu v konkrétním oboru pro účely 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 povoleny, zatímco přiřazení zamítnutí definuje sadu akcí, které nejsou povoleny.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 Vysvětlení přiřazení zamítnutí pro prostředky Azure.For more information, see Understand deny assignments for Azure resources.

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

V následující části popisujeme obecné kroky, které se v modelu RBAC používají k určení toho, zda budete mít v rovině správy přístup k prostředku.The following are the high-level steps that RBAC uses to determine if you have access to a resource on the management plane. 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. 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.

  5. 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.

  6. Pokud uživatel nemá roli s akcí v požadovaném oboru, není přístup povolen.If the user doesn’t have a role with the action at the requested scope, access is not granted. V opačném případě Azure Resource Manager ověří, zda platí přiřazení zamítnutí.Otherwise, Azure Resource Manager checks if a deny assignment applies.

  7. Pokud ano, přístup se zablokuje.If a deny assignment applies, access is blocked. Pokud ne, přístup je udělen.Otherwise access is granted.

Licenční požadavkyLicense requirements

Pomocí 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