Assign Roles

Grant the service principal read-only access to your Azure subscriptions via the Tenant Root Management Group.

Find the Tenant Root Management Group

In the Azure Portal, navigate to:

Management Groups

Select the root group at the top of the hierarchy — this is your Tenant Root Management Group. Assigning roles here means Cirrova will automatically have access to all current and future subscriptions within your tenant.

If you prefer to limit Cirrova's access to specific subscriptions rather than the whole tenant, you can assign the same three roles at the individual subscription level instead. You will need to repeat the assignment for each subscription you want Cirrova to monitor.

Assign the three roles

Go to Access control (IAM) → Add role assignment and assign each of the following roles to the service principal you registered in Step 2:

  • Reader
  • Cost Management Reader
  • Monitoring Reader

Each role must be added as a separate role assignment. Repeat the Add role assignment steps three times, once for each role.

When searching for the service principal in the Members tab, search by the name you gave the app in Step 2 (e.g. Cirrova Cost Reader).

Why these three roles?

  • Reader — allows Cirrova to enumerate subscriptions, resource groups, and resources.
  • Cost Management Reader — grants access to billing and cost data via the Azure Cost Management APIs.
  • Monitoring Reader — allows Cirrova to read performance metrics (CPU, memory, disk) alongside cost data for insights and anomaly context.

All three are built-in Azure roles with no write permissions.