Yes. Azure provides a built-in Reservations Contributor RBAC role that can be used at the tenant scope and assigned to a service principal to give read/write access to reservations (including PTU reservations) across the tenant.
Key points:
- Role capabilities
The Reservations Contributor role:
- Can manage (read and write) one or more reservations in the Microsoft Entra tenant.
- Cannot delegate RBAC roles to other users.
- Scope
Reservation-specific RBAC roles (including Reservations Contributor) can be scoped:
- To a specific reservation or subscription, or
- To the tenant (directory) level, which is what is needed for tenant-wide PTU reservation management.
- Assigning Reservations Contributor at tenant level to a service principal (PowerShell)
Use the New-AzRoleAssignment cmdlet with the Microsoft.Capacity tenant scope and the service principal’s object ID:
Import-Module Az.Accounts
Import-Module Az.Resources
Connect-AzAccount -Tenant <TenantId>
New-AzRoleAssignment \
-Scope "/providers/Microsoft.Capacity" \
-PrincipalId <ObjectId> \
-RoleDefinitionName "Reservations Contributor"
-
-TenantId is the tenant GUID.
-
-PrincipalId (ObjectId) is the Microsoft Entra object ID of the service principal that should manage PTU reservations.
- Prerequisites for assigning at tenant level
- To grant reservation roles at tenant scope, the assigning identity must have User Access Administrator rights at tenant level (typically via elevated access) and usually be a Global Administrator when assigning via the Azure portal.
Once assigned, the service principal with Reservations Contributor at scope "/providers/Microsoft.Capacity" has tenant-level read/write access to reservations, suitable for PTU reservation automation.
References: