lablup / lablup/backend.ai

Apply RBAC validators to session actions missing permission checks

Open
#10,478 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
670
Forks
183
Avg merge
15h 13m
Merged PRs (30d)
368

Description

Following BA-5320 (define valid operation combinations for SESSION element type), apply RBAC validators to the 20 session actions that currently have no permission checks in their processors.

Current state:

- 10 session actions already have RBAC validation (6 scope, 4 single-entity)

- 20 session actions have NO RBAC validation

Actions missing RBAC validation, grouped by category:

File operations (4):

- upload_files (UPDATE)

- download_file (GET/READ)

- download_files (GET/READ)

- list_files (SEARCH/READ)

Service management (3):

- start_service (CREATE)

- shutdown_service (DELETE)

- get_direct_access_info (GET/READ)

Commit/Image (3):

- commit_session (CREATE)

- convert_session_to_image (UPDATE)

- get_commit_status (GET/READ)

Session lifecycle (3):

- rename_session (UPDATE)

- restart_session (UPDATE)

- interrupt (UPDATE)

Execution (1):

- complete (UPDATE)

Status/Information retrieval (6):

- check_and_transit_status (UPDATE)

- get_status_history (GET/READ)

- get_container_logs (GET/READ)

- get_dependency_graph (GET/READ)

- get_abusing_report (GET/READ)

Design considerations:

- Some actions use sub-entity types (SESSION_FILE, SESSION_APP_SERVICE, SESSION_COMMIT, SESSION_CONTAINER_LOG, etc.). Need to decide whether to cover them under SESSION-level permission or define separate RBAC actions per sub-entity type.

- check_and_transit_status may be an internal/system operation that should remain unvalidated.

- Prioritize user-facing API actions (file ops, service ops, rename, restart) over internal ones.

JIRA Issue: BA-5396

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.