Safeguard
Compliance•

How do you prove dormant accounts get disabled? A practical routine

Define inactive, query last login, disable on schedule and keep the proof. A step by step routine for engineering leads facing access control audits.

Safeguard Security Team
3 min read

Define how long without use makes an account dormant, run a scheduled query for accounts past that threshold, disable them through a ticketed process, and keep the query output and tickets. The proof is the repeated routine, not a one-off cleanup before the audit.

What the standards leave to you

NIST SP 800-53 account management asks organizations to review accounts for compliance with their account management requirements at an organization-defined frequency. The related enhancement on disabling accounts lists triggers such as expired accounts, inactive accounts past an organization-defined threshold, accounts no longer associated with a user, and accounts that violate policy. The key phrase is organization-defined. The framework does not say 30 or 90 days. You choose, write it down, and then do it.

Step 1: define dormant

Pick a number and state what counts as activity. Be specific, because systems differ.

Account typeActivity signalExample threshold you might choose
Employee SSOLast successful sign in60 or 90 days
Cloud IAM userLast console sign in or last key useMatch SSO policy
Service accountLast authentication or last token useLonger, with a named owner
ContractorContract end date, not only loginEnd date plus a short grace period

These are examples. Your risk and your business set the real numbers.

Step 2: run the query on a schedule

Most identity providers and cloud platforms expose last activity through reports or APIs. Write the query once, run it monthly or weekly, and save the output with the run date. A short script that exports to CSV and uploads to your evidence store is enough.

Step 3: act and record

  1. For each flagged account, confirm with the manager or owner that it is no longer needed.
  2. Disable first, delete later. Disabling is reversible and still satisfies the intent.
  3. Create or update a ticket per batch, listing account names, last activity date and action taken.
  4. For accounts you keep, record the reason and an expiry date for the exception.

Step 4: show the loop closed

An auditor will usually sample some accounts. Be ready to show, for a sampled account, the last activity date, the monthly report that flagged it, and the ticket that disabled it. For an account that was not disabled, show the exception.

Pitfalls

  • Service accounts and break-glass accounts look dormant by design. Document them with owners and a different review cadence.
  • Some systems do not record last login reliably. Say so, and use a compensating check such as a periodic manual review.
  • Reports that only show current state cannot prove past action. Keep each run.

Quick check

What is the right inactivity threshold?

NIST leaves it organization-defined. Choose one based on your risk, write it in your policy, and be consistent.

Should dormant accounts be deleted or disabled?

Disable first. Delete after a retention window your policy defines, once you are sure nothing depends on the account.

How many monthly reports do I need to keep?

Keep every run inside the audit period, since sampling can land on any month.

Safeguard offers agent identity and asset discovery plus compliance and evidence automation, which help show which identities exist and who owns them. A free scan is available.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.