Cloud IAM and RBAC that give every team exactly the access it needs

edgeContinuum ships a hierarchical, scope aware permission model: users and groups, roles you compose yourself out of more than 200 individual permissions, granted across a whole organization or inside a single project. Fine grained enough that an operations team can restart a machine without being able to delete it.

More than 200 permissions, not three fixed rolesGrant to a user or to a groupScope it to an organization or one projectCovers managed services, not only raw infrastructure
Organization: acme-telecom
Userspeople you invite
Groupsgrant once, for many
Projectswhere work lives
edgeContinuum
Effective accessrole plus scope, resolved
User or group, plus role, plus scope

RBAC is where private clouds quietly break down

Most private cloud platforms hand you a short list of built in roles and a set of policy files to edit by hand. The result is familiar: the network on call engineer who needs to reboot a machine at 3am ends up with an account that can also delete it, a client team shares one administrator login because there is no way to give three people three different levels of access, and the platform team becomes the queue in front of every permission change. Nobody chose that, it is just what a coarse model leaves you with. edgeContinuum treats authorization as a product surface: every action the platform exposes is its own permission, roles are composed from those permissions, and each grant carries the scope it applies to.

What changes when IAM gets a real model

Four things move. None of them requires a new identity provider, and none of them asks your teams to learn a policy language.

Three fixed roles: admin, member, viewer
more than 200 permissions you compose into your own rolesOne permission per action the platform exposes, across virtual machines, Kubernetes, PostgreSQL, networks, firewalls, routers, SSH keys, images, regions, quotas and the organization itself. You name the role and pick what goes in it.
Policy files edited per service
One catalog, browsable in the consoleEvery permission is registered by the service that owns it and listed in one place, searchable and filterable by scope, so granting access is a decision instead of an archaeology exercise.
One grant per person, per project
Groups, granted oncePut people in a group, give the group a role, and every member inherits it. Someone joins the on call rotation and gets the right access by being added to the group.
Permissions that only cover infrastructure
The same model over managed servicesScaling a node pool, reading database metrics and downloading a cluster kubeconfig are permissions in the same catalog as creating a VM. The managed layer is not a hole in your access control.
Scope

One grant for the whole organization, or one project only

Every grant answers two questions: what can this person do, and where. A role given at organization scope applies across that organization, and for the permissions that carry it, straight down into every project inside it. A role given at project scope stops at that project's edge. Same role, two blast radii, and the console tells you which scopes a permission supports before you use it.

That is what makes delegation safe. A client administrator runs their own organization, invites their own people and creates their own projects, while the platform permissions that would let them touch regions, infrastructure or the service catalog stay with you.

If you run OpenStack, the natural question is how this relates to Keystone. Keystone models identity and each OpenStack service carries its own policy, which is why expressing "restart it but never delete it" usually means editing policy files by hand. edgeContinuum keeps Keystone exactly where it is and runs its own users, groups, roles and permission catalog for the services it exposes, so the two models are not required to mirror each other. The guide to users, projects, roles and quotas in OpenStack covers what Keystone models natively and where that stops.

Organization scopeProject scopeInherited into projects
Two ways to grant the same role
At the organizationapplies across its projects
At one projectstops at that project
Effective accesswhat the user can actually do
User or group + role + scope = effective access
Users and groups

Grant it to a person, or grant it once to a group

Permissions can go directly to a user when that is genuinely a one off. For everything that describes a team, use a group: put the people in it, give the group a role at the scope you want, and membership becomes the only thing you maintain. Groups take grants at organization scope and at project scope, exactly like users do.

A service provider ends up with something like this: NOC engineers sit in one operations group holding an organization wide operational role, so they can act on anything in the estate without being able to destroy it. A client's development team gets a role on its own project and sees nothing else. When someone leaves the rotation you remove them from the group, not from fourteen projects.

Direct user grantsGroup grantsMembership is the only edit
GroupMembersScopeRole
noc-operations11Organizationnoc-operator
acme-developers6Projectapp-developer
acme-admins2Organizationorg-admin
data-platform4Projectdb-operator
+ Create groupAssign role

What fine grained actually looks like: a role you build

Here is an operations role composed in the console, the kind a NOC runs on. It can look at anything, restart a machine, open its console, read its logs and scale a node pool. It cannot delete a virtual machine, resize one, download a cluster kubeconfig, change a firewall rule or hand out permissions to anyone else. Every line below is a real permission identifier from the platform's catalog, which is what you see and search when you compose the role.

Example role: noc-operator, granted at organization scope
Virtual machines
mvms_get
mvms_list
mvms_power_update
mvms_console_get
mvms_logs_get
mvms_resize_update
mvms_delete
Kubernetes
mks_get
mks_metrics_get
mks_nodepool_scale_update
mks_kubeconfig_get
mks_delete
PostgreSQL
postgresql_instance_get
postgresql_instance_metrics_get
postgresql_instance_delete
Networking and platform
network_get
firewall_get
firewall_rules_update
resourcemanager_organization_user_role_grant

Roles are authored per organization rather than shipped as a fixed ladder, so the same platform carries an org-admin for a client's own administrator, a db-operator that only touches databases, and a read only role for whoever needs to look without touching. Permissions also imply one another where it makes sense: granting a broad read on Kubernetes grants the narrower reads underneath it, and the console shows how many other permissions a grant carries with it.

Coverage

One IAM model over everything the platform runs

This is the difference between an access model bolted onto infrastructure and one that belongs to a managed cloud. The catalog covers the machines and the networks, and equally the managed Kubernetes clusters, the managed PostgreSQL instances, the regions and zones your infrastructure is shaped into, the quota profiles applied to each tenant and the usage figures per organization.

Which means the delegation you design holds everywhere. There is no service where the model quietly falls back to all or nothing.

Compute

Virtual machines and SSH keys, plus images and flavors. Create, power, console, logs, metrics, snapshots, resize, import and delete are each their own permission.

Networking

Networks, firewalls and routers, down to the level where changing a rule or a route is its own permission, separate from reading them.

Managed services

Kubernetes, including control plane upgrades and resizes, node pool scaling and the kubeconfig itself, and PostgreSQL down to its connection details.

Platform and tenancy

Organizations, projects, groups, role assignment and quota profiles, plus infrastructures, regions and zones, and the usage figures per tenant.

Delegation, from the platform team down to a developer

The model exists so that responsibility can move outward without control moving with it. Four typical positions, each one a role composed from the catalog and granted at the scope its job needs.

Platform administrator

Yours. Connects infrastructures, defines regions and zones, curates the catalog, creates organizations and sets the quota profiles each one gets. The only role that reaches the platform itself.

Organization administrator

Your client, or a business unit lead. Invites users, builds groups, creates projects and assigns roles inside their own organization, against the quota you granted them. Sees nothing outside it.

Operations

The role above. Organization wide reach for operational work: restart, console, logs, metrics, node pool scaling. No deletes, no credentials, no permission changes.

Developer

Scoped to one project. Creates and manages the clusters, databases and machines that project needs, inside its quota, and cannot see or touch any other project in the organization.

What this is, and what it is not

Not a replacement for your identity providerThis governs what people can do with cloud resources on the platform. Your corporate directory keeps doing its job.
Permissions are not derived from a directoryUsers can be imported from LDAP; roles, groups and scopes are assigned in the platform, per organization. That is deliberate: permissive mapping rules are how people over grant.
No preset role ladder to grow out ofRoles are composed per organization from the catalog. There is more to decide on day one, and nothing to unpick on day four hundred.
Not a layer you have to code againstRoles, groups and grants are managed in the console and through the same API and Terraform provider as every other platform object.

See it against your own org chart

Bring the teams and clients you actually have, and we will map them onto organizations, projects, groups and roles on a call. Or start a free trial and build a role yourself.

Frequently asked questions

How do I organize customers and teams?
Each customer, business unit or team is an organization. An organization holds its own users, its own groups and as many projects as it needs, with a quota profile that caps what it can consume in total. Projects are where resources actually live, so a customer with three environments has three projects inside one organization. Isolation is structural: nothing crosses an organization boundary unless you connect it.
Can different people have different capabilities?
Yes, at the level of individual actions rather than broad tiers. The platform registers more than 200 permissions, one per action it exposes, and a role is a set of them that you compose and name. Two people in the same project can hold completely different roles, for example one who can create and delete clusters and one who can only read them and scale a node pool.
Can permissions apply to an entire customer organization?
Yes. A role granted at organization scope applies across that organization, and the permissions that support project level use apply inside every project it contains. That is how an operations team covers a whole estate with one grant, and how a customer administrator manages everything inside their own organization without any reach outside it.
Can access be restricted to a single project?
Yes. The same role granted at project scope stops at that project. A contractor, an application team or a customer's own developers can be given exactly one project and see nothing else in the organization. The console shows which scopes each permission supports, so you know before granting whether it can be narrowed that way.
Can I manage permissions using groups?
Yes, groups are first class. Create a group inside an organization, add users to it, and grant it a role at organization or project scope. Every member inherits it, and membership becomes the only thing you maintain when people join or leave a team. Direct user grants remain available for genuine one offs.
Can an operations team run services without being able to destroy them?
Yes, and it is one of the main reasons the model is this granular. Operational actions are separate permissions from destructive and administrative ones: powering a virtual machine off and on, opening its console, reading its logs and metrics, and scaling a Kubernetes node pool are each grantable without granting delete, resize, kubeconfig download or the ability to assign roles to anyone.
How does this relate to the roles in my underlying infrastructure?
It sits above them. edgeContinuum has its own users, groups, roles, scopes and permission catalog, and its own model covers the managed services it provides as well as the infrastructure resources underneath. Your infrastructure keeps whatever identity system it already has for your operators, and the two are not required to mirror each other. For the OpenStack specific picture, the guide on users, projects, roles and quotas in OpenStack covers what Keystone models and where it stops.
Can I manage roles and grants through the API or Terraform?
Yes. Organizations, projects, groups, roles and grants are platform objects like any other, reachable from the console, the API and the Terraform provider, so access control can live in the same repository as the rest of your infrastructure code.
Does edgeContinuum integrate with LDAP or single sign on?
Users can be imported from LDAP. What is imported is the user list: permissions are not derived from the directory, there is no group or permission synchronisation, and no SAML or OIDC federation. Roles, groups and quotas are assigned in the platform, per organization.