Uso del control de acceso basado en rol en Azure API Management

SE APLICA A: todos los niveles de API Management

Azure API Management se basa en el control de acceso basado en rol (RBAC) de Azure para permitir una administración de acceso pormenorizada de servicios y entidades de API Management (por ejemplo, API y directivas). En este artículo se proporciona información general de los roles integrados y personalizados en API Management. Para más información sobre la administración de acceso en Azure Portal, consulte la introducción sobre la administración de acceso en Azure Portal.

Nota:

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Roles de servicio integrados

Actualmente, API Management cuenta con tres roles integrados y próximamente agregará otros dos. Estos roles pueden asignarse en distintos ámbitos, como la suscripción, el grupo de recursos y la instancia concreta de API Management. Por ejemplo, si el rol "Lector de servicios de Azure API Management" se asigna a un usuario en el nivel de grupo de recursos, el usuario tendrá acceso de lectura a todas las instancias de API Management incluidas en el grupo de recursos.

En la tabla siguiente se proporcionan breves descripciones de los roles integrados. Estos roles se pueden asignar a través de Azure Portal u otras herramientas, como Azure PowerShell, la CLI de Azure y la API de REST. Para obtener detalles sobre la asignación de roles integrados, consulte Asignación de roles de Azure para administrar el acceso a los recursos de suscripción de Azure.

Role Acceso de lectura[1] Acceso de escritura[2] Creación, eliminación y escalado del servicio, VPN y configuración personalizada de dominios Acceso al portal del editor heredado Descripción
Colaborador de servicio de administración de API Superusuario. Tiene acceso CRUD completo a los servicios y a las entidades de API Management (por ejemplo, API y directivas). Tiene acceso al portal del editor heredado.
Rol de lector de servicios de API Management Tiene acceso de solo lectura a los servicios y a las entidades de API Management.
Rol del operador de servicios de API Management Puede administrar servicios de API Management, pero no entidades.

[1] Acceso de lectura a los servicios y entidades de API Management (por ejemplo, API y directivas)

[2] Acceso de escritura a los servicios y identidades de API Management, excepto las operaciones siguientes: creación, eliminación y escalado de instancias; configuración de VPN, y configuración personalizada de dominios

Roles de área de trabajo integrados

API Management proporciona los siguientes roles integrados para colaboradores en áreas de trabajo en una instancia de API Management.

A un colaborador del área de trabajo se le debe asignar un rol con ámbito de área de trabajo y un rol con ámbito de servicio.

Rol Ámbito Descripción
Colaborador del área de trabajo de API Management área de trabajo Puede administrar el área de trabajo y la vista, pero no modificar sus miembros. Este rol debe asignarse en el ámbito del área de trabajo.
Lector del área de trabajo de API Management área de trabajo Tiene acceso de solo lectura a las entidades del área de trabajo. Este rol debe asignarse en el ámbito del área de trabajo.
Desarrollador de API de área de trabajo de API Management área de trabajo Tiene acceso de lectura a las entidades del área de trabajo y acceso de lectura y escritura a las entidades para editar las API. Este rol debe asignarse en el ámbito del área de trabajo.
Administrador de productos de API del área de trabajo de API Management área de trabajo Tiene acceso de lectura a las entidades del área de trabajo y acceso de lectura y escritura a las entidades para publicar API. Este rol debe asignarse en el ámbito del área de trabajo.
Desarrollador de API de área de trabajo de Servicio de API Management service Tiene acceso de lectura a las etiquetas y productos y acceso de escritura para permitir:

▪️ Asignación de API a productos
▪️ Asignación de etiquetas a productos y API

Este rol debe asignarse en el ámbito de servicio.
Administrador de productos de API del área de trabajo de servicio de API Management service Tiene el mismo acceso que el desarrollador de API de área de trabajo de servicio de API Management, así como acceso de lectura a usuarios y acceso de escritura para permitir la asignación de usuarios a grupos. Este rol debe asignarse en el ámbito de servicio.

Roles personalizados

Si ninguno de los roles integrados satisface sus necesidades específicas, se pueden crear roles personalizados para proporcionar administración de acceso más pormenorizada para entidades de API Management. Por ejemplo, puede crear un rol personalizado que tenga acceso de solo lectura a un servicio de API Management, pero que tenga acceso de escritura solamente a una API específica. Para más información sobre los roles personalizados, consulte Roles personalizados para RBAC de Azure.

Nota

Para poder ver una instancia de API Management en Azure Portal, un rol personalizado debe incluir la acción Microsoft.ApiManagement/service/read.

A la hora de crear un rol personalizado, es más fácil comenzar con uno de los roles integrados. Edite los atributos para agregar los elementos Actions, NotActions o AssignableScopes y guarde los cambios como un nuevo rol. El ejemplo siguiente comienza con el rol "Lector de servicios de API Management" y crea un rol personalizado denominado "Calculator API Editor". Puede asignar el rol personalizado al ámbito de una API específica. De ese modo, el rol solamente tendrá acceso a esa 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>'

El artículo Operaciones del proveedor de recursos de Azure Resource Manager contiene la lista de permisos que se pueden conceder en el nivel de API Management.

Pasos siguientes

Para más información sobre el control de acceso basado en rol de Azure, consulte los siguientes artículos: