Skip to content

Default IAM policies

Thalassa Cloud ships a set of built-in policies for access control. Each policy defines which API resources a principal may access and which actions they may perform. The same policies are available as organisation roles and as system IAM policies inside projects.

Policy naming

Built-in policies follow a <service>:<Access> naming pattern:

PatternMeaningExamples
<service>:ReadAccessRead and list onlyiam:ReadAccess, dns:ReadAccess, kms:ReadAccess
<service>:FullAccessFull CRUD on that service’s resourcesdns:FullAccess, secrets:FullAccess, kms:FullAccess
<service>:<Action>A single cryptographic or operational actionkms:Encrypt, kms:Decrypt, kms:Rotate

The service prefix identifies the product area (iam, k8s, iaas, dns, kms, secrets, dbaas, etc.). The Access suffix describes the permission level or action.

Older built-in policies may still use legacy names (for example k8s-admin, iaas-devops, or FullAdminAccess instead of FullAccess). These are being aligned to the <service>:<Access> convention over time. The slug (used in API paths and bindings) remains a stable kebab-case identifier regardless of display-name changes — for example iam:ReadAccess has slug iam-read-access.

Custom policies you create must not use a system: prefix. Use your own descriptive names.

How defaults work

  • Default policies are platform-managed. They are marked read-only and cannot be renamed, deleted, or have their rules changed.
  • The platform keeps defaults in sync with the templates defined in the product. New policies may be added over time; existing rules may be updated to match new services.
  • The organisation owner is automatically bound to the admin:all policy (admin slug) as an organisation role.
  • You can create custom IAM policies and custom organisation roles alongside the defaults.

Permission types

Policies grant one or more of the following actions on each resource type:

PermissionMeaning
createCreate new resources
readRead a single resource
listList or search resources
updateModify existing resources
deleteDelete or disable resources
*All standard actions on the matched resources
push / pullPush to or pull from a container registry
encrypt / decryptEncrypt or decrypt data with a KMS key
sign / verifySign or verify data with a KMS key
hmac / verify-hmacGenerate or verify an HMAC with a KMS key
rotate / exportRotate or export a KMS key
getSecretValue / putSecretValueRead or write secret payload data

When a rule lists specific resource types with an empty resource-identity list, it applies to all instances of those types in scope.

Global policies

These policies span the entire platform API surface.

Policy nameSlugPermissionsDescription
admin:alladminAll actions on all resources (*)Full administrative access. Assigned automatically to the organisation owner.
user:readuserread, list on all resourcesRead-only access across the organisation or project.

Organisation management

Policy nameSlugPermissionsResources
org:adminorg-adminFull CRUDOrganisation settings, members, invites, roles, quotas, teams, notifications, billing (invoices, credits, budgets, savings plans, contracts), addresses, SSH keys, service accounts, federated identities, OIDC clients, audit logs, personal access tokens, access credentials, cloud-init templates, projects
org:auditororg-auditorread, listSame organisation resources as org:admin (excluding write-only financial actions such as mandate management)
org:financialorg-financialAll actions (*)Organisation profile, quotas, notifications, addresses, invoices, contracts, mandates, credits, budgets, savings plans

Identity and access management

Policy nameSlugPermissionsResources
iam:ReadAccessiam-read-accessread, listOrganisation roles, role permissions, role bindings, service accounts, service-account credentials, federated identities, identity providers, audit logs, projects
iam:FullAccessiam-full-admin-accessFull CRUDSame as iam:ReadAccess, plus organisation cloud-init templates

The iam:FullAccess policy is currently stored as iam:FullAdminAccess in the platform; the slug iam-full-admin-access is unchanged.

Kubernetes

Policy nameSlugPermissionsResources
k8s:admink8s-adminFull CRUDClusters, node pools, machines, version streams, versions, API proxy, kubeconfig download & sessions, cluster roles, bindings, and permissions
kubernetes:AdminClusterAccesskubernetes-admin-cluster-accessFull CRUD on clusters, node pools, machines, API proxy; read/list on cluster roles; kubeconfig downloadOperational cluster management without full role-administration write access
kubernetes:AllowKubeConfigDownloadkubernetes-kubeconfig-downloadread, list, create on kubeconfig download & API proxy; read, list on kubeconfig sessionsDownload cluster credentials only
k8s:developerk8s-developercreate, read, update, list (no delete)Clusters, node pools, machines
k8s:auditork8s-auditorread, listAll Kubernetes resources
k8s:ReadAccessk8s-read-accessread, listAll Kubernetes resources
k8s:FullAccessk8s-full-admin-accessFull CRUDAll Kubernetes resources

k8s:FullAccess is currently stored as k8s:FullAdminAccess; slug k8s-full-admin-access is unchanged. Legacy names such as k8s:admin will be aligned to the <service>:<Access> pattern over time.

Infrastructure (IaaS)

Policy nameSlugPermissionsResources
iaas:adminiaas-adminFull CRUD; registry includes push/pullCloud regions, VPCs, subnets, routes, peering, VPN/NAT gateways, load balancers, VMs, volumes, snapshots, security groups, machine images/types, TFS, and container registry
iaas:devopsiaas-devopsFull CRUD on compute & networking; registry includes push/pullVPCs, endpoints, firewall rules, subnets, NAT gateways, reserved IPs, load balancers, VMs, volumes, security groups, snapshots, container registry
iaas:developeriaas-developercreate, read, update, list (no delete)Virtual machines and persistent volumes
iaas:auditoriaas-auditorread, list; registry pullFull IaaS resource set and container registry
iaas:ReadAccessiaas-read-accessread, listFull IaaS resource set (excluding TFS and container registry)
iaas:FullAccessiaas-full-admin-accessFull CRUDFull IaaS resource set (excluding TFS and container registry)

iaas:FullAccess is currently stored as iaas:FullAdminAccess; slug iaas-full-admin-access is unchanged.

Terraform state (TFS)

Policy nameSlugPermissionsResources
tfs:ReadAccesstfs-read-accessread, listTerraform state backends
tfs:FullAccesstfs-full-admin-accessFull CRUDTerraform state backends

tfs:FullAccess is currently stored as tfs:FullAdminAccess; slug tfs-full-admin-access is unchanged.

Container registry

Policy nameSlugPermissionsResources
registry:adminregistry-adminFull CRUD + push/pullRegistries, namespaces, namespace configuration, repositories
registry:developerregistry-developerread, list, push, pullNamespaces and repositories
registry:viewerregistry-viewerread, list, pullRegistries, namespaces, configuration, repositories
registry:ReadAccessregistry-read-accessread, list, pullRegistries, namespaces, configuration, repositories
registry:FullAccessregistry-full-admin-accessFull CRUD + push/pullRegistries, namespaces, configuration, repositories

registry:FullAccess is currently stored as registry:FullAdminAccess; slug registry-full-admin-access is unchanged.

Database as a service (DBaaS)

Policy nameSlugPermissionsResources
dbaas:admindbaas-adminFull CRUDDB clusters, backup schedules, backups, instance types
dbaas:devopsdbaas-devopsFull CRUDDB clusters, backup schedules, backups
dbaas:auditordbaas-auditorread, listDB clusters, backup schedules, backups, instance types
dbaas:ReadAccessdbaas-read-accessread, listDB object stores, clusters, backups, instance types; read-only VPCs and subnets
dbaas:FullAccessdbaas-full-admin-accessFull CRUD on DB resources; read/list on VPCs and subnetsDB object stores, clusters, backups, instance types

dbaas:FullAccess is currently stored as dbaas:FullAdminAccess; slug dbaas-full-admin-access is unchanged.

Object storage

Policy nameSlugPermissionsResources
storage:adminstorage-adminFull CRUDObject storage buckets
storage:developerstorage-developercreate, read, update, listObject storage buckets
storage:auditorstorage-auditorread, listObject storage buckets
objectstorage:ReadAccessobjectstorage-read-accessread, listObject storage buckets
objectstorage:FullAccessobjectstorage-full-admin-accessFull CRUDObject storage buckets

objectstorage:FullAccess is currently stored as objectstorage:FullAdminAccess; slug objectstorage-full-admin-access is unchanged.

Key management (KMS)

Policy nameSlugPermissionsResources
kms:ReadAccesskms-read-accessread, listKMS keys
kms:FullAccesskms-full-admin-accessFull CRUDKMS keys
kms:Encryptkms-encryptencryptKMS keys
kms:Decryptkms-decryptdecryptKMS keys
kms:Signkms-signsignKMS keys
kms:Verifykms-verifyverifyKMS keys
kms:HMACkms-hmachmacKMS keys
kms:VerifyHMACkms-verify-hmacverify-hmacKMS keys
kms:Rotatekms-rotaterotateKMS keys
kms:Exportkms-exportexportKMS keys

KMS roles require the kms feature gate on your organisation.

Secrets Manager

Policy nameSlugPermissionsResources
secrets:ReadAccesssecrets-read-accessread, listSecret metadata and versions
secrets:FullAccesssecrets-full-accessFull CRUD + getSecretValue, putSecretValueSecrets at allowed paths

DNS

Policy nameSlugPermissionsResources
dns:ReadAccessdns-read-accessread, listDNS zones and records
dns:FullAccessdns-full-accessFull CRUDDNS zones and records

Observability (Prometheus)

Prometheus policies use a <service>:<component>:<access> variant because the service exposes multiple APIs.

Policy nameSlugPermissionsResources
prometheus:full-accessprometheus-full-accessFull CRUDRemote write, query, Alertmanager, ruler
prometheus:read-onlyprometheus-read-onlyread, listRemote write, query, Alertmanager, ruler
prometheus:remote-write:full-accessprometheus-remote-write-full-accessFull CRUDRemote write API
prometheus:query:full-accessprometheus-query-full-accessFull CRUDQuery API
prometheus:query:read-onlyprometheus-query-read-onlyread, listQuery API
prometheus:alertmanager:full-accessprometheus-alertmanager-full-accessFull CRUDAlertmanager
prometheus:alertmanager:read-onlyprometheus-alertmanager-read-onlyread, listAlertmanager
prometheus:ruler:full-accessprometheus-ruler-full-accessFull CRUDRecording and alerting rules
prometheus:ruler:read-onlyprometheus-ruler-read-onlyread, listRecording and alerting rules

Related documentation