Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Permissions Best Practices

This assessment is designed to run read-only. The safest setup is a dedicated assessment identity with only read roles on one target subscription and read-only tenant roles in Entra ID.

ScopeRoleBaselineWhy
Target subscriptionReaderRequiredResource inventory and configuration reads across in-scope resources.
Target subscriptionSecurity ReaderRequiredSecurity posture/recommendation surfaces used by security-focused checks.
Log Analytics workspace(s) in scopeLog Analytics ReaderRecommendedImproves logging and detection-coverage analysis.
Key Vaults in scopeKey Vault ReaderRecommendedReads Key Vault metadata and policy state without secret-value access.
Entra ID tenantDirectory ReadersRequired for full identity coverageRead users, groups, app registrations, service principals, and directory objects.
Entra ID tenantSecurity ReaderRecommendedImproves access to security-related Entra surfaces in read-only mode.
Entra ID tenantReports ReaderRecommendedImproves sign-in/audit reporting coverage.

Best-practice safeguards

  1. Scope role assignments to the exact target subscription (not tenant- or management-group-wide unless explicitly intended).

  2. Use a dedicated assessment identity (user or service principal), separate from admin/operator accounts.

  3. Use PIM/JIT with short expirations for elevated read roles instead of standing assignments.

  4. Require MFA and Conditional Access for the assessment identity.

  5. Keep engagement.yaml in read-only-assessment mode unless active testing is explicitly authorized.

  6. Run /setup and /recon first so permission gaps are captured in coverage-limitations.json.

Roles to avoid for read-only runs

The guardrail blocks mutating commands, but least-privilege RBAC is the primary control.