Documentation
Identity and Access Management
Introduction

In SkyU, Identity and Access Management (IAM) plays a crucial role in managing user permissions and access control. This section outlines the hierarchical structure of IAM roles and how they are applied across different layers within the system.

Hierarchical Structure

SkyU IAM system follows a hierarchical structure consisting of three layers:

  1. Organization: The top-most layer representing the overarching entity within the system.
  2. Project: Child layer under the organization, representing specific projects or initiatives within the organization.
  3. Environment: Further child layer under projects, representing different environments such as development, staging, or production.

Each level has its own set of permissions that can be granted to users or groups.

Inheritance

When a user is granted a permission at a higher level, it is automatically inherited by all the lower levels. For example, if a user is granted read access to an organization, they will have read access to all the projects and environments within that organization.

Role Assignment Entities

Roles within our IAM system can be assigned to the following entities:

  • Users: Individual users who interact with the system.
  • Teams: Groups of users organized for collaborative purposes.
  • Service Accounts: Accounts used by applications or services to interact with our system programmatically.

Service accounts can be used to generate a token which does not have a expire time. you can renew the token any time but the previous tokens created with the same service account are also valid until the service account is deleted.

Role Inheritance

One of the key concepts in SkyU IAM system is role inheritance. When a role is assigned to a user, team, or service account at a higher level (e.g., organization level), that role is automatically propagated to all child layers (projects and environments) within that hierarchy. This means that permissions granted at higher levels apply globally to all entities within that hierarchy.

For example, if a user is assigned an organization-level role with certain privileges, they will have the same privileges across all projects and environments belonging to that organization.

The above inheritance is only deviated for the Member role. It does not have the inheritance. just a basic permission for the applied access level (organization, project or environment)

Roles and Permissions

SkyU provides different roles that can be assigned to users or groups at each level. The roles define the permissions that the users or groups have on the resources at that level. The following roles are available in SkyU:

Custom Roles

SkyU provides an option to create custom roles at organization and project level. There the administrator can attach some restricted permissions from a given static permissions list to a user, team or a service account to give that entity only a specific access. That role also follows the above mentioned hierarchy.

Static Roles

SkyU provides some static roles that can be assigned to users or groups at each level. The roles define the permissions that the users or groups have on the resources at that level. The following roles are available in SkyU:

Organization Level

CategorySub-CategoryDescription
GeneralownerFull Access to Organization Resources
editorFull Access to Organization Resources. No Delete Access
viewerFull View Access to Organization Resources
memberView Organization and Projects within that Organization
ProjectsProject CreatorCreate Projects within the Organization
IAMIAM ViewerView Organization Users, Roles, Teams and Service Accounts
IAM User AdminDelete Organization Users
IAM User EditorInvite/Edit Organization Users
IAM Roles AdminDelete Organization Roles
IAM Roles EditorAdd/Edit Organization Roles
IAM Teams AdminDelete Organization Teams
IAM Teams EditorAdd/Edit Organization Teams
IAM Service Accounts AdminDelete Organization Service Accounts
IAM Service Accounts EditorAdd/Edit Organization Service Accounts
SettingsSettings AdminDelete Organizations
Settings EditorView General and IDP Settings, Create IDP
InsightsInsights ViewerView Organization Insights
SecurityAudit Logs ViewerView Organization Audit Logs

Project Level

CategorySub-CategoryDescription
ClusterCluster ViewerView Clusters and Cluster Agent, Plugins, Activity, DNS, Observability Info, Nodes and Namespaces
Cluster Observability ViewerView Logs, Metrics and Network Info
DNS AdminDelete DNS
DNS EditorAdd DNS
Plugins AdminDelete Plugins
Plugins EditorAdd Plugins
Agent AdminDelete Pods
Agent EditorEdit Cluster Configs
Cluster EditorCreate Clusters
IntegrationsGit Integrations AdminDelete Git Integrations
Git Integrations EditorAdd/Edit Git Integrations
Cloud Integrations AdminDelete Cloud Integrations
Cloud Integrations EditorAdd/Edit Cloud Integrations
Image Registeries Integrations AdminDelete Image Registeries Integrations
Image Registeries Integrations EditorAdd/Edit Image Registeries Integrations
DNS Integrations AdminDelete DNS Integrations
DNS Integrations EditorAdd/Edit DNS Integrations
SettingsSettings AdminDelete Projects
Settings EditorEnable Features
Settings ViewerView General Settings, Repositories, Features and Integrations
ConfigsEnv Configs AdminDelete Env Configs
Env Configs EditorAdd/Update Env Configs
Env Configs ViewerView Env Configs
ApplicationApplication AdminDelete Applications
Application EditorCreate Applications
Application ViewerView Applications
API TesterTest APIs
Application Security ViewerView Code Quality and Image Vulnerabilities
Application Metrics and Logs ViewerView Application Metrics and Logs
Application Workflows ViewerView CI/CD Runs, Build Variables, Pipeline Designs, Secrets and YAML
Application Workflows AdminAdd Env Variables and Secrets, Edit Pipeline Design and YAML
Runtime EditorRestart Pods
Runtime AdminDelete Pods
Container EditorAdd/Edit Containers and Scaling Options
Container AdminDelete Containers
Health Checks AdminView and Manage Health Checks
Ingress AdminCreate/Edit/Delete Ingress
Gitops AdminEdit Gitops File
Configs AdminCreate/Edit/Delete Config Mounts
Environment Info ViewerView Releases, Runtime, Container, Config Mounts, Scaling, Health Checks, Ingress, Gitops Info
ObservabilityObservability AdminEdit/Delete Observability Alerts
Observability ViewerView Observability Info (Health, Runtime, Cluster... etc.)
ReleasesReleases ViewerView Releases
Promote AccessPromote Apps
InsightsInsights AdminAccess Insights settings
Insights ViewerView Project Insights
IAMIAM ViewerView Project Users, Roles, Teams and Service Accounts
IAM User AdminDelete Project Users
IAM User EditorInvite/Edit Users
IAM Roles AdminDelete Project Roles
IAM Roles EditorAdd/Edit Project Roles
IAM Teams AdminDelete Project Teams
IAM Teams EditorAdd/Edit Project Teams
IAM Service Accounts AdminDelete Project Service Accounts
IAM Service Accounts EditorAdd/Edit Project Service Accounts
GeneralownerFull Access to Project Resources
editorFull Access to Project Resources. No Delete Access
viewerFull View Access to Project Resources
memberView Project and Apps within that Project
SecurityAudit Logs ViewerView Project Audit Logs
EnvironmentEnvironment EditorCreate Environments, Connect/Unlink Clusters, Add Namespaces, Edit Gitops and Triggers
Environment ViewerView Environments and Env Users, Namespaces, Gitops, Workflows and Triggers
Environment Users EditorAdd/Edit Environment Users

Environment Level

CategorySub-CategoryDescription
GeneralownerFull Access to Environment Resources
editorFull Access to Environment Resources. No Delete Access
viewerFull View Access to Environment Resources