Skip to main content
This is the complete set of IAM actions — 216 actions across 39 services. Use it to write policy statements; see Permissions model for how matching works.
An action this page does not list is rejected when the policy is saved, not silently ignored — unknown action category "argocd", or unknown action "supervisor:Manage". That guard exists because the failure it replaced was a policy that saved cleanly and then authorised nothing, with no error anywhere. So a stale copy of this page does not merely mislead: it produces policies that will not save.

How to read this page

Every row is an action and the KRN template the request is checked against. Braces mark values filled in from the request:
{?supervisor} resolves to * when the query parameter is absent — so those routes are checked against krn:celum:supervisor:*:.... Any policy meant to restrict them must be scoped by the other segments, not by the supervisor.
Where a row lists more than one KRN, different routes share the action at different scopes. A policy needs to cover whichever one the route you care about uses.

Wildcards

Six actions no route carries

Most actions are reached by calling a route. Six are not, and they are listed here because a policy naming them is legal and is validated against this same set — Celum rejects an unknown action when a policy is saved, so an action it ships and this page omits would look invented. cluster:ListDeletionRequests and iam:GetMyPermissions are shipped rather than enforced: they exist so that a policy granting them saves cleanly. Granting them changes nothing on its own.

Not on this page

A handful of routes bypass IAM entirely and cannot be granted or denied by policy: the health check, the /auth/* endpoints, and everything under /api/iam/me/ — your own permissions, groups, and API tokens. The MCP endpoint at /mcp is authorized per tool instead. Routes that appear in neither place are unmapped, and unmapped routes are denied outright when IAM_ENABLED=true.

Actions by service

ai

The assistant and its stored conversations.

app

Platform application definitions — the catalog rendered onto clusters.

audit-log

capi

Cluster API provider installation and status, including ClusterClasses and addons.

ceph

Rook-Ceph discovery, status, and operator install.

certs

cert-manager, its issuers, and the certificates they hold.

cilium

The CNI itself — install, configuration, BGP, and egress HA.
cilium:Install also covers installing the FRR-K8s BGP engine, and cilium:Apply covers FRR configuration. There is no separate frrk8s:* service. Projects do have their own service — see project below; they were gated by cilium:* until 2026-08-17 and no longer are.

cloud-init-template

Reusable cloud-init documents for VM provisioning.

cluster

Tenant cluster lifecycle and reads. Note the credential actions — there are four in total, the fourth being vcluster:GetKubeconfig.
cluster:GetKubeconfig, cluster:GetTalosconfig, and cluster:GetSshPassword hand out working credentials for the tenant cluster. They are deliberately excluded from K8sGateOperator and K8sGateViewer — grant them through K8sGateSensitiveRead to named people.

cluster-template

The blueprints cluster creation renders from.

database

discovery

Read-only lookups that populate form dropdowns. Denying these leaves creation forms empty rather than returning an obvious error.

dns

external-dns — the publisher that writes route hostnames into a real DNS zone.

dnsprovider

DNS servers registered once for the platform (Settings → Domains & DNS), whose keys stay in the secret store.

domain

DNS domains available for ingress and gateway publication.

gateway

Gateway API objects, listeners, TLS secrets, and the Envoy Gateway controller.

helm-release

Helm releases inside a tenant cluster.

iam

Policies, groups, and group membership. Granting any of these is granting the ability to grant.
iam:AttachGroupPolicy plus iam:AddGroupMember is effectively full access: the holder can attach K8sGateAdmin to a group and add themselves to it.

image

The Image Library’s golden images.

kubeconfig

Supervisor kubeconfigs stored in the database.
kubeconfig:Download returns admin credentials for a supervisor, not a tenant cluster. Only K8sGateAdmin carries it among the built-in policies.

license

Reading the licence status needs no action.

migration

VM migration from vSphere: the Forklift install, its sources and its plans.

monitoring

The observability stack — Prometheus, Loki, Alloy, ClickHouse, and the flow pipeline all share these two actions.

oidc

platform

project

Projects — the platform’s tenancy unit. A namespace plus its slice of pod, LoadBalancer, and egress address space.
Three of these name the individual project (…:project:{project}), which is what lets a policy say “project A but not project B”. Until 2026-08-17 these routes were gated by cilium:Apply and no narrower grant existed; that is no longer true, and a policy written against the old shape grants nothing here.

registry

Container registries and per-supervisor image buckets.

secrets

The secret store integration — Vault and External Secrets Operator.

security

Flow telemetry, topology, forensics, and network policy — read and write.
security:Read carries a project-qualified KRN alongside the supervisor-wide one, so a tenant can be granted flow visibility inside their own project and nowhere else. These routes moved off supervisor:GetSummary / supervisor:Manage / supervisor:Onboard on 2026-08-26; a policy still naming those for security reads grants nothing.

settings

Global platform settings — a single resource, not per-supervisor.

site

Physical locations that supervisors and registries are tagged with.

storage

Storage drivers, storage classes, disks, and Rook.
storage:InstallDriver also covers wiping disks during backend preparation, and it installs the CSI snapshot controller as a storage prerequisite. It is not a read-adjacent permission.

supervisor

The supervisor itself — summary, refresh, bootstrap, onboarding, power profile.

sysprep-template

Windows sysprep documents for VM provisioning.

vcluster

vcluster:GetKubeconfig is a credential action — it hands out a working kubeconfig for a hosted control plane. Like the three cluster:Get* credential actions it is excluded from K8sGateOperator and K8sGateViewer and lives in K8sGateSensitiveRead.

virt

KubeVirt and CDI.
virt:GetStatus still reads the snapshot controller’s status, but it no longer installs it: the controller arrives with a storage backend under storage:InstallDriver. A policy that granted virt:Install in order to get volume snapshots onto a supervisor no longer achieves that.

vcenter

vCenters registered once for the platform (Settings → vCenters), whose credentials stay in the secret store.

vm

Virtual machine lifecycle and console access.
vm:VncProxy grants interactive console access to a running VM — keyboard and screen, with no further authentication. It is included in K8sGateOperator but not in K8sGateViewer.

vm-cloudinit-template

Built-in policies

These are reconciled at startup and cannot be edited in the UI. To vary them, write a custom policy and attach both.

Permissions model

How actions and KRNs are matched.

Authentication & IAM

Groups, OIDC claim mapping, and the first admin.