-
Notifications
You must be signed in to change notification settings - Fork 44
docs(authz): update available actions and default roles (#4683) #857
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
|
|
@@ -153,7 +153,7 @@ openchoreoApi: | |||||||
| OpenChoreo ships with several default cluster roles that are created automatically during installation. These roles are designed to cover common organizational personas and can be used as-is or as a starting point for customization. | ||||||||
|
|
||||||||
| :::warning | ||||||||
| The `backstage-catalog-reader`, `rca-agent` (SRE Agent), `observer-resource-reader`, and `workload-publisher` roles and their bindings are required for internal integrations. Do not remove them unless you know what you are doing. | ||||||||
| The `backstage-catalog-reader`, `finops-agent`, `rca-agent` (SRE Agent), `observer-resource-reader`, and `workload-publisher` roles and their bindings are required for internal integrations. Do not remove them unless you know what you are doing. | ||||||||
| ::: | ||||||||
|
|
||||||||
| ### admin | ||||||||
|
|
@@ -177,6 +177,8 @@ Access for engineers who build, deploy, and iterate on components. Includes full | |||||||
| - "clusterworkflowplane:view" | ||||||||
| - "clusterobservabilityplane:view" | ||||||||
| - "clustercomponenttype:view" | ||||||||
| - "clusterresourcetype:view" | ||||||||
| - "clusterprojecttype:view" | ||||||||
| - "clustertrait:view" | ||||||||
| - "clusterworkflow:view" | ||||||||
| - "namespace:view" | ||||||||
|
|
@@ -186,23 +188,43 @@ Access for engineers who build, deploy, and iterate on components. Includes full | |||||||
| - "workflowplane:view" | ||||||||
| - "observabilityplane:view" | ||||||||
| - "componenttype:view" | ||||||||
| - "resourcetype:view" | ||||||||
| - "projecttype:view" | ||||||||
| - "trait:view" | ||||||||
| - "workflow:view" | ||||||||
| - "project:view" | ||||||||
| - "component:view" | ||||||||
| - "component:create" | ||||||||
| - "component:update" | ||||||||
| - "component:delete" | ||||||||
| - "component:exec" | ||||||||
| - "component:connect" | ||||||||
| - "resource:connect" | ||||||||
| - "resource:read-secrets" | ||||||||
| - "componentrelease:view" | ||||||||
| - "componentrelease:create" | ||||||||
| - "releasebinding:view" | ||||||||
| - "releasebinding:create" | ||||||||
| - "releasebinding:update" | ||||||||
| - "resource:view" | ||||||||
| - "resource:create" | ||||||||
| - "resource:update" | ||||||||
| - "resource:delete" | ||||||||
| - "resource:connect" | ||||||||
| - "resource:read-secrets" | ||||||||
| - "resourcerelease:view" | ||||||||
| - "resourcerelease:create" | ||||||||
| - "projectrelease:view" | ||||||||
| - "projectrelease:create" | ||||||||
| - "resourcereleasebinding:view" | ||||||||
| - "resourcereleasebinding:create" | ||||||||
| - "resourcereleasebinding:update" | ||||||||
| - "resourcereleasebinding:delete" | ||||||||
| - "projectreleasebinding:view" | ||||||||
| - "projectreleasebinding:create" | ||||||||
| - "projectreleasebinding:update" | ||||||||
| - "projectreleasebinding:delete" | ||||||||
| - "workflowrun:view" | ||||||||
| - "workflowrun:create" | ||||||||
| - "workflowrun:delete" | ||||||||
| - "secretreference:view" | ||||||||
| - "secretreference:create" | ||||||||
| - "secretreference:update" | ||||||||
|
|
@@ -212,10 +234,15 @@ Access for engineers who build, deploy, and iterate on components. Includes full | |||||||
| - "workload:update" | ||||||||
| - "workload:delete" | ||||||||
| - "logs:view" | ||||||||
| - "events:view" | ||||||||
| - "metrics:view" | ||||||||
| - "traces:view" | ||||||||
| - "alerts:view" | ||||||||
| - "rcareport:view" | ||||||||
| - "finopsreport:view" | ||||||||
| - "finops:view" | ||||||||
| - "deliveryinsights:view" | ||||||||
| - "portal-assistant:invoke" | ||||||||
| ``` | ||||||||
|
|
||||||||
| ### sre | ||||||||
|
|
@@ -229,6 +256,8 @@ Access for operations engineers focused on reliability and incident response. In | |||||||
| - "clusterworkflowplane:view" | ||||||||
| - "clusterobservabilityplane:view" | ||||||||
| - "clustercomponenttype:view" | ||||||||
| - "clusterresourcetype:view" | ||||||||
| - "clusterprojecttype:view" | ||||||||
| - "clustertrait:view" | ||||||||
| - "clusterworkflow:view" | ||||||||
| - "namespace:view" | ||||||||
|
|
@@ -238,6 +267,8 @@ Access for operations engineers focused on reliability and incident response. In | |||||||
| - "workflowplane:view" | ||||||||
| - "observabilityplane:view" | ||||||||
| - "componenttype:view" | ||||||||
| - "resourcetype:view" | ||||||||
| - "projecttype:view" | ||||||||
| - "trait:view" | ||||||||
| - "workflow:view" | ||||||||
| - "project:view" | ||||||||
|
|
@@ -247,20 +278,33 @@ Access for operations engineers focused on reliability and incident response. In | |||||||
| - "releasebinding:view" | ||||||||
| - "releasebinding:create" | ||||||||
| - "releasebinding:update" | ||||||||
| - "resource:view" | ||||||||
| - "resourcerelease:view" | ||||||||
| - "projectrelease:view" | ||||||||
| - "resourcereleasebinding:view" | ||||||||
| - "resourcereleasebinding:update" | ||||||||
| - "projectreleasebinding:view" | ||||||||
| - "workflowrun:view" | ||||||||
| - "workflowrun:create" | ||||||||
| - "workflowrun:delete" | ||||||||
| - "workload:view" | ||||||||
| - "workload:create" | ||||||||
| - "secretreference:view" | ||||||||
| - "secretreference:update" | ||||||||
| - "logs:view" | ||||||||
| - "events:view" | ||||||||
| - "metrics:view" | ||||||||
| - "traces:view" | ||||||||
| - "alerts:view" | ||||||||
| - "incidents:view" | ||||||||
| - "incidents:update" | ||||||||
| - "rcareport:view" | ||||||||
| - "rcareport:update" | ||||||||
| - "finopsreport:view" | ||||||||
| - "finopsreport:update" | ||||||||
| - "finops:view" | ||||||||
| - "deliveryinsights:view" | ||||||||
| - "portal-assistant:invoke" | ||||||||
| ``` | ||||||||
|
|
||||||||
| ### platform-engineer | ||||||||
|
|
@@ -282,15 +326,34 @@ Access for engineers managing OpenChoreo platform infrastructure. Includes full | |||||||
| - "component:create" | ||||||||
| - "component:update" | ||||||||
| - "component:delete" | ||||||||
| - "component:exec" | ||||||||
| - "component:connect" | ||||||||
| - "resource:connect" | ||||||||
| - "resource:read-secrets" | ||||||||
| - "componentrelease:view" | ||||||||
| - "componentrelease:create" | ||||||||
| - "releasebinding:view" | ||||||||
| - "releasebinding:create" | ||||||||
| - "releasebinding:update" | ||||||||
| - "releasebinding:delete" | ||||||||
| - "resource:view" | ||||||||
| - "resource:create" | ||||||||
| - "resource:update" | ||||||||
| - "resource:delete" | ||||||||
| - "resource:connect" | ||||||||
| - "resource:read-secrets" | ||||||||
| - "resourcerelease:view" | ||||||||
| - "resourcerelease:create" | ||||||||
| - "resourcerelease:delete" | ||||||||
| - "projectrelease:view" | ||||||||
| - "projectrelease:create" | ||||||||
| - "projectrelease:delete" | ||||||||
| - "resourcereleasebinding:view" | ||||||||
| - "resourcereleasebinding:create" | ||||||||
| - "resourcereleasebinding:update" | ||||||||
| - "resourcereleasebinding:delete" | ||||||||
| - "projectreleasebinding:view" | ||||||||
| - "projectreleasebinding:create" | ||||||||
| - "projectreleasebinding:update" | ||||||||
| - "projectreleasebinding:delete" | ||||||||
| - "environment:view" | ||||||||
| - "environment:create" | ||||||||
| - "environment:update" | ||||||||
|
|
@@ -311,6 +374,14 @@ Access for engineers managing OpenChoreo platform infrastructure. Includes full | |||||||
| - "componenttype:create" | ||||||||
| - "componenttype:update" | ||||||||
| - "componenttype:delete" | ||||||||
| - "resourcetype:view" | ||||||||
| - "resourcetype:create" | ||||||||
| - "resourcetype:update" | ||||||||
| - "resourcetype:delete" | ||||||||
| - "projecttype:view" | ||||||||
| - "projecttype:create" | ||||||||
| - "projecttype:update" | ||||||||
| - "projecttype:delete" | ||||||||
| - "trait:view" | ||||||||
| - "trait:create" | ||||||||
| - "trait:update" | ||||||||
|
|
@@ -321,6 +392,7 @@ Access for engineers managing OpenChoreo platform infrastructure. Includes full | |||||||
| - "workflow:delete" | ||||||||
| - "workflowrun:view" | ||||||||
| - "workflowrun:create" | ||||||||
| - "workflowrun:delete" | ||||||||
| - "deploymentpipeline:view" | ||||||||
| - "deploymentpipeline:create" | ||||||||
| - "deploymentpipeline:update" | ||||||||
|
|
@@ -329,17 +401,28 @@ Access for engineers managing OpenChoreo platform infrastructure. Includes full | |||||||
| - "secretreference:create" | ||||||||
| - "secretreference:update" | ||||||||
| - "secretreference:delete" | ||||||||
| - "secret:view" | ||||||||
| - "secret:create" | ||||||||
| - "secret:update" | ||||||||
| - "secret:delete" | ||||||||
| - "workload:view" | ||||||||
| - "workload:create" | ||||||||
| - "workload:update" | ||||||||
| - "workload:delete" | ||||||||
| - "logs:view" | ||||||||
| - "platformlogs:view" | ||||||||
| - "events:view" | ||||||||
| - "metrics:view" | ||||||||
| - "traces:view" | ||||||||
| - "alerts:view" | ||||||||
| - "incidents:view" | ||||||||
| - "rcareport:view" | ||||||||
| - "rcareport:update" | ||||||||
| - "finopsreport:view" | ||||||||
| - "finopsreport:update" | ||||||||
| - "finops:view" | ||||||||
| - "deliveryinsights:view" | ||||||||
| - "portal-assistant:invoke" | ||||||||
| - "observabilityalertsnotificationchannel:view" | ||||||||
| - "observabilityalertsnotificationchannel:create" | ||||||||
| - "observabilityalertsnotificationchannel:update" | ||||||||
|
|
@@ -360,6 +443,14 @@ Access for engineers managing OpenChoreo platform infrastructure. Includes full | |||||||
| - "clustercomponenttype:create" | ||||||||
| - "clustercomponenttype:update" | ||||||||
| - "clustercomponenttype:delete" | ||||||||
| - "clusterresourcetype:view" | ||||||||
| - "clusterresourcetype:create" | ||||||||
| - "clusterresourcetype:update" | ||||||||
| - "clusterresourcetype:delete" | ||||||||
| - "clusterprojecttype:view" | ||||||||
| - "clusterprojecttype:create" | ||||||||
| - "clusterprojecttype:update" | ||||||||
| - "clusterprojecttype:delete" | ||||||||
| - "clustertrait:view" | ||||||||
| - "clustertrait:create" | ||||||||
| - "clustertrait:update" | ||||||||
|
|
@@ -381,6 +472,8 @@ Read-only access to cluster-scoped platform resources (data planes, workflow pla | |||||||
| - "clusterworkflowplane:view" | ||||||||
| - "clusterobservabilityplane:view" | ||||||||
| - "clustercomponenttype:view" | ||||||||
| - "clusterresourcetype:view" | ||||||||
| - "clusterprojecttype:view" | ||||||||
| - "clustertrait:view" | ||||||||
| - "clusterworkflow:view" | ||||||||
| ``` | ||||||||
|
|
@@ -399,6 +492,8 @@ Read-only access to namespace-scoped platform resources (namespaces, environment | |||||||
| - "workflowplane:view" | ||||||||
| - "observabilityplane:view" | ||||||||
| - "componenttype:view" | ||||||||
| - "resourcetype:view" | ||||||||
| - "projecttype:view" | ||||||||
| - "trait:view" | ||||||||
| - "workflow:view" | ||||||||
| - "secretreference:view" | ||||||||
|
|
@@ -413,6 +508,13 @@ Read-only access to catalog data. Used by the Backstage service account to read | |||||||
| actions: | ||||||||
| - "component:view" | ||||||||
| - "componenttype:view" | ||||||||
| - "resource:view" | ||||||||
| - "resourcerelease:view" | ||||||||
| - "projectrelease:view" | ||||||||
| - "resourcereleasebinding:view" | ||||||||
| - "projectreleasebinding:view" | ||||||||
| - "resourcetype:view" | ||||||||
| - "projecttype:view" | ||||||||
| - "namespace:view" | ||||||||
| - "project:view" | ||||||||
| - "dataplane:view" | ||||||||
|
|
@@ -427,8 +529,11 @@ Read-only access to catalog data. Used by the Backstage service account to read | |||||||
| - "clusterobservabilityplane:view" | ||||||||
| - "clusterdataplane:view" | ||||||||
| - "clustercomponenttype:view" | ||||||||
| - "clusterresourcetype:view" | ||||||||
| - "clusterprojecttype:view" | ||||||||
| - "clustertrait:view" | ||||||||
| - "clusterworkflow:view" | ||||||||
| - "observabilityalertsnotificationchannel:view" | ||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win Add The Helm bootstrap binds Proposed fix - "observabilityalertsnotificationchannel:view"
+ - "portal-assistant:invoke"📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||
| ``` | ||||||||
|
|
||||||||
| ### rca-agent | ||||||||
|
|
@@ -443,11 +548,13 @@ Observability and component read access. Used by the SRE Agent service account f | |||||||
| - "namespace:view" | ||||||||
| - "componentrelease:view" | ||||||||
| - "releasebinding:view" | ||||||||
| - "resourcereleasebinding:view" | ||||||||
| - "workflowrun:view" | ||||||||
| - "environment:view" | ||||||||
| - "workload:view" | ||||||||
| - "trait:view" | ||||||||
| - "logs:view" | ||||||||
| - "events:view" | ||||||||
| - "metrics:view" | ||||||||
| - "alerts:view" | ||||||||
| - "incidents:view" | ||||||||
|
|
@@ -464,6 +571,7 @@ Minimal access for publishing workloads from CI workflows. Used by the workload | |||||||
| actions: | ||||||||
| - "workload:create" | ||||||||
| - "workload:update" | ||||||||
| - "workload:view" | ||||||||
| - "workflowrun:view" | ||||||||
| - "workflowrun:update" | ||||||||
| ``` | ||||||||
|
|
@@ -481,6 +589,21 @@ Read-only access to core resources needed for the observability plane. Used by t | |||||||
| - "environment:view" | ||||||||
| ``` | ||||||||
|
|
||||||||
| ### finops-agent | ||||||||
|
|
||||||||
| Cost analysis and resource overprovisioning assessment. Used by the FinOps agent service account. | ||||||||
|
|
||||||||
| ```yaml | ||||||||
| - name: finops-agent | ||||||||
| actions: | ||||||||
| - "component:view" | ||||||||
| - "project:view" | ||||||||
| - "namespace:view" | ||||||||
| - "environment:view" | ||||||||
| - "metrics:view" | ||||||||
| - "alerts:view" | ||||||||
| ``` | ||||||||
|
|
||||||||
| ## Default Role Bindings | ||||||||
|
|
||||||||
| The following default role bindings are created to connect the default roles to their intended subjects. The `admins`, `developers`, `platform-engineers`, and `sres` groups are also pre-created in the default identity provider(ThunderID) with a sample user in each, giving you a quick way to experience the platform with different permission levels. | ||||||||
|
|
@@ -493,6 +616,7 @@ The following default role bindings are created to connect the default roles to | |||||||
| | `sre-binding` | `sre` | `groups:sres` | allow | | ||||||||
| | `backstage-catalog-reader-binding` | `backstage-catalog-reader` | `sub:openchoreo-backstage-client` | allow | | ||||||||
| | `rca-agent-binding` | `rca-agent` | `sub:openchoreo-rca-agent` | allow | | ||||||||
| | `finops-agent-binding` | `finops-agent` | `sub:openchoreo-finops-agent` | allow | | ||||||||
| | `workload-publisher-binding` | `workload-publisher` | `sub:openchoreo-workload-publisher-client` | allow | | ||||||||
| | `observer-resource-reader-binding` | `observer-resource-reader` | `sub:openchoreo-observer-resource-reader-client` | allow | | ||||||||
| | `mcp-tryout-client-binding` | `admin` | `sub:service_mcp_client` | allow | | ||||||||
|
|
||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔒 Security & Privacy | 🛡️ Analyzed with Security Review | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: openchoreo/openchoreo.github.io
Length of output: 7813
Security Misconfiguration
CWE: CWE-16
Document the developer role’s
Resourcepermissions. The role includesresource:create,resource:update,resource:delete,resource:connect, andresource:read-secrets, but the description does not mention them. Add these permissions to document the role’s mutation, connection, and secret-read capabilities.🤖 Prompt for AI Agents