Skip to content

Organisation roles and IAM policies

Thalassa Cloud provides two binding scopes for access control. Both use the same built-in policy catalogue — see Default policies.

Organisation roles vs IAM policies

Organisation role (supported)IAM policy (recommended)
StatusExisting; continues to workPrimary direction for new access control
ScopeEntire organisationSingle project (and descendants for replicated policies)
API path/v1/iam/roles/v1/projects/iam/policies
Project headerNot requiredRequired (X-Project-Identity)
Policy catalogueSame policies as in the default catalogueIdentical permission rules
NamingPolicy name + slugPolicy name + slug (same values)
CustomisationCreate additional custom rolesCreate additional custom policies
ConditionalsNot supportedIP and time-of-day conditions (stored; runtime enforcement planned)
InheritanceNoYes — policies can replicate to child projects

During the transition, a principal may hold both organisation role bindings and IAM policy bindings. Effective permissions for a request are the union of everything that applies to the active principal and project context.

When to use which:

  • Organisation roles — org owners, finance, global administrators. See also RBAC roles for console-oriented role management.
  • IAM policies — project admins, environment-specific teams, delegated access with optional conditions and inheritance.

Migrating to IAM policies

A practical path for teams moving to the new model:

  1. Enable projects on your organisation (projects feature gate).
  2. Create a project per team, environment, or workload boundary.
  3. Bind principals to IAM policies inside each project instead of (or in addition to) organisation roles.
  4. Use replicateToChildren on parent-project policies when child projects should inherit the same access.
  5. Retain organisation roles where you still need org-wide access that is not tied to a project — for example billing (org:financial) or org administration (org:admin).

There is no required cut-over date. Organisation role bindings are not revoked automatically when you adopt projects.

Assigning policies

IAM policies (recommended) — bind users, service accounts, or OIDC clients to policies within a project via the console or /v1/projects/iam/policies. When creating a project, the creator is automatically assigned the admin:all policy (admin slug).

Organisation roles (legacy, still supported) — bind principals via /v1/iam/roles or the organisation IAM settings in the console. A principal may hold multiple roles and policies; permissions are combined.

Related documentation