Roles in the Platform - Rafay Product Documentation

Base Roles

Roles in the platform are used to enforce governance and access controls to ensure that there are guardrails in terms of what a user can and cannot do. Users with the role of organization administrator are responsible for role assignments and user management. The platform provides several roles that can be used to control what users can do in the platform. The roles defined are based on Kubernetes RBAC and role bindings.

Dynamic Role Calculation

In a typical organization, as users move around organizationally, their roles and responsibilities can change dramatically. It is therefore practical and sensible to centralize the management of user's roles in a central system. The flowchart below describes how roles are “dynamically calculated” and assigned to users. Note that RBAC assignments are ephemeral and valid only for the session. When the user signs in the next time, the role is dynamically calculated based on the user’s current identity and group membership.

Local Group/Role

Assertion from IDP

Local Group Override

Local User

Group/Role

Calculate RBAC

IDP User

IDP Group

IDP Group + Group Override

Organization Types and Role Model Overview

A role-based access model is aligned with organization structure and platform responsibilities. Roles define access at two levels:

Roles

These roles are primarily used for Cloud Native Automation (CNA) and infrastructure management.

Role Controller Access ZTKA Access (Cluster Resources)
Organization Admin A privileged, super user role with access to everything in the org. ClusterRoleBinding
Resources: All
Verbs: All
Org Admin Read Only Read-only version of Org Admin. ClusterRoleBinding
Resources: All
Verbs: get, list, watch
Cluster Admin Build and manage clusters in a project. ClusterRoleBinding
Resources: All
Verbs: All
Cluster Template User Provision and manage cluster resources using cluster templates. ClusterRoleBinding
Resources: All
Verbs: All
Environment Template User Provision and manage environment resources using environment templates. No Access
Infrastructure Admin Manage all infrastructure-related resources in a project. ClusterRoleBinding
Resources: All
Verbs: All
Infrastructure Read Only Read-only version of Infrastructure Admin. ClusterRoleBinding
Resources: All
Verbs: get, list, watch
Project Admin Manage all application-related resources in a project. ClusterRoleBinding
Resources: All
Verbs: All
Project Read Only Read-only version of Project Admin. ClusterRoleBinding
Resources: All
Verbs: get, list, watch
Namespace Admin Manage workloads within assigned namespaces. RoleBinding
Resources: All namespaced scoped resources
Verbs: All
Namespace Read Only Read-only permissions for assigned namespaces. RoleBinding
Resources: All namespaced scoped resources
Verbs: get, list, watch
Workspace Admin Create namespaces in a project and deploy workloads using the same namespaces RoleBinding
Resources: All namespaced scoped resources
Verbs: All
Workspace Admin Read Only Read-only workspace access. RoleBinding
Resources: All namespaced scoped resources
Verbs: get, list, watch
Auditor Generate and download user access reports and audit logs. No access
FinOps Admin Configure chargeback groups and generate chargeback reports with read access to dashboards. No access

Note

To get the list of resources that are namespace scoped, use the below command

kubectl api-resources --namespaced=true

Organization Administrator Role

The organization administrator role is a privileged, super user with the ability to manage and configure everything in an organization including all projects. This user is responsible for configuring everything that spans an entire organization including users, org-level settings, RBAC, and more.

In order to create an organization administrator, see detailed documentation.

Project-Specific Roles

While users can have a specific role for all projects, many times as an admin you may want to limit access to certain projects. In addition, for given projects that are more important or need more governance than others, you may want to set more limits in terms of what a user can/cannot do in those more governed projects.

This is where project-specific roles are extremely helpful. With project-specific roles, you can set a different role per user per project. This means for example that as a user, you may have namespace admin permissions in one project for example but then project admin permissions in another.

Multiple Roles For a User

In the platform, a user can have multiple roles. The user can have multiple roles within the same organization as well as across multiple organizations.

Multiple Roles Within The Same Organization

The following summarizes what happens when a user gets multiple roles within the same organization:

Similarly, if a user has a read-only role and management role for the same type (for ex Infra Admin and Infra Read-Only), the management role will ALWAYS take precedence.

Multiple Roles Within Different Organizations

A user can also different roles for different organizations. For example, for one org that is used for demos, they may have a project admin role but for a production org, they may have a namespace admin role.

Examples

The following table summarizes some examples for clarity with Project A and Project B referenced as examples:

Role 1 Role 2 Permissions
Org Admin Project Admin Org Admin
Project Admin for Project A Infra Admin for Project A Project + Infra Admin privileges for project A
Project Admin for ALL PROJECTS Namespace Admin for ALL PROJECTS Project Admin for ALL PROJECTS
Project Admin for Project A Namespace Admin for Project A Project Admin privileges for Project A
Project Admin for Project A Namespace Admin for ALL PROJECTS Project Admin privileges for Project A, Namespace Admin privileges for all other projects
Namespace Admin for Project A Project Admin for ALL PROJECTS Project Admin for ALL PROJECTS
Namespace Admin for Project A Infra Admin for Project B Namespace Admin privileges for project A, Infra Admin privileges for project B

Manage Roles

Org Administrators are responsible for assigning and managing roles for users in the Organizations. All changes and activities with user role assignments are audited and can be viewed in the Audit section. Users can be assigned roles in one of two ways providing flexibility in how organizations would like to manage access.

Manage Role By Group

Group based role assignments are well suited for handling a large number of users that need similar roles. For example, it is much easier to create a group called "developers", configure this group with the required role and manage users.

Manage Role Per User

In some cases, it may be required to manage roles with a "per user" granularity. Perform the below steps.

Determine Role as End User

Authorized users in an Org can quickly determine their exact role and profile in the Web Console.

The below example is for a user having an "Org Admin" role for "ALL PROJECTS".

The below example is for a user having an "Infra Admin" role for the "Production Project"

Determine User's Role as Org Admin

An Org Admin can quickly determine a user's role assignments.

The example below shows a list of users in an organization.