SecureWorld News

The Non-Human Identity Blast Radius: Taming the 45:1 Machine-to-Human Imbalance

Written by Sandeep Dommari | Mon | Oct 12, 2026 | 4:17 PM Z

Ask any IAM director about their quarterly access reviews, and they will tell you about the weeks spent chasing department heads to sign off on employee permissions. We invest millions in Identity Governance and Administration (IGA) tools to verify whether an analyst still needs Salesforce access or if an engineer changed departments. We mandate phishing-resistant MFA, enforce conditional access policies, and celebrate when employee offboarding runs smoothly.

Then an incident happens, and the post-mortem reveals an uncomfortable truth: the attacker never touched an employee account. They did not need to crack passwords, bypass passkeys, or social engineer an employee over the phone. Instead, they discovered a forgotten service principal created three years ago for an abandoned cloud migration, still holding owner rights across production subscriptions.

In modern cloud environments, non-human identities (NHIs) form the operational connective network across every microservice, pipeline, and datastore. They are also our largest, most neglected vulnerability.

The reality of the 45:1 imbalance

In a typical hybrid enterprise, machine identities outnumber human workforce accounts by roughly 45 to 1. For every employee logging into an identity provider, there are dozens of API keys, OAuth application tokens, automated sync jobs, service accounts, and CI/CD build runners executing tasks in the background.

The fundamental problem comes down to accountability. When an employee leaves a company, HR triggers a deprovisioning workflow that suspends their directory account, revokes their session tokens, and closes their open tickets.

Machine identities never submit two-week notices. When an external contractor finishes a contract, or when a DevOps engineer writes a quick script to test an S3 backup, the service account created for that work stays behind. It lives indefinitely in a cloud tenant or a Kubernetes manifest.

Because nobody wants to break an automated production dependency, these accounts are rarely deleted. They sit quietly with standing administrative permissions, waiting to be discovered.

Why attackers focus on machine credentials

From an adversary's perspective, non-human identities are the path of least resistance:

  • MFA does not apply: Automated pipelines cannot respond to push notifications or insert FIDO2 security keys. Once an attacker obtains a private key, an API secret, or a long-lived bearer token, they authenticate directly to the target API without triggering an interactive challenge.

  • Over-privileged scopes: During development, engineers frequently assign broad roles like Azure's Contributor or AWS's Administrator Access to service principals to avoid debugging permission errors. Those broad privileges remain in place long after the build reaches production.

  • Blind spots in logging: Many SOC teams configure alerts to flag anomalous employee behavior, such as logins from unexpected countries or off-hours access. Automated service accounts run continuously across distributed regions by design, making malicious API calls blend in with legitimate background traffic.

When an adversary compromises an unmonitored machine identity, they do not need to escalate privileges slowly. They step directly into an administrative control plane.

Eliminating static secrets with Workload Identity Federation

Securing machine identities requires eliminating static, long-lived access keys altogether. Storing access keys and client secrets in CI/CD pipeline variables or configuration files creates permanent exposure.

The engineering answer is Workload Identity Federation, which uses short-lived tokens and OpenID Connect (OIDC) trust relationships instead of permanent credentials:

Three primary architectural patterns replace static machine credentials across enterprise environments:

  1. Azure Workload ID: Rather than generating permanent client secrets for Azure App Registrations, external workloads (such as Kubernetes pods running in AWS or on-premises) present an OIDC token issued by their local cluster. Azure Entra ID validates the token signature and exchanges it for a temporary Azure access token, completely eliminating static secret strings.

  2. GCP Workload Identity Federation: External systems, including GitHub Actions and on-premises automation servers, authenticate to Google Cloud APIs by exchanging their native identity tokens for short-lived Google Cloud service account credentials through the Security Token Service (STS).

  3. AWS IAM Roles Anywhere: For servers and containers running outside AWS that cannot use standard instance profiles, IAM Roles Anywhere uses an internal Public Key Infrastructure (PKI) to establish trust. Workloads present an X.509 certificate to request temporary AWS credentials, removing the need for static AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY pairs on remote hosts.

Under these architectures, there are no long-lived passwords to leak, copy, or rotate. Credentials exist only for the minutes required to execute a specific task.

Establishing an NHI governance lifecycle

Architecture alone cannot resolve the machine identity backlog without operational governance. Security teams must manage non-human identities with the same structural discipline applied to human employees.

1. Enforce mandatory ownership and expiration metadata

Every service account, cloud role, and API token must be assigned to an active human owner and an operational team. Implement automated policy checks that block the creation of any service principal lacking required metadata tags:

  • OwnerEmail: Direct human point of contact accountable for access re-certification.

  • CostCenter: Prevents orphaned accounts by tying credentials directly to a funding budget.

  • ExpirationDate: Hard time-to-live (TTL) after which the principal auto-disables.

  • BusinessJustification: Documented purpose to eliminate ambiguous "test" accounts in production.

If an owner leaves the company, unassigned machine identities should automatically be routed to their manager during the offboarding workflow.

2. Telemetry-driven entitlement pruning

Static permission assignments degrade into security liabilities over time. Security teams should leverage runtime telemetry from CloudTrail, Azure Activity Logs, and GCP Cloud Audit Logs to identify permission drift:

  • Track which API actions a machine identity actually executes over a rolling 60-day window.

  • Automatically flag and strip standing permissions that have never been exercised.

  • Downgrade broad administrative roles to tightly scoped custom policies tailored to verified runtime needs.

3. Continuous discovery across repositories and pipelines

Deploy automated scanning across source code repositories, container images, and deployment manifests. Flag hardcoded credentials before code merges into production branches, and systematically catalog orphaned cloud roles that have recorded zero API activity for more than 90 days.

Reframing the perimeter

Enterprise security teams have spent decades focusing their attention on human authentication. While protecting user logins remains necessary, it addresses only a small fraction of modern digital transactions.

The modern attack surface is composed of service principals, automated runners, and machine credentials that operate without direct human intervention. Treating non-human identities as secondary infrastructure components creates an open invitation for compromise.

Zero Trust frameworks that only evaluate interactive human logins are protecting less than three percent of the operational identity surface. Until service principals, CI/CD tokens, and cloud roles carry the same ownership rules, rotation constraints, and automated retirement schedules as employees, machine credentials will remain the preferred path of least resistance.