Общие сведения об управлении доступом на основе ролей (RBAC) для ресурсов AzureWhat is role-based access control (RBAC) for Azure resources?

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

Что можно сделать с помощью RBAC?What can I do with RBAC?

Вот некоторые примеры действий, которые можно выполнять с помощью RBAC:Here are some examples of what you can do with 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

Рекомендации по использованию ролей RBACBest practice for using RBAC

С помощью RBAC вы можете распределить обязанности внутри команды и предоставить пользователям доступ на уровне, который им необходим для выполнения поставленных задач.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. Вместо того чтобы предоставить всем неограниченные разрешения для подписки Azure или ресурсов, можно разрешить только определенные действия в конкретной области.Instead of giving everybody unrestricted permissions in your Azure subscription or resources, you can allow only certain actions at a particular scope.

Когда вы разрабатываете стратегию управления доступом, предоставьте пользователям минимальные разрешения, чтобы они могли выполнять свои задачи.When planning your access control strategy, it's a best practice to grant users the least privilege to get their work done. На следующей схеме представлен рекомендуемый шаблон для использования ролей RBAC.The following diagram shows a suggested pattern for using RBAC.

RBAC и минимальные привилегии

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

Для управления доступом к ресурсам с помощью RBAC создаются назначения ролей.The way you control access to resources using RBAC is to create role assignments. Это важнейшее понятие. Именно таким образом предоставляются разрешения.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.

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

  • Пользователь — человек, имеющий профиль в Azure Active Directory.User - An individual who has a profile in Azure Active Directory. Роли можно также назначать пользователям в других клиентах.You can also assign roles to users in other tenants. Сведения о пользователях в других организациях см. в статье Что такое служба совместной работы Azure AD B2B.For information about users in other organizations, see Azure Active Directory B2B.
  • Группа — набор пользователей, созданный в Azure Active Directory.Group - A set of users created in Azure Active Directory. При назначении роли группе ее получают все пользователи в этой группе.When you assign a role to a group, all users within that group have that role.
  • Субъект-служба — это идентификатор безопасности, который используется приложениями или службами для доступа к определенным ресурсам Azure.Service principal - A security identity used by applications or services to access specific Azure resources. Это что-то вроде удостоверения пользователя (имя пользователя и пароль или сертификат) для приложения.You can think of it as a user identity (username and password or certificate) for an application.
  • Управляемое удостоверение — это удостоверение, управление которым осуществляется автоматически в Azure Active Directory.Managed identity - An identity in Azure Active Directory that is automatically managed by Azure. Как правило, управляемые удостоверения используются при разработке облачных приложений. Эти удостоверения нужны для управления учетными данными, которые используются при проверке подлинности в службах Azure.You typically use managed identities when developing cloud applications to manage the credentials for authenticating to Azure services.

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

Определение роли представляет собой коллекцию разрешений.A role definition is a collection of permissions. Иногда оно называется просто ролью.It's sometimes 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. Ниже перечислены четыре основные встроенные роли.The following lists four fundamental built-in roles. Первые три роли охватывают все типы ресурсов.The first three apply to all resource types.

  • Владелец — имеет полный доступ ко всем ресурсам, включая право делегировать доступ другим пользователям.Owner - Has full access to all resources including the right to delegate access to others.
  • Участник — может создавать все типы ресурсов Azure и управлять ими, но не может предоставлять доступ другим пользователям.Contributor - Can create and manage all types of Azure resources but can’t grant access to others.
  • Читатель — может просматривать существующие ресурсы Azure.Reader - Can view existing Azure resources.
  • Администратор доступа пользователей — может управлять доступом пользователей к ресурсам Azure.User Access Administrator - Lets you manage user access to Azure resources.

Остальные встроенные роли разрешают управление определенными ресурсами Azure.The rest of the built-in roles allow management of specific Azure resources. Например, роль Участник виртуальных машин позволяет пользователю создавать виртуальные машины и управлять ими.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 custom roles for Azure resources.

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. Дополнительные сведения см. в статье Определения ролей.For more information, see Understand role definitions for Azure resources.

Область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 multiple levels: management group, subscription, resource group, or resource. Структура областей строится на отношениях "родитель-потомок".Scopes are structured in a parent-child relationship.

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

При предоставлении доступа к родительской области дочерние области наследуют эти разрешения.When you grant access at a parent scope, those permissions are inherited to the child scopes. Например:For example:

  • Если назначить роль Владелец пользователю в области действия группы управления, такой пользователь может управлять всеми ресурсами во всех подписках в группе управления.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.
  • Если вы назначаете роль Читатель группе в области подписки, участники этой группы могут просматривать все группы ресурсов и ресурсы в подписке.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.
  • Если вы назначаете роль Участник приложению в области группы ресурсов, оно может управлять ресурсами всех типов в этой группе ресурсов, но не в других группах ресурсов в подписке.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.

Назначения ролей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 create role assignments using the Azure portal, Azure CLI, Azure PowerShell, Azure SDKs, or REST APIs. В каждой подписке вы можете назначить до 2000 ролей.You can have up to 2000 role assignments in each subscription. Для создания и удаления назначений ролей требуется разрешение Microsoft.Authorization/roleAssignments/*.To create and remove role assignments, you must have Microsoft.Authorization/roleAssignments/* permission. Оно предоставляется с помощью ролей владельца или администратора доступа пользователей.This permission is granted through the Owner or User Access Administrator roles.

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

Что произойдет, если у вас будет несколько перекрывающихся назначений ролей?So what happens if you have multiple overlapping role assignments? RBAC — это аддитивная модель, поэтому ваши действующие разрешения являются добавлениями назначений ролей.RBAC is an additive model, so your effective permissions are the addition 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 addition of the Contributor permissions and the Reader permissions is effectively the Contributor role for the resource group. Следовательно, в этом примере назначение роли читателя не играет роли.Therefore, in this case, the Reader role assignment has no impact.

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

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

Раньше RBAC был разрешающей моделью без запретов, но теперь RBAC ограниченно поддерживает запрет назначений.Previously, RBAC was an allow-only model with no deny, but now 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. Дополнительные сведения см. в статье Understand deny assignments for Azure resources (Описание запретов назначений для ресурсов Azure).For more information, see Understand deny assignments for Azure resources.

Механизм определения RBAC доступа пользователя к ресурсуHow RBAC determines if a user has access to a resource

Ниже перечислены основные действия, которые использует RBAC, чтобы определить, есть ли у вас доступ к ресурсу на уровне управления.The following are the high-level steps that 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