Policies
What this screen is for
A policy is where permissions are chosen and, crucially, where they are limited. A policy is made of statements; each statement lists permissions and can restrict them to specific clusters (resources) and environments (conditions).
This is the only place scoping exists. A permission selected without scoping applies everywhere β every cluster, every environment.
Before you start
| To do this | You need |
|---|---|
| See the tab | platform-settings.permission-policy.read |
| Create a policy | platform-settings.permission-policy.create |
| Edit a policy | platform-settings.permission-policy.update |
| Delete a policy | platform-settings.permission-policy.delete |
Register your clusters and environments first, in Infrastructure. A statement cannot be scoped to something that does not exist yet, and this is the usual reason a first-day policy ends up unscoped.
Opening it
- Settings βΊ People & Access
- Select the Policies tab.
The interface
πΈ Screenshot Placeholder: The policy editor with one statement expanded. Mark: (1) the permission tree, (2) the cluster selector, (3) the environment selector, (4) the statement summary line, (5) Save.
| # | Control | What it does | When youβd use it |
|---|---|---|---|
| 1 | Permission tree | Selects permissions, grouped by plugin and resource | Every policy |
| 2 | Cluster selector | Limits the statement to specific clusters | Any policy touching infrastructure |
| 3 | Environment selector | Limits it to dev, staging, production β one or several |
Any policy touching deployments |
| 4 | Statement summary | Reads back what the statement covers, e.g. β2 cluster(s)β | Confirming the scope before saving |
| 5 | Save | Writes the policy | Finishing |
The summary line is the fastest check you have. If it does not mention clusters or environments, the statement is unscoped.
Walkthroughs
Create a scoped policy
Requires platform-settings.permission-policy.create.
- Settings βΊ People & Access βΊ Policies, click Add Policy.
- Name it after what it allows, e.g.
Dev Deploy, not after who gets it. - In the statement, select the permissions from the tree.
- Select the clusters the statement applies to.
- Select the environments β one or several.
- Read the summary line and confirm it names both.
- Save.
Widen or narrow an existing policy
Requires platform-settings.permission-policy.update.
- Open the policy, adjust permissions or scope, and save.
- The change reaches every role carrying that policy, and therefore every user holding those roles. Check which roles use it before editing.
Delete a policy
Requires platform-settings.permission-policy.delete.
Roles referencing it lose what it granted. Check the roles first β a role left with no policies grants nothing and gives no warning that it used to.
Scenario
Letting the on-call team restart production workloads without giving them production deployments.
The distinction is narrow, which is exactly the kind of case policies exist for.
- Create a policy named
Prod Oncall. - In the statement, select only the specific operational permissions on-call needs. Do not select the deployment permissions.
- Scope resources to the production cluster only.
- Set the environment condition to
productiononly. - Confirm the summary names one cluster and one environment.
- Save, then attach it to an
On-Callrole β on its own, not alongside a broader deployment policy, or the broader one wins. - Verify in Access Explorer that a production deployment permission still resolves as denied for an on-call user.
Step 7 matters because permissions are additive: a user holding two roles gets the union. Narrowing one policy achieves nothing if another grants the same thing.
When it doesnβt work
| Symptom | Cause | How to check | Fix |
|---|---|---|---|
| Policy grants more than intended | The statement has no cluster or environment scope | Read the statement summary line | Add the cluster resource and the environment condition |
| Cluster or environment missing from the selector | It is not registered yet | Infrastructure | Register it, then edit the policy |
| Narrowing a policy changed nothing | Another role the user holds grants the same permission | Access Explorer for that user | Permissions are additive β audit every role they hold |
An env-by-branch permission behaves oddly across environments |
Flat names expand to per-environment variants at check time | See the platform permission model | Scope explicitly rather than relying on the flat name |
| Policy edited, user sees no change | Session permission cache | β | Ask them to reload |
Next
- How permissions work β the model in full
- Roles β attach this policy to a role