Join our Newsletter — 33% off our NHI Course
Home› Guides› How to Run an Access Review for Service…
Guide Identity Governance (IGA)

How to Run an Access Review for Service Accounts: Scope, Evidence and Decisions

← All guides
By NHI Mgmt Group, edited by Lalit Choda Updated 11 November 2026 10 min read
On this page

A service account has no manager to approve it, no leaver date to trigger removal and no user to complain when it is wrong, so a standard access review either skips it or asks someone to approve a name they do not recognise. This guide is the procedure for reviewing service accounts properly: what to put in scope, which usage evidence each platform gives you and how far to trust it, who should decide, and how to turn each decision into a safe change. It covers Active Directory, AWS, Google Cloud and Microsoft Entra ID (listed alphabetically) as the most common sources of usage evidence. It is for identity governance teams, platform owners and auditors. Campaign design for people is in the Access Reviews Guide, and the line-by-line evidence checklist is in the Access Review Checklist; this page goes deeper on the non-human part.

Key takeaways

  • Scope is the hard part: include directory service accounts, cloud roles and service principals, workload identities, API keys and integration users, not only what the IGA tool can see. An account that is not in scope is approved by default.
  • Review on evidence, not memory: every row should carry last authentication, permissions granted versus permissions used, credential age and owner. Reviewers who decide "probably still needed" without data keep dormant access alive.
  • Know each evidence source's blind spots: AWS last accessed data excludes some activity, Google Cloud's unused account insight does not see domain-wide delegation, and Active Directory's replicated logon time can lag by days. Treat "unused" as a hypothesis to test, not a fact.
  • The owner decides, the platform team executes: the accountable owner of the system the account serves certifies purpose and need; platform engineers carry out the change.
  • Disable before delete: a reversible disable with a monitoring window catches the account that runs once a quarter, and then the deletion is safe.

When you need this

  • Recurring control: CIS Controls v8.1 Safeguard 5.5 expects an inventory of service accounts with owner, review date and purpose, reviewed at least quarterly, and NIST SP 800-53 AC-2 requires accounts to be reviewed for compliance with account management requirements at an organisation-defined frequency.
  • After an incident or near miss involving a non-human identity. In the Dropbox Sign Breach 2024, Dropbox reported that a compromised back-end service account, reached through an automated system configuration tool, could take a variety of actions in the production environment and was used to reach the customer database; a review that compares granted with needed access is how that breadth is found before an attacker finds it.
  • Before a migration to managed identities, gMSA or workload identity federation, so that you do not migrate accounts nobody needs.
  • Audit findings that the people review excluded service accounts, or that approvals had no evidence.

Before you start

Define what counts as a service account

TypeWhere it livesTypical gap
Directory service accounts, gMSA, accounts with SPNsActive DirectoryLook like user accounts; often privileged; passwords never rotated
Application registrations and service principals, managed identitiesMicrosoft Entra IDCredentials and app permissions sit on the app, roles on the service principal
IAM roles used by workloads, IAM users with access keysAWSCross-account trust and long-lived keys
Service accounts and their keysGoogle CloudProject-level roles granted broadly; user-managed keys
Integration users and API keys in SaaSEach SaaS admin consoleNever in the IGA connector set
Local and database accounts used by applicationsServers and databasesNo central inventory; see the Database Privileged Access Review Template
  • Inventory first: start from the Service Account Inventory Template. Every row needs a technical owner team and an accountable individual; the OWASP Non-Human Identities Top 10 (2025) lists Improper Offboarding (NHI1), Overprivileged NHI (NHI5) and Human Use of NHI (NHI10), and each of these is found through ownership and usage data.
  • Decide frequency by risk (our recommendation): quarterly for privileged or internet-reachable accounts, half-yearly for the rest, and on any change of owner.
  • The collector is itself a non-human identity: reading sign-in activity, last accessed data and insights across the estate needs broad read permissions. Give it its own scoped, read-only identity with an owner, and include it in the review.

Step-by-step

  1. Freeze the scope. Extract every account in the types above as of a fixed date. Record the count per platform; the final report must reconcile to it.
  2. Attach usage evidence to each row from the sources in the evidence table below: last authentication, last use of each permission where available, and the systems it connects to.
  3. Attach permission evidence: roles, group memberships and API permissions, with privileged ones flagged (domain-level groups, owner or administrator roles, write access to production data).
  4. Attach credential evidence: credential type (password, secret, certificate, key, federated), age, expiry, where it is stored and whether rotation is automated. See the Rotating a Windows or Linux Service Account Password guide.
  5. Check for human use: interactive sign-ins or console sessions by a service account indicate a shared credential (NHI10). Flag them for the reviewer.
  6. Route each row to its owner with a short form: purpose, the systems that depend on it, whether the permissions shown are needed, and a decision. Unowned rows go to the platform owner and are escalated, never auto-approved.
  7. Collect decisions with reasons. "Keep" needs a stated purpose and, for privileged access, a reason for each privileged permission. Reject decisions with no reason.
  8. Raise changes from each "reduce", "disable" or "replace" decision with an owner and a due date, and run them under change control.
  9. Verify and close: re-extract after the due date and reconcile every decision to the platform state.

Usage evidence by platform

PlatformEvidence sourceWhat it tells youLimits to state in the review
Active DirectorylastLogonTimestamp attribute (indexed)Approximate last logonUpdated only when older than msDS-LogonTimeSyncInterval, so it can lag the true last logon; confirm on domain controllers or in authentication logs before acting
AWSIAM last accessed information (GenerateServiceLastAccessedDetails, GetServiceLastAccessedDetails)Services each user or role was allowed to reach and when it last tried; action-level data for some services; kept for at least 400 daysIncludes denied attempts; excludes iam:PassRole, resource-based policies and data plane events; up to about four hours latency; CloudTrail is authoritative for success
Google CloudUnused service account insights (google.iam.serviceAccount.Insight, pre-GA), Activity Analyzer, Cloud Monitoring usage metricsAccounts that have not authenticated in 90 days; recent authentication by account and keyActivity through API keys bound to service accounts, and Google APIs outside Google Cloud such as domain-wide delegation, fall outside these insights; Google advises checking Cloud Monitoring usage metrics before removal
Microsoft Entra IDservicePrincipalSignInActivities report (Microsoft Graph beta, AuditLog.Read.All)Last sign-in per application, split into app-only and delegated, as client and as resourceBeta API, subject to change; confirm current availability in Microsoft's docs; sign-in alone does not show which permissions were used

Decision matrix

EvidenceDecisionHow to execute
No authentication in the review period, owner confirms not neededDisable, then deleteDisable, monitor for failures for 30 days (ours), then delete; keep the audit record
No authentication, owner unsureDisable with watchSame as above, with the owner notified of any failure
Used, but holds permissions it has not used in the periodReduceRemove unused roles or scope them to the resources used; test in non-production first
Used, permissions match use, long-lived credentialKeep and replace credentialMove to a managed identity, gMSA or federation; see How to convert AD service accounts to gMSA
Interactive or human useRemediateGive the people their own accounts; rotate the credential; block interactive sign-in
Privileged, neededKeep with conditionsRestrict where it can sign in from, vault the credential, monitor; review quarterly
No owner after escalationDisablePlatform owner disables after notice; whoever's process breaks becomes the owner

Verify it worked

  • Reconcile: every account in the frozen scope has a decision, and every decision has a closed change or an approved exception.
  • Re-extract: disabled accounts are disabled, removed roles are gone, and no disabled account has authenticated since its disable date. Use by a revoked account after the decision is an incident to investigate.
  • Sample: re-perform a sample of "keep" decisions with the evidence and confirm the reason holds.

Measures

  • Share of service accounts in scope with a named owner (target 100 percent).
  • Revocation or reduction rate per campaign, by owner team: a team that keeps everything every time needs a closer look.
  • Accounts with no authentication in 90 days still enabled after the campaign.
  • Median age of service account credentials, and share using managed identities or federation.
  • Time from decision to verified change.

Rollback and common errors

  • A disabled account breaks a quarterly or annual job: re-enable it (this is why you disabled rather than deleted), record the owner and schedule, and extend the review look-back for that class of account.
  • A role reduction breaks an application: restore the previous role assignment from the change record, then reduce in smaller steps with the owner watching logs.
  • Acting on "unused" from one source: each evidence source above misses some activity. For anything privileged or business-critical, confirm with a second source such as authentication logs before disabling.
  • Reviewing accounts but not credentials: a kept account with a ten-year-old password is still a finding. Put credential age on the review form.
  • Letting the IGA connector define scope: SaaS integration users, cloud keys and database accounts are missed. Reconcile scope against each platform's own listing.

Hardening afterwards

Framework mapping

FrameworkReferenceWhat the review provides
NIST SP 800-53 Rev 5AC-2 Account Management; AC-2(3) Disable Accounts; AC-2(12) Account Monitoring for Atypical Usage; AC-6(7) Review of User Privileges; IA-5 Authenticator ManagementPeriodic review, disabling unused accounts, privilege review and credential evidence
NIST CSF 2.0PR.AA-01; PR.AA-05Identities for services are managed; permissions are reviewed against least privilege
CIS Controls v8.1Safeguard 5.5 Establish and Maintain an Inventory of Service AccountsOwner, purpose and review date, reviewed at least quarterly
OWASP Non-Human Identities Top 10 (2025)NHI1 Improper Offboarding; NHI5 Overprivileged NHI; NHI7 Long-Lived Secrets; NHI10 Human Use of NHIEach is a review outcome: disable, reduce, replace credential, remediate human use

Practitioner checklist

  • Define service account types in scope and freeze the population on a date.
  • Give every account a technical owner team and an accountable individual.
  • Attach last authentication, permissions granted versus used, and credential age to every row.
  • Record each evidence source's limits on the review form.
  • Send rows to system owners, not line managers, and require a reason for each keep.
  • Disable before delete, with a monitoring window and a documented rollback.
  • Reconcile decisions to platform state and investigate any use after revocation.
  • Scope and review the collector identity itself.

Standards and references

Related NHI Mgmt Group resources: Access Reviews Guide · Access Review Checklist · Service Account Security Guide · Service Account Inventory Template · Service Account Breaches Lessons Guide

Free weekly newsletter

Subscribe to the NHI & AI Identity Journal

The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.

Bonus 33% off our NHI Course when you subscribe.

NHIMG Editorial Note
Researched and written by the NHI Mgmt Group editorial team using AI tools, under the editorial direction of Lalit Choda. Facts are drawn from the sources listed on this page and checked by our automated quality process. Last updated 11 November 2026. Spotted an error? Use our contact page.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM and Agentic AI security. nhimg.org