Что такое управление доступом на основе ролей в Azure (RBAC)?What is Azure role-based access control (Azure RBAC)?

Управление доступом к облачным ресурсам является критически важной функцией в любой организации, использующей облако.Access management for cloud resources is a critical function for any organization that is using the cloud. Управление доступом на основе ролей Azure (RBAC Azure) позволяет управлять доступом пользователей к ресурсам Azure, включая настройку разрешений на выполнение операций с этими ресурсами и определение областей доступа.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.

RBAC Azure — это система авторизации на основе Azure Resource Manager, которая обеспечивает широкие возможности управления доступом к ресурсам Azure.Azure RBAC is an authorization system built on Azure Resource Manager that provides fine-grained access management of Azure resources.

В этом видео представлен краткий обзор Azure RBAC.This video provides a quick overview of Azure RBAC.

Какие возможности обеспечивает RBAC Azure?What can I do with Azure RBAC?

Вот примеры того, что можно выполнять с помощью RBAC Azure:Here are some examples of what you can do with Azure RBAC:

  • предоставление одному пользователю разрешения на управление виртуальными машинами в подписке, а другому — на управление виртуальными сетями;Allow one user to manage virtual machines in a subscription and another user to manage virtual networks
  • предоставление группе DBA разрешения на управление базами данных SQL в подписке;Allow a DBA group to manage SQL databases in a subscription
  • предоставление пользователю разрешения на управление всеми ресурсами в группе ресурсов, включая виртуальные машины, веб-сайты и подсети;Allow a user to manage all resources in a resource group, such as virtual machines, websites, and subnets
  • представление приложению доступа ко всем ресурсам в группе ресурсов.Allow an application to access all resources in a resource group

Принцип работы RBAC AzureHow Azure RBAC works

Для управления доступом к ресурсам с помощью Azure RBAC создаются назначения ролей.The way you control access to resources using Azure RBAC is to assign Azure roles. Это важнейшее понятие. Именно таким образом предоставляются разрешения.This is a key concept to understand – it's how permissions are enforced. Назначение ролей состоит из трех элементов: субъект безопасности, определение роли и область действия.A role assignment consists of three elements: security principal, role definition, and scope.

Субъект безопасностиSecurity principal

Субъект безопасности — это объект, представляющий пользователя, группу, субъект-службу или управляемое удостоверение, которые запрашивают доступ к ресурсам Azure.A security principal is an object that represents a user, group, service principal, or managed identity that is requesting access to Azure resources. Любому из этих субъектов безопасности можно назначить роль.You can assign a role to any of these security principals.

Субъект безопасности для назначения роли

Определение ролиRole definition

Определение роли представляет собой коллекцию разрешений.A role definition is a collection of permissions. Обычно это называется ролью.It's typically just called a role. В определении роли перечисляются операции, которые можно выполнить, например чтение, запись и удаление.A role definition lists the operations that can be performed, such as read, write, and delete. Роль может быть общей, например "Владелец", или более конкретной, например "Модуль чтения виртуальной машины".Roles can be high-level, like owner, or specific, like virtual machine reader.

Определение роли для назначения роли

В Azure есть несколько встроенных ролей.Azure includes several built-in roles that you can use. Например, роль Участник виртуальных машин позволяет пользователю создавать виртуальные машины и управлять ими.For example, the Virtual Machine Contributor role allows a user to create and manage virtual machines. Если встроенные роли не соответствуют потребностям вашей организации, вы можете создать собственные настраиваемые роли Azure.If the built-in roles don't meet the specific needs of your organization, you can create your own Azure custom roles.

В этом видео представлен краткий обзор встроенных и настраиваемых ролей.This video provides a quick overview of built-in roles and custom roles.

Azure предоставляет операции с данными, которые позволяют предоставлять доступ к данным в объекте.Azure has data operations that enable you to grant access to data within an object. Например, если у пользователя есть доступ на чтение данных в учетной записи хранения, это позволяет ему считывать большие двоичные объекты или сообщения в этой учетной записи.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.

Дополнительные сведения о ролях Azure см. в этой статье.For more information, see Understand Azure role definitions.

ОбластьScope

Область — это набор ресурсов, к которым предоставляется доступ.Scope is the set of resources that the access applies to. При назначении роли можно точнее ограничить разрешенные действия, определив их область.When you assign a role, you can further limit the actions allowed by defining a scope. Это удобно, если вы хотите привлечь какого-либо пользователя к работе над веб-сайтом, но только для одной группы ресурсов.This is helpful if you want to make someone a Website Contributor, but only for one resource group.

В Azure область действия можно задать на четырех уровнях: на уровне группы управления, уровне подписки, группы ресурсов или ресурса.In Azure, you can specify a scope at four levels: management group, subscription, resource group, or resource. Структура областей строится на отношениях "родитель-потомок".Scopes are structured in a parent-child relationship. Вы можете назначать роли на любом из этих уровней области действия.You can assign roles at any of these levels of scope.

Область для назначения ролей

Дополнительные сведения об областях см. в статье Общие сведения об областях для Azure RBAC.For more information about scope, see Understand scope.

Назначения ролейRole assignments

Назначение ролей — это процесс связывания определения роли с пользователем, группой, субъектом-службой или управляемым удостоверением в определенной области в целях предоставления доступа.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. Доступ предоставляется путем создания назначения ролей, а отзывается путем его удаления.Access is granted by creating a role assignment, and access is revoked by removing a role assignment.

На приведенной ниже схеме показан пример назначения ролей.The following diagram shows an example of a role assignment. В этом примере группе "Маркетинг" назначена роль Участник для группы ресурсов "Продажи медицинских препаратов".In this example, the Marketing group has been assigned the Contributor role for the pharma-sales resource group. Это означает, что пользователи из группы "Маркетинг" могут создавать ресурсы Azure в группе ресурсов "Продажи медицинских препаратов" или управлять любыми такими ресурсами.This means that users in the Marketing group can create or manage any Azure resource in the pharma-sales resource group. Пользователи в группе "Маркетинг" не имеют доступа к ресурсам за пределами группы ресурсов "Продажи медицинских препаратов", если они не имеют других назначений ролей.Marketing users do not have access to resources outside the pharma-sales resource group, unless they are part of another role assignment.

Назначение ролей для управления доступом

Назначать роли можно с помощью портала Azure, Azure CLI, Azure PowerShell, пакетов SDK Azure или REST API.You can assign roles using the Azure portal, Azure CLI, Azure PowerShell, Azure SDKs, or REST APIs.

Дополнительные сведения см. в статье Шаги по добавлению назначения роли.For more information, see Steps to assign an Azure role.

Несколько назначений ролейMultiple role assignments

Что произойдет, если у вас будет несколько перекрывающихся назначений ролей?So what happens if you have multiple overlapping role assignments? RBAC Azure — это аддитивная модель, поэтому ваши действующие разрешения являются сочетанием назначений ролей.Azure RBAC is an additive model, so your effective permissions are the sum of your role assignments. Рассмотрим следующий пример, где пользователю предоставляется роль участника на уровне подписки и роль читателя для группы ресурсов.Consider the following example where a user is granted the Contributor role at the subscription scope and the Reader role on a resource group. Сочетание разрешений участника и разрешений читателя, по сути, представляет собой роль участника для подписки.The sum of the Contributor permissions and the Reader permissions is effectively the Contributor role for the subscription. Следовательно, в этом примере назначение роли читателя не играет роли.Therefore, in this case, the Reader role assignment has no impact.

Несколько назначений ролей

Запрет назначенийDeny assignments

Раньше RBAC Azure была разрешающей моделью без запретов, но теперь она ограниченно поддерживает запрет назначений.Previously, Azure RBAC was an allow-only model with no deny, but now Azure RBAC supports deny assignments in a limited way. Запрет назначений, как и назначение ролей, связывает набор запрещающих действий с пользователем, группой или субъектом-службой в определенной области для отказа в доступе.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. Назначение роли определяет набор допустимых действий, а назначение запрета определяет набор недопустимых действий.A role assignment defines a set of actions that are allowed, while a deny assignment defines a set of actions that are not allowed. Другими словами, запрет назначений блокирует выполнение определенных действий пользователями, даже если назначение роли предоставляет им доступ.In other words, deny assignments block users from performing specified actions even if a role assignment grants them access. Запрет назначений имеет приоритет над назначением ролей.Deny assignments take precedence over role assignments.

Дополнительные сведения о запретах назначений Azure см. в этой статье.For more information, see Understand Azure deny assignments.

Как RBAC Azure определяет право доступа пользователя к ресурсуHow Azure RBAC determines if a user has access to a resource

Ниже перечислены основные действия, выполняемые RBAC Azure для определения того, есть ли у вас доступ к ресурсу на уровне управления.The following are the high-level steps that Azure RBAC uses to determine if you have access to a resource on the management plane. Это полезно, если вы пытаетесь устранить проблему с доступом.This is helpful to understand if you are trying to troubleshoot an access issue.

  1. Пользователь A (или директор службы) приобретает токен для Azure Resource Manager.A user (or service principal) acquires a token for Azure Resource Manager.

    Токен включает членство в группе пользователей (включая переходные членства в группах).The token includes the user's group memberships (including transitive group memberships).

  2. Пользователь выполняет вызов REST API в Azure Resource Manager с помощью присоединенного токена.The user makes a REST API call to Azure Resource Manager with the token attached.

  3. Azure Resource Manager извлекает все назначения ролей и запрет назначений, которые применяются к ресурсу, на котором выполняется действие.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 Manager сужает назначенные роли, которые применяются к этому пользователю или группе, и определяет, какие роли у пользователя есть для этого ресурса.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 определяет, включено ли действие в вызове API в роли, которые пользователь имеет для этого ресурса.Azure Resource Manager determines if the action in the API call is included in the roles the user has for this resource.

  6. Если у пользователя нет роли с действием в запрашиваемой области, доступ не предоставляется.If the user doesn't have a role with the action at the requested scope, access is not granted. В противном случае Azure Resource Manager проверяет, применяется ли запрет назначения.Otherwise, Azure Resource Manager checks if a deny assignment applies.

  7. Если применяется запрет назначения, доступ блокируется.If a deny assignment applies, access is blocked. В противном случае доступ предоставляется.Otherwise access is granted.

Требования лицензийLicense requirements

Эта функция бесплатна и доступна в вашей подписке Azure.Using this feature is free and included in your Azure subscription.

Дальнейшие действияNext steps