Skip to content

Identity, as deployed

The IAM and STS sections of this reference describe a service that is not deployed. There is no iam.shelfcs.com in the published endpoint list, and no call in those pages will answer.

This page describes the identity system that does exist. Where it disagrees with an IAM or STS page, this one is what will answer your call.

an internal service, an internal service.

Storefront identityCloud identity
Who runs itthe hosted auth service (Better Auth)the identity service
You areYour email addresscust-<user id>
CredentialPassword, then a 15-minute JWTCloud password, and EC2 access keys
Gets youSignup, billing, catalog, the Account APIEvery cloud API and both consoles
CreatedWhen you sign upAt POST /v1/onboard

They are two accounts created together, and they do not share a session. Neither is IAM.

What the identity service identity is made of

Section titled “What the identity service identity is made of”
ObjectWhat it isHow many you get
ProjectThe tenancy boundary. Every instance, volume, image and key belongs to oneExactly one, named cust-<user id>
UserThe login. Holds the password and the EC2 credentialsExactly one
RoleWhat the user may do on the projectExactly one: member
Domainthe identity service’s namespace above projectsDefault, always
EC2 credentialThe access key pair SigV4 signs withAs many as you mint — Access keys

That is the whole model. One user, one project, one role.

AWS IAMHere
AWS accountthe identity service project
IAM userThe one the identity service user. You cannot create a second
IAM groupDoes not exist
IAM role, AssumeRoleDoes not exist. There is no STS, no role assumption, no cross-account trust
Managed or inline policyDoes not exist. Authorisation is the member role and the platform’s own policy files, which you cannot edit
Policy condition keys, aws:SourceIp, MFA conditionsDo not exist
Permission boundary, SCPDo not exist
Instance profileDoes not exist. An instance carries no identity of its own and cannot call the API as itself
Access keythe identity service EC2 credential — the one concept that survives intact
Temporary credentialsDo not exist. Every credential is long-lived until deleted
iam:PassRoleNot applicable
Account root userThe operator, not you

Read these as consequences, not as apology:

  • You cannot give a teammate narrower access than your own. There is one user. Sharing access means sharing that user’s password or one of its keys.
  • You cannot give CI a read-only credential. A key inherits the whole member role — see Access keys.
  • You cannot separate staging from production inside one account. The project is the only boundary, and you get one. Separation means two accounts, signed up separately.
  • An application on an instance cannot authenticate as the instance. There is no metadata-served role. If it needs to call the API, it needs a key on disk, with everything that implies.
  • There is no MFA, on either identity system.
  • There is no audit log you can read. the identity service and the services log server-side; nothing surfaces it to you.

Policies written for AWS do not restrict anything here. If your security model depends on IAM policy, this platform does not implement it — and it is better you know that from this page than infer it from a policy that silently never applied.

Everything within your own project: launch, describe and terminate instances; create, attach and delete volumes and snapshots; read images; manage security groups and key pairs; read your own rated usage.

Nothing outside it: no creating projects, users, roles, flavors or images, no reading another project, no operator action of any kind.

They remain published because they are the specification — the shape the service will take if and when it is built, written against the AWS model and reviewed. Every one of them now carries a notice saying it is not deployed.

Treat them as a design document. Do not write code against them.