SYLVA Labs · AI Pulse

Permissions reference

Every Azure role and Microsoft Graph permission AI Pulse can hold, with its exact identifier — for change-control records, access reviews, and security sign-off.

Companion to Azure services, data & security Audience Security / identity / compliance reviewers Status Pre-release draft

Contents

On this page

·How to read this document

Three identities can hold permissions in an AI Pulse install. Each row below names the exact one, so your access reviews map cleanly to what's actually in your tenant.

IdentityWhat it isWhat it's for
The managed identityA system identity created by the ARM template, unique to your install.Reads Azure resources, cost data, and Microsoft Graph to populate dashboards.
The sign-in appAn Entra app registration you create before install (Connect-AIPulseTenant.ps1).Lets your people sign into the AI Pulse portal. Nothing else.
Your own admin accountThe person running install/setup scripts.Needs enough privilege to grant the two identities above their permissions — see each section.
auto-granted happens during ARM deployment, no extra step post-install step one script, run once after deploying optional only if you want the matching widget

1Azure roles — granted automatically

Assigned to the managed identity by the ARM template during deployment. Every one is a built-in Azure role, least-privilege, read-only.

RoleRole IDScopeWhy
Readeracdd72a7-3385-48ef-bd42-f606fba81ae7SubscriptionSee resources and their configuration to build the AI inventory.auto
Cost Management Reader72fafb9e-0641-4937-9268-a91bfd8191a3SubscriptionRead spend figures for the cost dashboards.auto
Key Vault Secrets User4633458b-17de-408a-b874-0445c86b69e6The install's own Key Vault onlyRead its own deployment secrets (database password, gateway key, tracing key) at start-up.auto
Never Contributor, Owner, or User Access Administrator. The install-time admin account needs one of those roles to grant the three above — but the managed identity itself never receives write access to anything.

2Microsoft Graph — granted in one post-install step

Granted to the managed identity by running Grant-AIPulseGraphAccess.ps1 once after deployment (the identity doesn't exist until the ARM deployment completes, so this can't happen automatically during install). Requires Privileged Role Administrator. Every permission is application, read-only.

PermissionPermission IDWhy
Organization.Read.All498476ce-e0fe-48b0-b801-37ba7e2685c6Detect licences (Copilot, Purview entitlement).post-install
User.Read.Alldf021288-bdef-4463-88db-98f22de89214Let admins assign access by typing a person's email, not just an ID.post-install
Group.Read.All5b567255-7703-4780-807c-7be8301ae99bLet admins assign access by typing a group's name.post-install
Directory.Read.All7ab1d382-f21e-4acd-a863-ba3e13f7da61Directory reads underpinning the two rows above.post-install
AuditLog.Read.Allb0afded3-3588-46d8-8b3d-9842eff778daAdmin audit trail and Microsoft 365 Copilot activity.post-install
Application.Read.All9a5d68dd-52b0-4cc2-bd40-abcf44ac3a30Discover unsanctioned ("shadow") AI apps registered in your tenant.post-install
DelegatedPermissionGrant.Read.All7e05723c-0bb0-42da-be95-ae9f08a6e53cRead OAuth consent grants — the other half of shadow-AI discovery.post-install
Grant a subset now and add the rest later with Grant-AIPulseGraphAccess.ps1 -Roles. Anything not yet granted shows an honest "permission pending" state in the portal — no widget fails, none are silently blank.

3Optional roles — you grant, per widget

Not requested by any script. Grant these only if you want the matching security-depth widgets — each is a standard built-in Azure role, assigned the same way as any other Reader role (Entra ID → IAM → Add role assignment, scoped to the managed identity).

RoleScopePowers
Monitoring ReaderSubscriptionDeeper Azure Monitor metrics.
Security ReaderSubscriptionMicrosoft Defender for Cloud posture and alerts.
Log Analytics ReaderThe workspace you connectPer-agent trace queries.
Sentinel ReaderThe workspace you connectMicrosoft Sentinel analytics signals.

Separately, connecting Microsoft 365 (Copilot usage, Purview labels) is done by your own M365 Global Admin running scripts/m365/run-all-m365-setup.ps1 under their own session — this isn't an app permission grant to AI Pulse at all; it's your admin creating the labels/policies directly.

4The sign-in app's own permission

The Entra app registration created by Connect-AIPulseTenant.ps1 is scoped to exactly one thing:

PermissionPermission IDTypeWhy
User.Reade1fe6dd8-ba31-4d61-89e7-88639da4683dDelegatedStandard OIDC sign-in — nothing else. It never reads your directory, licences, or audit logs; those all belong to the managed identity above.

5Auditing and revoking access

SYLVA Labs Pte Ltd · AI Pulse — Permissions Reference. Pre-release draft.

Companion to Azure services, data & security. Permission IDs reflect the current shipping install package (Grant-AIPulseGraphAccess.ps1, mainTemplate.json).