AWS STS
Read the emulator caller identity and request local session credentials.
Plan: Free11 of 11 operations implemented
These are emulator credentials; a successful identity response does not establish real AWS authentication or authorization.
Example checked on Vera 1.2.2, 8 November 2026. Each coverage note names its own evidence and date.
Connect
Section titled “Connect”This Free service needs no license key. Start Vera as in Get started, then run this in a terminal of its own, from an empty scratch directory. It gives the official AWS CLI dummy credentials and a config file of its own, so no AWS account is needed and your own AWS profile isn't touched.
export VERA_ENDPOINT="http://localhost:5003"export AWS_ACCESS_KEY_ID=test AWS_SECRET_ACCESS_KEY=testexport AWS_REGION=us-east-1 AWS_DEFAULT_REGION=us-east-1export AWS_SHARED_CREDENTIALS_FILE=/dev/nullexport AWS_EC2_METADATA_DISABLED=trueexport AWS_PAGER="" AWS_CLI_AUTO_PROMPT=offunset AWS_PROFILE AWS_DEFAULT_PROFILEunset AWS_SESSION_TOKEN AWS_SECURITY_TOKENunset AWS_WEB_IDENTITY_TOKEN_FILE AWS_ROLE_ARN AWS_ROLE_SESSION_NAMEunset AWS_CONTAINER_CREDENTIALS_FULL_URIunset AWS_CONTAINER_CREDENTIALS_RELATIVE_URIcat > vera-aws-config <<'EOF'[default]region = us-east-1output = jsoncli_binary_format = base64s3 = addressing_style = pathEOFexport AWS_CONFIG_FILE="$PWD/vera-aws-config"When you've finished every example in this terminal, close it and delete vera-aws-config, not before.
The emulator serves STS’s 2011-06-15 API over the AWS Query protocol, through the AWS CLI’s sts commands. With the setup’s dummy credentials, the caller is the user emulator in the account configured on your Vera instance: arn:aws:iam::123456789012:user/emulator in the examples.
Example
Section titled “Example”Check who you are, then ask for session credentials. Neither request needs a file or an IAM role.
aws --endpoint-url "$VERA_ENDPOINT" sts get-caller-identityWith the setup’s dummy credentials, the response is:
{ "UserId": "AIDACKCEVSQ6C2EXAMPLE", "Account": "123456789012", "Arn": "arn:aws:iam::123456789012:user/emulator"}Request session credentials for 900 seconds. The query prints only their expiry, so the session’s secret key and token aren’t shown:
aws --endpoint-url "$VERA_ENDPOINT" sts get-session-token \ --duration-seconds 900 \ --query 'Credentials.{Expiration:Expiration}' --output jsonIt prints an Expiration about 15 minutes after the request, such as {"Expiration":"2026-11-05T21:03:23+00:00"}. The time differs on every run. That’s the returned field only: whether the emulator rejects the credentials once they expire wasn’t tested.
Neither command creates a resource, and the session credentials aren’t put into your shell, so there’s nothing to clean up.
Supported features
Section titled “Supported features”- Caller identity:
GetCallerIdentityreturns the default caller for the dummy credentials. - Session tokens:
GetSessionTokenissues session credentials with anExpirationabout the requested duration ahead. - Role sessions: in Vera 1.2.2,
AssumeRoleandGetCallerIdentityworked with a freshly created IAM role. In an earlier check on Vera 1.2.0 preview,AssumeRolereturned session credentials, andGetCallerIdentitysigned with them returned the assumed role’s ARN and the session’s name. - Also served, not yet tested: assuming roles with SAML or a web identity,
AssumeRoot, federation tokens, access key information, decoding authorization messages and web identity tokens.
Limitations
Section titled “Limitations”The main limits are below. A few more apply to every service, and the API coverage notes cover smaller differences.
- Emulator credentials only. The identities and session credentials belong to the emulator, not AWS. A successful response doesn’t establish real AWS authentication or authorization.
GetCallerIdentitydidn’t check signatures in earlier testing, on 3 November 2026: it succeeded for an unsigned request and for one with an invalid signature, so a successful call doesn’t show that its credentials are valid. That was one observation, not a full test of request authentication.- Expiry wasn’t tested.
GetSessionTokenreturns an expiry time, but whether expired credentials are rejected wasn’t checked, and neither were duration limits. - Role session options weren’t tested. In Vera 1.2.2, assuming a freshly created role worked, but trust policies, external IDs, role chaining and session policies weren’t tested.
API coverage
Section titled “API coverage”Every operation in AWS's published 2011-06-15 API (SDK model, botocore 1.43.105), and whether the emulator implements it. Availability combines the earlier implementation inventory with the dated observations below; checking a page's example does not verify every operation. Each note names its evidence first; an observation given without a build or date comes from earlier testing, on 3 November 2026. What the statuses mean
No operation matches .
Try part of a name, such as AssumeRole, or .
| Operation | Status | Notes |
|---|---|---|
| Assume | Implemented | Local observation: Vera 1.2.2, 8 November 2026 — worked with a freshly created IAM role. Local observation: Vera 1.2.0 preview, 5 November 2026 — returned session credentials for a role, and GetCallerIdentity signed with them returned the assumed role's ARN and session name. The role was left behind by an IAM create request that answered an error, so that run wasn't a reliable setup. Trust policies, external IDs, role chaining, session policies and expiry weren't tested. |
| Assume | Implemented | |
| Assume | Implemented | |
| Assume | Implemented | |
| Decode | Implemented | |
| Get | Implemented | |
| Get | Implemented | Local observation: Vera 1.2.2, 8 November 2026 — worked with a freshly created IAM role. Local observation: Vera 1.2.0 preview, 5 November 2026 — returned user/ in account 123456789012 for the dummy credentials, and the assumed role's ARN and session name when signed with AssumeRole credentials. Earlier check, 3 November 2026: Succeeded for an unsigned request, one with an invalid signature and one naming API version 1900-01-01. |
| Get | Implemented | |
| Get | Implemented | |
| Get | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — with --duration-seconds 900, issued session credentials whose Expiration was about 15 minutes after the request. That shows issuance only: whether expired credentials are rejected wasn't tested. |
| Get | Implemented |