- Onboarding
- Cloud Shell script, portal steps or Terraform: an app registration with Reader on each subscription and, for Entra ID, Directory.Read.All and RoleManagement.Read.Directory (Policy.Read.All and AuditLog.Read.All optional) with admin consent.
- Verify
- Signs in as the app, lists subscriptions, runs a Resource Graph query and reports which Microsoft Graph permissions are granted (missing ones mean partial Entra ID coverage, with the fix). The AI reads are ARM GETs covered by the same Reader role. Client secret encrypts at rest.
- Listed
- Subscriptions and an Azure Resource Graph listing of resources. Checks use NSG rules, VMs with their NICs, public IPs and subnets, storage accounts, Key Vaults, SQL servers, AKS clusters, Azure OpenAI / AI Services accounts with their model deployments and content filters, AI Foundry hubs and projects with their connections, Azure ML online endpoints (the model, training job, image and managed-identity roles behind each), compute instances and AI Search index sources. Entra ID users, groups, service principals, managed identities, app registrations (credential expiry dates only), directory roles with PIM, and Conditional Access; Azure role assignments, role definitions and deny assignments to compute effective permissions. SQL firewall rules are not collected.
- Never collected
- Blob bytes, disk snapshots, activity-log archives, prompts, completions, training files, model weights, keys, connection secrets, and secret or certificate values.