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


Как использовать контроль доступа на основе ролей в Azure API Management

ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление API

Управление API Azure использует управление доступом на основе ролей (RBAC) для детализированного контроля доступа к службам и сущностям Управления API (например, к интерфейсам API и политикам). В этой статье содержатся общие сведения о встроенных и пользовательских ролях в службе управления API. Дополнительные сведения об управлении доступом на портале Azure, см. в руководстве по началу работы с управлением доступом на портале Azure.

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Перенос Azure PowerShell с AzureRM на Az.

Встроенные роли службы

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

В таблице ниже содержатся краткие описания встроенных ролей. Эти роли можно назначать с помощью портала Azure или других инструментов, включая Azure PowerShell, Azure CLI и REST API. Дополнительные сведения о том, как назначать встроенные роли, см. в разделе Назначение ролей Azure для управления доступом к ресурсам вашей подписки Azure.

Роль Доступ на чтение[1] Доступ на запись[2] Создание, удаление и масштабирование служб, настройка VPN и личных доменов Доступ к устаревшему порталу издателя Описание
Участник службы управления API Суперпользователь. Имеет полный доступ CRUD к службам и сущностям управления API (например, к интерфейсам API и политикам). Имеет доступ к устаревшему порталу издателя.
Читатель данных службы управления API Имеет доступ на чтение к службам и сущностям управления API.
Оператор службы управления API Может управлять службами управления API, но не может управлять сущностями.

[1] Доступ на чтение к службам и сущностям управления API (например, к интерфейсам API и политикам).

[2] Доступ на запись к службам и объектам управления API, за исключением следующих операций: создание, удаление и масштабирование экземпляров; конфигурация VPN; настройка пользовательских доменов.

Встроенные роли рабочей области

Управление API предоставляет следующие встроенные роли для сотрудников в рабочих областях в экземпляре Управления API.

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

Роль Scope Описание
Участник рабочей области Управление API Рабочее пространство Может управлять рабочей областью и отображением, но не изменять ее членов. Эта роль должна быть назначена в области рабочей области.
Читатель рабочей области управления API Рабочее пространство Имеет доступ только для чтения к сущностям в рабочей области. Эта роль должна быть назначена в рабочей области.
Разработчик API управления рабочей областью Рабочее пространство Имеет доступ на чтение к сущностям в рабочей области и доступ на чтение и запись к сущностям для редактирования API-интерфейсов. Эта роль должна быть назначена на уровне рабочей области.
Менеджер по продукту в разделе управления продуктами API рабочей области Рабочее пространство Имеет доступ на чтение к сущностям в рабочей области и доступ на чтение и запись к сущностям для публикации API. Эта роль должна быть назначена в области рабочей области.
Разработчик API рабочей области службы управления API услуга Имеет доступ на чтение к тегам и продуктам и возможность записи для предоставления разрешений на:

▪️ Назначение API продуктам
▪️ Назначение тегов продуктам и API

Эта роль должна быть назначена в рамках области службы.
Служба управления API рабочей среды Менеджер продукта услуга Имеет такой же доступ, как и API Developer в рабочей области службы Управления API, а также доступ на чтение к пользователям и доступ на запись для назначения пользователей в группы. Эта роль должна быть назначена в области службы.

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

Встроенные роли портала разработчика

Роль Scope Описание
редактор содержимого портала разработчика Управление API услуга Может настроить портал разработчика, изменить его содержимое и опубликовать его с помощью API Azure Resource Manager.

Настраиваемые роли

Если ни одна из встроенных ролей не удовлетворяет вашим потребностям, можно создать пользовательские роли, которые обеспечат более детализированное управление доступом к сущностям управления API. Например, можно создать пользовательскую роль, которая имеет доступ на чтение к службе управления API и доступ на запись к одному конкретному API. Дополнительные сведения о пользовательских ролях см. в описании пользовательских ролей в Azure RBAC.

Примечание.

Чтобы просматривать экземпляр Управления API на портале Azure, настраиваемая роль должна содержать действие Microsoft.ApiManagement/service/read.

При создании пользовательской роли проще всего начать с одной из встроенных ролей. Измените атрибуты, чтобы добавить Actions, NotActions или AssignableScopes, а затем сохраните изменения как новую роль. В следующем примере сначала используется роль "Читатель данных службы управления API" и создается настраиваемая роль "Редактор API калькулятора". Настраиваемую роль можно назначить в области определенного API. Следовательно, эта роль получит доступ только к этому API.

$role = Get-AzRoleDefinition "API Management Service Reader Role"
$role.Id = $null
$role.Name = 'Calculator API Contributor'
$role.Description = 'Has read access to Contoso APIM instance and write access to the Calculator API.'
$role.Actions.Add('Microsoft.ApiManagement/service/apis/write')
$role.Actions.Add('Microsoft.ApiManagement/service/apis/*/write')
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add('/subscriptions/<Azure subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.ApiManagement/service/<APIM service instance name>/apis/<API name>')
New-AzRoleDefinition -Role $role
New-AzRoleAssignment -ObjectId <object ID of the user account> -RoleDefinitionName 'Calculator API Contributor' -Scope '/subscriptions/<subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.ApiManagement/service/<APIM service instance name>/apis/<API name>'

В статье Операции поставщиков ресурсов Azure Resource Manager содержится список разрешений, которые могут быть предоставлены на уровне управления API.

Дополнительные сведения об управлении доступом на основе ролей в Azure см. в следующих статьях: