Intramedial is in restricted beta. At sign up or sign in, you have to provide the beta tester password you received or request one at preview@intramedial.com. Thank you.
Loading…
iam.assumeModule 31
Plane module
Cloud credential broker
Give an agent a short-lived cloud credential only while it holds a live lease on the role, and let the credential die with the lease.
iam.assume brokers AWS credentials through STS AssumeRoleWithWebIdentity. No lease on the role ARN, no credential, and the credential's lifetime never outlives what is left of the lease. The ledger records an issue, never the keys. A warehouse route does the same for Snowflake and BigQuery.
Intralock · Leases · Parley · Fleet Map
A Trustvice Product
Agents act when the plane says yes, and the record says why.
Put admission in front of your MCP servers, repositories, SaaS tools and cloud accounts. Every agent gets a lease or a reason – and you keep the lever to stop any of them.
Required. The OIDC token passed to STS. AWS checks it; the broker does not.
sessionName
The AWS role session name. It defaults to acp and is only a label.
region
The STS region. It defaults to us-east-1.
ttlMs
Optional lifetime you ask for. It can only shorten what the lease and the ceiling allow.
leaseId
In the response: the lease that justified the credential. leaseScoped is true.
expirationMs
In the response: when the credential expires, as reported by STS.
Mechanism
Step by step
How it works
Forms and phases
A
AWS role
assume takes a roleArn, an actorDid and a webIdentityToken, and returns STS credentials for that role. The lease it needs is held on the role ARN itself.
B
Warehouse
warehouse takes a resource URN of the form imd://warehouse/<snowflake|bigquery>/<account>/<path>, an actorDid and optionally a subjectToken, and mints a key-pair JWT or a federated access token.
Step by step
Take a lease
The agent acquires a lease on the role ARN through coordination.lease. The lease is what justifies the credential; nothing else does.
Ask for the role
assume takes roleArn, actorDid, sessionName, webIdentityToken and optionally region and ttlMs. The token must be one AWS trusts for the role.
This module's calls change real state or reach outside services, so the shared demo does not run them. Sign in to run it in your own workspace. iam.assume docs
Responses
This module's calls change real state or reach outside services, so the shared demo does not run them. Sign in to run it in your own workspace.
Code
Live example
A real request
A request in the shape the API accepts, and an example response in the shape the module returns.
An agent that deploys holds a lease on the deploy role and nothing else. Without it, the role has no credential to hand over.
Credential death with the lease
A lease with twenty minutes left cannot yield an hour-long credential; the lifetime is the smaller of the lease's remainder, ttlMs and 3,600,000 ms.
Watching issuance
Each issue appends an iam.assume event naming the actor, the role and the expiry. watchdog.check reads those events for rate anomalies.
Keeping crown jewels out
A role whose name matches a protected class such as billing or kms is refused with 403, even for a lease holder.
When to use something else
Acquiring or releasing the lease. Use coordination.lease; the broker only reads leases.
Deciding whether an action in the cloud is allowed. Cloud IAM does that; this module issues the credential and stops.
Spotting a burst of credential requests. That is watchdog.check, which reads what this module records.
Evidence
Guarantees
What it does, and what it does not
A module is a strong claim about a narrow thing. Rely on it for exactly what it is.
It does
A credential is minted only for the DID that holds a live lease on the exact role ARN.
Its lifetime is the minimum of the lease's remaining time, the requested ttlMs and 3,600,000 ms.
The ledger event iam.assume records the actor, the role and the expiry, and never the access key, secret or session token.
A lease with too little time for STS's own 900-second minimum is refused with 409 rather than rounded up.
It does not
That a released lease kills a credential already issued. The credential lives until its expirationMs; the lease only stops the next one.
That the web identity token is valid for the agent. STS decides that, and the broker passes the token through.
That ledger recording succeeded every time. A failed write does not block issuance; the watchdog's silence check covers the gap.
Details
Build notes
Before you build
Short leases
AWS STS refuses sessions under 900 seconds, so a lease with less than that left cannot be turned into a credential.
Protected classes
The role name, the part after the last /, is checked against the snapshot's protected classes. A match is refused before any lease is read.
The holder match
The lease holder is compared with actorDid, which an authenticated agent can only set to its own DID.
Warehouse setup
The Snowflake and BigQuery paths need their own secrets bound. An unconfigured warehouse answers 501, and a Snowflake resource with no mapped role is 403.
Limits and metering
roleArn must start with arn:aws:iam::, webIdentityToken and actorDid are required, and a missing one returns 400.
No lease, an expired lease, a lease held by another agent or one with too little time left returns 409.
The credential lifetime never exceeds 3,600,000 ms, whatever ttlMs says.
The response contains the secret keys once; keep it out of logs, because the ledger will not have it.
Access
API & MCP
REST and MCP
Authenticate with a workspace API key as a Bearer token. The base URL is https://api.intramedial.com.
REST endpoints
POST/api/v1/acp/iam/assumeMint AWS temporary credentials for a leased role.
POST/api/v1/acp/iam/warehouseMint a Snowflake or BigQuery credential for a leased resource.
MCP actions
MCPcoordination.iam.assumeRequest AWS credentials from an agent.
It refuses a protected-class role name with 403, then a missing, expired, foreign or nearly spent lease with 409, then calls STS.
Use it and let it expire
The response carries the access key, secret and session token with expirationMs. Releasing the lease ends the broker's willingness to mint, not credentials already issued.
coordination.halt06
Emergency stop switches
Stop one agent, one mandate or one resource at once, with a reason on record, and lift the stop when it is safe.