Access Control
Best practices for managing users, roles, and groups.
Principle of Least Privilege
Grant minimum necessary permissions:
- Start restrictive, expand as needed
- Don’t give everyone admin access
- Create specific roles for specific functions
- Regular review and removal of unnecessary permissions
Use Groups for Template Access
Don’t make all templates available to everyone:
- Organize by team:
backend-team
,frontend-team
- Organize by project:
project-alpha
,project-beta
- Organize by purpose:
development
,testing
,demos
This keeps template lists manageable and relevant.
Separate Roles by Function
Create specific roles rather than one “power user” role:
developer
: Create and manage own spacestemplate-admin
: Manage templatesuser-admin
: Manage usersauditor
: View logs and reports
Avoid combining unrelated permissions.
Regular Access Reviews
Periodically review user access:
- Monthly review of active users
- Quarterly review of permissions
- Remove inactive accounts
- Update permissions as roles change
- Document access decisions
Document Role Definitions
Clearly document what each role can do:
Developer Role:
- Create spaces from assigned templates
- Manage own spaces (start, stop, delete)
- Access SSH and terminal
- Use port forwarding
- View own audit logs
Cannot:
- Create or modify templates
- Manage other users
- View other users' spaces
Set Appropriate Quotas
Balance flexibility with resource constraints:
- Developers: 3-5 spaces, 10-20 compute units
- QA: 2-3 spaces, 5-10 compute units
- Contractors: 1-2 spaces, 3-5 compute units
Monitor usage and adjust based on actual needs.
Use Descriptive Names
Name roles and groups clearly:
- Good:
backend-developers
,qa-testers
,project-alpha-team
- Bad:
group1
,role-a
,team
Descriptive names make management easier.
Separate Production and Development
Use groups to separate environments:
prod-access
: Production templatesdev-access
: Development templatesstaging-access
: Staging templates
Limit production access to necessary personnel.