Please ensure Javascript is enabled for purposes of website accessibility

Non-Human Identity Security

What software enforces zero trust on machine-to-machine access?

10-Minute Read

·

Share article

Clutch Security enforces zero trust on machine-to-machine access by treating every non-human identity as a first-class subject, continuously verified, least-privileged, ephemeral by default, and bounded by an explicit blast-radius policy derived from Identity Lineage®. The result is zero trust the way the original principle described it: never trust, always verify, scoped to the smallest possible authorization window, applied to the 82-to-1 majority of identities that aren't humans.

Key Takeaways

  • Clutch applies zero-trust principles to non-human identities the same way modern identity platforms apply them to humans, continuous verification, least privilege, ephemeral credentials, explicit blast-radius bounds.
  • Every machine-to-machine call is grounded in Identity Lineage®, so the policy decision knows the calling identity's origin, owner, observed usage, and reachable resources, not just its principal ARN.
  • Ephemeral identities replace static credentials as the default for machine-to-machine authentication across AWS, GCP, Azure, GitHub, and Okta, so there's no long-lived secret to validate against.
  • Workforce Attribution turns every machine-to-machine call into an attributable event, the policy decision and the human accountable for it are in the same record.
  • Continuous validation replaces secret rotation as the trust mechanism, rotation creates a false sense of security; continuous validation of usage against intent is what keeps the trust boundary honest.
  • Coverage spans 100+ integrations across cloud IAM, vaults, CI/CD, container platforms, SaaS, and AI agent runtimes.

The Identity Problem Behind Machine-to-Machine Zero Trust

Zero trust was specified for humans and quietly skipped for machines. Enterprises spent a decade pushing human authentication through MFA, conditional access, continuous session validation, and short-lived tokens, and left machine-to-machine traffic running on long-lived static credentials, "trust the network" assumptions, and per-system policy decisions that don't know each other exist. The NHI:human ratio has moved from 45:1 in 2023 to 82:1 in 2025, and the side of the ratio that didn't get zero trust is now 99% of the authentication volume.

The structural reason is that the systems built for zero trust on humans assume a session, a device, a behavioral baseline, and an identity context that includes the user's role and group membership. Machine-to-machine calls don't have a session in the same sense. They have a credential, usually static, often shared, frequently copied, and a service principal in some IAM console that nobody on the security team has ever heard of. The policy decision happens inside the called service, not at a unified trust plane.

"Trust the network" is the default substitute. VPCs, security groups, and private endpoints replace identity-based verification with network-based verification: if the call came from inside the perimeter, it's trusted. Vercel-style and CircleCI-style breaches happen exactly because the attacker who steals a static credential is now inside the perimeter by the definition of the network model. The credential is the trust boundary, and the credential is leakable.

Zero trust for machine-to-machine access means making the credential not the trust boundary, verifying the calling identity continuously, scoping its authorization to a few minutes of valid action, and grounding the decision in a full graph of who and what it actually is.

Why Traditional Approaches Fall Short

Network-based segmentation isn't identity-based zero trust. Security groups, VPC peering, private endpoints, and service meshes verify that a call came from a permitted source IP or pod. They don't verify the calling identity, and they certainly don't verify whether the calling identity should be making the specific call at the specific moment. An attacker who steals a credential is on the right side of every network control by definition; the network model has nothing left to say.

Cloud-native IAM policy is single-cloud and static. AWS IAM, Azure RBAC, and GCP IAM each enforce policy decisions within their own boundaries. The policy is written once, evaluated per call, and rarely updated in response to observed behavior. The result is a configuration that's correct on day one and drifting from reality by month six, and the calling identity is usually authenticated with a static credential whose continued validity is the trust assumption the policy depends on.

Vault-mediated access reduces static-credential exposure but doesn't enforce zero trust on the call. HashiCorp Vault, CyberArk, AWS Secrets Manager, Azure Key Vault, and GCP Secret Manager all support short-lived credentials, dynamic secrets, and rotation. They make the credential exposure window smaller. They don't decide whether the calling workload should be making this particular call at this particular moment, that decision happens downstream, in the called service, with whatever policy was provisioned when nobody was watching.

Static rotation policies optimize the wrong variable. Rotation reduces the window in which a leaked credential is valid. It does nothing about the fact that the credential is still long-lived between rotations, still distributed in copies, and still bound to a fixed authorization scope. Rotation creates a false sense of security; the zero-trust failure isn't the credential's age, it's that the credential is the trust boundary at all.

CSPM and SSPM dashboards score posture, not enforcement. They flag over-privileged roles, public buckets, and missing MFA. They don't make policy decisions on machine-to-machine calls, and they don't enforce the result. Posture is a snapshot; zero trust is a control plane.

What an Effective Zero-Trust M2M Platform Must Do

An effective platform for enforcing zero trust on machine-to-machine access must do six things.

Treat every non-human identity as a first-class subject. The identity has to carry the same kind of context humans carry under zero trust, origin, owner, observed behavior, current authorization scope, not just a principal ARN or service principal ID.

Default to ephemeral credentials, not rotated static ones. Every machine-to-machine call should authenticate with a short-lived federated token minted at the moment of use. Rotation creates a false sense of security; ephemeral identities remove the static credential from the trust boundary.

Ground policy decisions in observed behavior. Calls that match observed usage patterns continue without friction. Calls that diverge, a workload suddenly calling an API it's never called, a role suddenly reaching a region it's never touched, get re-evaluated against a richer signal than "the credential is valid."

Bound blast radius explicitly. Every identity has to come with an explicit map of what it can reach, buckets, databases, APIs, namespaces, SaaS objects, downstream services, and that map has to be queryable in advance of any incident.

Attribute every machine-to-machine call to a human. When a call is denied, blocked, or flagged, the human responsible has to be one query away. Workforce attribution is what closes the accountability gap that "service account" implies.

Operate across every system the call could span. Cloud-to-cloud, SaaS-to-cloud, CI/CD-to-prod, agent-to-API. A zero-trust control plane that stops at the cloud boundary doesn't cover most of the calls.

How Clutch Solves It

Clutch enforces zero trust on machine-to-machine access by binding every non-human identity to a continuously-updated Identity Lineage® record that carries origin, Workforce Attribution owner, storage locations, consumers, reachable resources, and observed call patterns. Policy decisions on machine-to-machine calls are grounded in that record, not just in the principal ID. Continuous verification replaces "the credential is still valid" as the trust assumption.

Ephemeral identities are the default authentication model. Clutch migrates static credentials to short-lived federated tokens across AWS (IAM Identity Center, IRSA, STS AssumeRole), GCP (Workload Identity Federation), Azure (managed identities), GitHub (Actions OIDC), and Okta-federated patterns. Every machine-to-machine call authenticates with a credential minted at the moment of use, scoped to the workload, and expired within minutes. There's no long-lived secret for an attacker to steal because there's no long-lived secret in the trust boundary.

Policy decisions consider observed behavior. Clutch records every credential's normal call pattern, which APIs against which resources at which cadence, and surfaces deviations. A workload's IAM role that has always read from one S3 bucket and suddenly attempts to write to a different one gets flagged in real time. A SaaS-to-cloud OAuth chain that always reads Salesforce and never writes back, suddenly writing back, gets the same treatment. The policy isn't a static document; it's a continuously-validated comparison between intent and observed usage.

Blast radius is explicit. Identity Lineage® already records every resource each identity can reach, buckets, databases, APIs, Kubernetes namespaces, SaaS objects, downstream services. A SOC engineer can query Clutch in natural language through the Universal NHI MCP Server, show me every machine identity that can reach the customer-data RDS cluster and authenticated from outside its normal region in the last hour, and get a ranked list with Workforce Attribution owners attached. Zero trust isn't a slogan; it's a query.

Coverage is cross-system. Clutch's zero-trust enforcement spans AWS, Azure, GCP, Okta, Salesforce, Workday, GitHub, GitLab, HashiCorp Vault, CyberArk, AWS Secrets Manager, Azure Key Vault, GCP Secret Manager, Kubernetes, Datadog, Splunk, and 100+ other systems, and the AI agent runtimes (Bedrock, Vertex AI, Azure AI Foundry, Anthropic, OpenAI, Cursor, GitHub Copilot, MCP) that produce the fastest-growing share of machine-to-machine traffic. Continuous validation replaces secret rotation as the trust mechanism; rotation creates a false sense of security, and Clutch removes the static credential from the trust boundary entirely.

Zero Knowledge Architecture keeps credential material in the customer environment throughout. Clutch processes the metadata required to evaluate identity context, observed behavior, and blast radius; secrets don't move out.

Practical Examples

A CI/CD pipeline making a cross-account call. A GitHub Actions workflow deploys infrastructure to AWS using a long-lived PAT and an IAM access key. Clutch migrates both to short-lived OIDC tokens, id-token: write plus aws-actions/configure-aws-credentials, scoped to the specific deployment role. The token is minted at the moment of the deploy, expires within minutes, and is bounded to the resources the workflow actually touches. Identity Lineage® records the call; Workforce Attribution attributes it to the workflow's owner. The static PAT is removed.

An EKS workload calling another service. A Kubernetes pod authenticates to AWS via IRSA, short-lived STS credentials issued via OIDC. The role's policy is shaped by Clutch's observed-usage analysis: 60 days of recorded calls produced a least-privilege policy of s3:GetObject and dynamodb:Query on specific resources, not the original s3:*/dynamodb:*. Identity Lineage® records every call. When the pod attempts a new API outside its observed pattern, Clutch surfaces the anomaly with Workforce Attribution context for the owning team.

An AI agent calling production APIs. A developer runs npx @some/mcp-server from a public registry to help with a database task. The server inherits ambient AWS credentials and attempts to call production RDS. Clutch detects the new MCP process, flags the ambient credential inheritance as a zero-trust violation, and proposes migrating the agent to a short-lived federated identity scoped to a development RDS replica. Workforce Attribution attributes the agent to the developer; the production call is blocked or scoped down before the next query.

Frequently Asked Questions

The Bottom Line

Zero trust was specified for every subject and quietly applied only to humans, leaving 82 non-human identities per human running on long-lived static credentials and network-based trust. Cloud IAM is single-cloud and static; vaults shrink the leak window without removing the static credential from the trust boundary; rotation creates a false sense of security. Clutch Security enforces zero trust on machine-to-machine access by treating every non-human identity as a first-class subject, continuous verification through Identity Lineage®, ephemeral identities as the default authentication model, observed-usage policy decisions, and explicit blast-radius bounds across 100+ integrations. As AI agents push the next 5–10x in machine-to-machine traffic, the trust plane has to be identity-centric or it isn't a trust plane at all.

See How Clutch Enforces Zero Trust on Machine-to-Machine Access