SECURITY WARNING: Never run commands you don't understand. Always review code before execution. Use at your own risk.
Cloud New Added 8 September 2026

Azure: AuthorizationFailed, the client does not have authorization

Azure RBAC denied the operation at the scope you targeted. Role assignments are inherited downward from management group to subscription to resource group, so a role granted on the wrong scope, or a deny assignment from a policy, produces this even when the role name looks right.

Quick fix

Read the commands before running them. Anything that restarts a service, deletes data or changes permissions should be tried on a non-production system first.

Quick fix
# What do I have, and where?
az account show --query '{sub:id, user:user.name}'
az role assignment list --assignee $(az ad signed-in-user show --query id -o tsv) \
  --all -o table

# Can I do this specific thing?
az rest --method post --url \
  'https://management.azure.com/subscriptions/SUB/providers/Microsoft.Authorization/checkAccess?api-version=2018-09-01-preview'

# Grant at the smallest scope that works
az role assignment create --assignee APP_ID \
  --role 'Contributor' \
  --scope /subscriptions/SUB/resourceGroups/RG

# Assignments can take several minutes to propagate

How to diagnose Cloud errors

Cloud provider errors are overwhelmingly one of two things: IAM (the caller is not permitted, or the credentials are not the ones you think) or quota (the account limit was reached). Providers deliberately return the same vague AccessDenied for a missing permission, a deny in a boundary or SCP, and a resource policy that excludes you, so the fix begins with identifying which identity made the call.

If the quick fix above does not resolve it, work through these steps. They apply to this whole class of error, not just to this one message, which is usually what saves the time.

  1. Confirm the identity first: aws sts get-caller-identity, az account show, or gcloud auth list. An unexpectedly large share of AccessDenied errors are the right policy on the wrong principal.
  2. Use the provider's policy simulator (IAM Policy Simulator, gcloud policy-troubleshoot) rather than reading policy JSON. It accounts for boundaries, SCPs and resource policies that are invisible in a single document.
  3. Check CloudTrail / Activity Log / Cloud Audit Logs for the denied call. The log entry names the exact action and resource ARN, which the client-side error usually omits.
  4. For quota errors, look up the current limit and the current usage before requesting an increase: many quotas are per-region and per-account, and the resource you think is idle may be counted.
  5. Verify the region. A resource that "does not exist" very often exists in a different region than the one your CLI profile defaults to.

Tools worth reaching for

  • aws sts get-caller-identity
  • IAM Policy Simulator
  • gcloud policy-troubleshoot
  • CloudTrail / Activity Log

Authoritative references

Primary documentation for this error, worth reading before applying any fix in production.

learn.microsoft.com

Related Cloud errors

See all 25 Cloud errors →

Browse other categories

Something missing or wrong?

This entry is maintained by hand. If the fix is out of date, incomplete, or you have a better one, email a correction and it will be reviewed.