The identities that authenticate when nobody is present
Workloads, service accounts, pipelines and integration users — each with an owner, a purpose, the credentials it holds and the permissions it has never once used.
A seeded estate, not live customer data. Scores are summed from the factors on each identity, and the shared-credential findings are derived from which agents run as what — not written down, so an identity that gains a second consumer gains the finding with it.
Estate summary
7
Machine identities
4
Holding a long-lived secret
3
Missing an owner
1
Dormant, still enabled
3
Credential expiring soon
1
Credentials shared by several agents
283
Granted actions never used
3
Scoring 65 or above
Estate
Ranked by risk
The dormant account is near the top without having authenticated in nearly a year. That is the point: it is not being used, and it could still do everything it was ever able to.
- Production Billing ServiceOverprivileged
ATC-MID-0001188 · Microsoft Entra ID
Reconciles invoices and posts settlement records to the finance ledger.
last authenticated 1 minute ago · 115 granted actions unused
81
- Legacy Warehouse ETLDormant
ATC-MID-0004010 · Snowflake
No purpose on record. Nobody has said why this exists.
last authenticated 311 days ago · 89 granted actions unused
80
- Salesforce Integration AccountProductionShared credential
ATC-MID-0003901 · Salesforce
Reads and writes CRM records on behalf of revenue and support automation.
last authenticated 9 minutes ago · 17 granted actions unused
66
- GitHub Actions DeployRestricted
ATC-MID-0002733 · GitHub
Builds and deploys the platform services from the main branch.
last authenticated 26 minutes ago · 52 granted actions unused
54
- Onboarding Document ReaderCredential expiring
ATC-MID-0006140 · Microsoft Entra ID
Reads onboarding policy documents for the HR assistant.
last authenticated 2 days ago · 8 granted actions unused
38
- Invoice Parser WorkloadProduction
ATC-MID-0005266 · Kubernetes · prod-eu
Parses supplier invoices inside the finance namespace and writes the result to the ERP.
last authenticated 2 minutes ago · 1 granted actions unused
20
- Qeluntra Supplier WorkloadProduction
ATC-MID-0000412 · Microsoft Entra ID
Lets the Supplier Risk Agent read supplier financial-risk records from the Qeluntra API.
last authenticated 4 minutes ago · 1 granted actions unused
18
The chain
Why an inventory on its own answers nothing
An agent list tells you what is running. An identity list tells you what can authenticate. Neither answers the question that matters during an incident — if this credential is compromised, which agents were relying on it — because that answer lives in the link between them.
- 01Human owner
- 02AI agent
- 03Machine identity
- 04Credential
- 05Resource
Credentials more than one agent depends on
Salesforce Integration Account
2 agents authenticate as this identity, so an action taken through it cannot be attributed to one of them.
Credentials
The ladder off standing secrets
Most machine-identity risk is one property: a secret that does not expire, held by something that cannot be asked why it still has it.
- 01Static secret held by the workload
- 02Federated workload identity
- 03Short-lived credential, brokered per action
Minutes to hours. Expires before it is worth stealing.
Federated token · Managed identity · SPIFFE SVID · Temporary STS credential · OAuth access token
Days to weeks. Worth rotating on a schedule somebody keeps.
Signed JWT · X.509 certificate
Months, or never. The thing this module exists to eliminate.
OAuth refresh token · Client secret · API key · Cloud access key · SSH key · Database password
Discovery
Read-only first, and that is a product decision
Asking for write access to a customer's identity provider on day one is how a security tool fails to get installed at all. Discovery reads and recommends; remediation comes after the inventory has earned trust.
Microsoft Entra ID
- Applications
- Service principals
- Managed identities
- Federated credentials
- Role assignments
- API permissions
AWS
- IAM roles
- Access keys
- Instance profiles
- Lambda and ECS task roles
- Roles Anywhere
- Cross-account trust policies
Google Cloud
- Service accounts
- Service-account keys
- Workload identity federation
- IAM bindings
- Cloud Run and Function identities
Kubernetes
- Clusters and namespaces
- Service accounts
- Role and cluster-role bindings
- Secrets
- Workloads using each identity
GitHub
- GitHub Apps
- Actions workflows
- Deploy keys
- OAuth apps
- Cloud federation
- Workflows still using long-lived cloud keys
Databases
- Application users
- Privileged machine accounts
- Stale logins
- Shared identities
Classification
Three classes, and an agent is one of the machines
That is not a technicality. An agent that cannot be reasoned about as a workload is an agent whose credentials nobody is inventorying.
A person. Authenticates because somebody is present to do it.
Employee · Contractor · Administrator · Partner
Software acting on its own. Authenticates because it was configured to, often long ago.
Application · Service · Container · CI/CD workflow · API client
A machine identity that decides what to do next. It is the only one of the three that can surprise you.
Autonomous agent · Copilot · Multi-agent system