Uso del control de acceso basado en rol en Azure 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:
En este artículo se usa el módulo Az de PowerShell, que es el módulo de PowerShell que se recomienda para interactuar con Azure. Para empezar a trabajar con el módulo Az de PowerShell, consulte Instalación de Azure PowerShell. 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 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 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 a 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/<subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.ApiManagement/service/<service name>/apis/<api ID>')
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/<service name>/apis/<api ID>'
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: