Поделиться через


Общие сведения о назначении ролей в Azure

Назначения ролей позволяют предоставить принципалу (например, пользователю, группе, управляемому идентификатору или служебному субъекту) доступ к конкретному ресурсу Azure. В этой статье описываются сведения о назначениях ролей.

Назначение ролей

Доступ к ресурсам Azure предоставляется путем создания назначения роли и отмены доступа путем удаления назначения ролей.

Назначение роли состоит из нескольких компонентов, в том числе:

  • Субъект или которому назначена роль.
  • Назначенная им роль.
  • Область назначения роли.
  • Имя назначения роли и описание, которое помогает объяснить, почему роль назначена.

Например, можно использовать Azure RBAC для назначения ролей, таких как:

  • Пользователь Sally имеет права владельца к учетной записи хранилища contoso123 в группе ресурсов ContosoStorage.
  • У всех пользователей группы "Администраторы облака" в Microsoft Entra ID есть режим чтения ко всем ресурсам в группе ресурсов ContosoStorage.
  • Управляемое удостоверение, связанное с приложением, имеет разрешение перезапускать виртуальные машины в рамках подписки Contoso.

Ниже показан пример свойств назначения ролей при отображении с помощью Azure PowerShell:

{
  "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
}

Ниже показан пример свойств назначения ролей при отображении с помощью Azure CLI или 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"
}

В следующей таблице описывается, что означает свойства назначения ролей.

Свойство Описание
RoleAssignmentName
name
Имя назначения роли, которое является глобально уникальным идентификатором (GUID).
RoleAssignmentId
id
Уникальный идентификатор назначения роли, который включает имя.
Scope
scope
Идентификатор ресурса Azure, к которому применяется назначение роли.
RoleDefinitionId
roleDefinitionId
Уникальный идентификатор роли.
RoleDefinitionName
roleDefinitionName
Имя роли.
ObjectId
principalId
Идентификатор объекта Microsoft Entra для субъекта, которому назначена роль.
ObjectType
principalType
Тип объекта Microsoft Entra, который представляет субъект. Допустимыми значениями являются User, Group и ServicePrincipal.
DisplayName Для назначения ролей пользователю отображаемое имя пользователя.
SignInName
principalName
Уникальное главное имя (UPN) пользователя или имя приложения, связанного с сервисным субъектом.
Description
description
Описание назначения роли.
Condition
condition
Условное выражение, созданное с использованием одного или нескольких действий из определения роли и атрибутов.
ConditionVersion
conditionVersion
Номер версии условия. По умолчанию используется версия 2.0 и является единственной поддерживаемой версией.
CanDelegate
canDelegate
Не реализовано.

Область

При создании назначения роли необходимо указать область применения. Область действия представляет ресурс или набор ресурсов, к которым разрешен доступ основному субъекту. Можно ограничить назначение роли одним ресурсом, группой ресурсов, подпиской или группой управления.

Совет

Используйте наименьший объем, необходимый для выполнения ваших требований.

Например, если нужно предоставить управляемому удостоверению доступ к одной учетной записи хранения, для обеспечения безопасности целесообразно создать назначение роли в области действия учетной записи хранения, а не группы ресурсов или подписки.

Дополнительные сведения об областях см. в статье Понимание областей.

Роль для назначения

Назначение роли связано с определением роли. Определение роли указывает разрешения, которые субъект должен иметь в области назначения роли.

Можно назначить встроенное определение роли или пользовательское определение роли. При создании назначения ролей некоторые средства требуют использования идентификатора определения роли, а другие средства позволяют указать имя роли.

Дополнительные сведения об определениях ролей см. в разделе "Общие сведения о определениях ролей".

Главный объект

Субъекты включают пользователей, группы безопасности, управляемые удостоверения, удостоверения рабочей нагрузки и служебные основные записи. Субъекты создаются и управляются в клиенте Microsoft Entra. Вы можете назначить роль любому субъекту. Используйте Идентификатор объекта Microsoft Entra ID object ID чтобы определить главный элемент, которому требуется назначить роль.

При создании назначения ролей с помощью Azure PowerShell, Azure CLI, Bicep или других решений для инфраструктуры как кода (IaC), укажите тип руководящего субъекта. К основным типам относятся User, Group и ServicePrincipal. Важно указать правильный тип принципала. В противном случае могут возникать периодические ошибки при развертывании, особенно при работе с принципалами служб и управляемыми идентификаторами.

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

При удалении пользователя, группы, учетной записи службы или управляемого удостоверения из Microsoft Entra ID рекомендуется удалить все назначения ролей. Назначения ролей не удаляются автоматически. Назначения ролей, ссылающиеся на удаленный идентификатор, отображаются как идентификатор не найден на портале Azure. Назначения ролей будут продолжать предоставлять доступ к удалённым объектам безопасности, если существуют допустимые токены Microsoft Entra ID и токены не истекли. Дополнительные сведения см. в разделе Симптом — назначения ролей без найденного удостоверения.

Имя.

Имя ресурса назначения роли должно быть глобально уникальным идентификатором (GUID).

Имена ресурсов назначения ролей должны быть уникальными в клиенте Microsoft Entra, даже если область назначения роли является более узкой.

Совет

При создании назначения ролей с помощью портала Azure, Azure PowerShell или Azure CLI в процессе создания автоматически присваивается уникальное имя для роли.

Если вы создаете назначение ролей с помощью Bicep или другой инфраструктуры в качестве кода (IaC), необходимо тщательно спланировать имя назначений ролей. Дополнительные сведения см. в статье "Создание ресурсов Azure RBAC с помощью Bicep".

Повторное использование имени присвоения роли

Если вы попытаетесь повторно использовать имя одной роли для другой, развертывание завершится неудачей. Эта проблема, скорее всего, возникает при использовании Bicep или шаблона Azure Resource Manager (шаблона ARM) для развертывания назначений ролей, так как при использовании этих средств необходимо явно задать имя назначения ролей. Чтобы обойти это поведение, необходимо либо удалить старое назначение ролей, прежде чем повторно создать его, либо убедиться, что при развертывании нового назначения роли используется уникальное имя.

Описание

Вы можете добавить текстовое описание в назначение роли. Хотя описания являются необязательными, рекомендуется добавить их в назначения ролей. Укажите краткое обоснование того, почему субъекту требуется назначенная роль. Когда проводится аудит назначений ролей, описания могут помочь понять, почему они были созданы и актуальны ли они по-прежнему.

Условия

Некоторые роли поддерживают условия назначения ролей на основе атрибутов в контексте конкретных действий. Условие назначения роли — это дополнительная проверка, которую можно дополнительно добавить к назначению роли, чтобы обеспечить более детализированный контроль доступа.

Например, можно добавить условие, требующее наличия определенного тега для пользователя для чтения объекта.

Обычно вы создаете условия с помощью редактора визуальных условий, но вот как выглядит пример условия в коде:

((!(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'))

Предыдущее условие позволяет пользователям считывать блобы с ключом тега индекса блоба Project и значением Cascade.

Дополнительные сведения об условиях см. в статье "Что такое управление доступом на основе атрибутов Azure( Azure ABAC)?

Следующие шаги