Join our Newsletter — 33% off our NHI Course
Home› Guides› How to assign owners to orphaned service accounts:…
Guide Non-Human Identity (NHI)

How to assign owners to orphaned service accounts: Trace evidence, confirm owners and record them where they last

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

Most service accounts were created by someone who has since moved on, and once nobody owns an account nobody rotates it, reviews its rights or notices when it is misused. This page is the working procedure for giving every ownerless service account a named, confirmed owner: build the orphan list, gather creator and consumer evidence from Active Directory, Microsoft Entra ID, AWS and Google Cloud, score it, run a claim round with a deadline, record the owner where tools and auditors can read it, and contain what nobody claims without breaking production. It is for identity, IAM and platform teams running a clean-up, and for auditors checking one. For what an owner is accountable for, see the NHI Ownership Guide; for how orphans are defined and found by correlation, see Orphaned and Dormant Accounts. This page does the assignment work in between.

This is an independent guide from NHI Mgmt Group, based on Microsoft, AWS and Google Cloud public documentation as checked in November 2026. Confirm settings and retention periods against current vendor documentation.

Key takeaways

  • The creator is evidence, not the answer. The person who created an account is often the wrong owner today. Weight current consumers (which application, host or pipeline uses it) above historical creators.
  • Creation logs expire fast. AWS CloudTrail event history covers 90 days and Microsoft Entra audit logs keep 7 days on Free and 30 days on P1 or P2. For older accounts you will rely on consumer evidence and archives, so start the evidence collection before anything else.
  • Owner means a person plus a team. Record an accountable individual and an owning team or cost centre, so the next leaver does not orphan the account again.
  • Record ownership where it lives and where it is read. Use the platform's native field where one exists (Entra application owners, AWS tags) and the inventory for everything else. Active Directory's managedBy attribute is not defined for the user class, which most AD service accounts use.
  • Unclaimed does not mean unused. Disable in stages with a documented re-enable path, never delete on the first pass.

When you need this

Before you start

ItemWhat you need
Orphan listEvery service account, application identity and IAM role with no owner, or an owner who has left or moved, from the inventory
Authoritative people dataAn HR or worker extract with status, manager and team, to test whether a recorded owner is still valid
Application registerA CMDB or application catalogue mapping applications and hosts to owning teams
Log accessRead access to domain controller security logs or your SIEM, Entra audit logs, CloudTrail (event history and any trail archive) and Google Cloud audit logs
MandateA sponsor (usually the CISO or head of IT) who has approved the claim deadline and the disable step, in writing
Ownership record formatAgreed fields: owner, owning team, purpose, consuming system, review date. See the Service Account Inventory Template

Step-by-step

  1. Build and triage the orphan list. Sort by risk, not alphabetically: privileged group membership, cloud administrator rights and interactive sign-in capability first. Accounts with Domain Admin rights deserve their own track; see How to find service accounts with Domain Admin rights.
  2. Collect creator evidence while logs still exist. Use the sources in the table below. Export the results into the inventory now, because the native retention windows are short.
  3. Collect consumer evidence. Find where the account is actually used: hosts, applications, pipelines and code. This is the strongest signal of the current owner.
  4. Score each candidate owner. Combine the signals (see scoring below) and pick the most likely owning team, then the person in that team.
  5. Run the claim round. Send each candidate team the account, its evidence and a short form: confirm ownership, nominate the right team, or confirm it is not needed. Set a deadline (two to four weeks is typical) and escalate non-responses to the team's manager after the first reminder.
  6. Record the confirmed owner in the inventory and in the platform's native field where one exists (second table below). Record who confirmed and when.
  7. Contain the unclaimed. Reduce privilege or disable, with a re-enable path, then decommission after a quiet period. See the containment section.
  8. Prevent new orphans. Require an owner at creation and transfer ownership in the leaver process, so the list does not grow back.

Where to find creator and consumer evidence

PlatformCreator evidenceConsumer evidenceLimits
Active DirectoryEvent ID 4720 "A user account was created" on domain controllers (Subject Account Name and Logon ID identify who created it; requires Audit User Account Management); the whenCreated attribute dates itEvent ID 4624 with logon type 5 (service) on member servers shows where it runs; event 4769 Kerberos service ticket requests show clients using an SPN; services, scheduled tasks and IIS application pools configured with the account4720 survives only as long as your SIEM or log archive keeps it; most estates have no record for accounts older than that
Microsoft Entra IDAudit log entries for adding an application or service principal, with the initiating user or appService principal sign-in logs showing resources accessed; the application's existing owners list; API permissions consentedAudit and sign-in logs keep 7 days on Free, 30 days on P1 and P2, unless archived to storage or a SIEM
AWSaws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceName,AttributeValue=<user-or-role-name> for CreateUser, CreateRole or CreateAccessKey; check userIdentity of the resultRoleLastUsed and access key last-used data; CloudTrail events by AccessKeyId show source IPs and services; which stack, account or pipeline references the ARNEvent history: management events from the last 90 days, current region only, one lookup attribute per call; older history needs a trail archive or CloudTrail Lake
Google CloudLogs Explorer filter protoPayload.methodName="google.iam.admin.v1.CreateServiceAccount" (Admin Activity audit log); the principal in the entry is the creatorService account usage and key usage data; which workloads attach the account; impersonation bindingsAdmin Activity logs sit in the project's _Required bucket; confirm its retention period for your organisation
Code and pipelinesCommit author who first added the account name or ARNRepositories, CI variables and infrastructure code that reference it; code owners files for those pathsSearch tokens of the account name, not secret values

For Windows services specifically, see How to find Windows services running as domain accounts. For GCP impersonation evidence, see How to Audit GCP Service Account Impersonation Rights.

Scoring the evidence

SignalWeightWhy
Consuming application or host owned by a team in the CMDBHighReflects who depends on the account today
Code owners of the repository or pipeline that references itHighNames a current team with change rights
Existing native owner field (Entra owner, AWS tag) naming a current employeeMedium to highOften right, but may be stale
Cloud account, subscription or project ownerMediumA sound fallback for routing, rarely the true owner
Creator from audit logs, still employedMediumKnows the history; may have changed team
Naming convention or description textLowUseful hint, often outdated

Two agreeing high signals justify sending a confirm-only request. One medium signal justifies a "is this yours?" request. No signal means the account goes to the cloud account or platform owner for a decision, and into the containment track in parallel.

Recording the owner where it lasts

PlatformNative place to record ownershipNotes
Active Directory user-based service accountsThe inventory, plus a consistent text attribute if you must keep it on the objectmanagedBy is a single-valued DN attribute defined for classes such as Computer, Group and Organizational-Unit, not User. Agree one attribute and format if you also store owner text on the object, and keep the inventory authoritative
AD groups and computer-derived objectsmanagedBy (distinguished name of the managing user)Points to a person, so it must be updated in the leaver process
Microsoft Entra applications and service principalsThe owners collection: POST /applications/{id}/owners/$ref with "@odata.id": "https://graph.microsoft.com/v1.0/directoryObjects/{id}"Owners can be users or service principals. Least-privileged delegated roles include Application Administrator and Cloud Application Administrator. Remember that Entra owners can manage the app's credentials, so add owners deliberately
AWS IAM users and rolesTags such as owner, owner-team and purposeFollow your tagging standard; tags can feed reports and attribute-based conditions
Google Cloud service accountsThe inventory, plus the service account descriptionKeep the description short and structured (team, purpose, ticket)

Whatever the platform, the inventory is the record of truth and the native field is the copy that tools and reviewers see. Use the Machine Identity Naming and Tagging Standard Template to fix the field names once.

Containing what nobody claims

  1. Announce the date. After the claim deadline, publish the list of accounts to be disabled and the date, through change management.
  2. Reduce before you disable where the account is privileged: remove it from admin groups or detach broad policies first, and watch for failures for a week.
  3. Disable, do not delete. Disable the AD account, deactivate AWS access keys (aws iam update-access-key --status Inactive), disable the Entra service principal or Google Cloud service account. Record the exact re-enable step against each account.
  4. Watch for breakage. Alert on authentication failures for the disabled accounts (AD failed logons, CloudTrail InvalidClientTokenId or access denied for the key, Entra sign-in failures). A failure is your owner: whoever comes asking is the consumer.
  5. Decommission after the quiet period. If nothing breaks through a full business cycle (often 30 to 90 days, longer for quarter-end or year-end jobs), delete the account and close the inventory record.

Rollback: re-enable the account or key using the recorded step, assign the person who raised the incident as provisional owner, and give them the claim form with a short deadline. Entra applications that are soft deleted can be restored for a limited period, and Microsoft's own guidance for unused apps is to soft delete, wait 15 days, then permanently delete.

Decisions for small and large organisations

QuestionSmall organisationLarge organisation
Who runs the claim roundThe IT or identity lead, by direct conversationAn IGA campaign or ticket workflow routed by CMDB team
Owner of last resortHead of ITThe owner of the cloud account, subscription, project or application platform
Where ownership livesA spreadsheet inventory plus native fieldsIGA or CMDB as system of record, synchronised to native fields
Disable timingFaster, because dependencies are knownStaged by risk tier, with change advisory approval

Choose an individual owner plus team over a team-only owner: a team mailbox does not attest, and a person without a team becomes the next orphan. Choose consumer-based ownership over creator-based when the two disagree, because the consumer bears the outage risk and controls the change.

Common failure patterns

  • Assigning the creator by default. The account lands with someone who no longer works on the system and approves every review without looking.
  • Using the platform team as owner for everything. Owner of last resort is a routing step, not a final answer; a platform team cannot judge an application's need.
  • Waiting for logs that are already gone. Teams plan to check creation logs later and find the 30 or 90 day window has passed.
  • Deleting on the first pass. An unclaimed account that runs a quarterly job fails months later, with no rollback.
  • Leaving unclaimed accounts enabled indefinitely. The Colonial Pipeline attack began with one unused VPN account; unused accounts with valid credentials are exactly what attackers look for.
  • Not fixing the leaver process. Ownership decays again at the next reorganisation unless leavers and movers transfer their accounts. See the Joiner-Mover-Leaver Guide.

Detection and measurement

  • New accounts without owners: alert on AD event 4720, CloudTrail CreateUser and CreateRole, and Google Cloud CreateServiceAccount where the inventory has no owner within an agreed number of days.
  • Owner leaves: a daily join of the inventory against HR leavers flags accounts whose owner is no longer active.
  • Disabled-account activity: any authentication attempt by a disabled orphan is either a hidden dependency or misuse; investigate both.
MetricTarget
Service accounts with a confirmed, current owner100 percent of privileged accounts; over 95 percent overall
Median days from orphan detection to confirmed owner or disableUnder 30 days
Claim round response rate before escalationRising quarter on quarter
Accounts re-enabled after disable (hidden dependencies found)Tracked; each one gets an owner
Accounts whose owner left without transferZero older than 14 days

Framework mapping

FrameworkReferenceRelevance
NIST SP 800-53 Rev. 5AC-2 Account Management; AC-2(3) Disable Accounts; PS-4 Personnel Termination; CM-8 System Component InventoryAccount owners and lifecycle, disabling unneeded accounts, transfer at termination, inventory
NIST CSF 2.0PR.AA-01; GV.RR-02; ID.AM-02Managed identities and credentials, assigned responsibilities, inventory of services and systems
MITRE ATT&CKT1078.002 Domain Accounts; T1078.004 Cloud AccountsAbuse of valid but unwatched accounts
OWASP NHI Top 10 2025NHI1 Improper OffboardingIdentities left active after their owner or purpose is gone

Practitioner checklist

  • Get written sponsor approval for the claim deadline and the disable step.
  • Export creator evidence from AD, Entra, CloudTrail and Google Cloud before retention windows close.
  • Collect consumer evidence: hosts, services, pipelines, code references.
  • Score candidates and send confirm or claim requests with a deadline.
  • Record an individual owner and an owning team in the inventory and native fields.
  • Reduce privilege, then disable unclaimed accounts with a recorded re-enable step.
  • Alert on activity from disabled orphans and assign whoever surfaces.
  • Delete only after a full business cycle without dependency.
  • Add owner-at-creation and leaver transfer rules so new orphans stop appearing.

Standards and references

Related NHI Mgmt Group resources: NHI Ownership Attestation Campaigns Guide · Service Account Security Guide · How to Run an Access Review for Service Accounts · Ownership for Orphaned and Abandoned AI Agents

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