Project

General

Profile

Actions

action #170383

open

coordination #173584: Zero Trust Model for OpenQA Ecosystem

[spike][timeboxed:10h] Concept for full RBAC implementation size:S

Added by okurz 2 months ago. Updated about 2 months ago.

Status:
Workable
Priority:
Normal
Assignee:
-
Category:
Feature requests
Target version:
Start date:
2024-11-27
Due date:
% Done:

0%

Estimated time:
Tags:

Description

Motivation

szarate dreams of "zero-trust" I don't know what actual use case this covers but just ask him :)

Goals

  • G1: Understand actual use cases
  • G2: Concept for full RBAC implementation in openQA

Suggestions

  • Read what RBAC and what is zero-trust
  • Everyone is not an operator and we have more fine-grained permissions in place
  • Ask szarate
  • Come up with a user story

Notes:


Related issues 1 (0 open1 closed)

Copied from openQA Project (public) - action #170380: [spike][timeboxed:10h] Prevent unauthorized openQA asset download size:SResolvedmkittler2024-11-27

Actions
Actions #1

Updated by okurz 2 months ago

  • Copied from action #170380: [spike][timeboxed:10h] Prevent unauthorized openQA asset download size:S added
Actions #2

Updated by mkittler 2 months ago

  • Description updated (diff)
  • Status changed from New to Workable
Actions #3

Updated by mkittler 2 months ago

  • Subject changed from [spike][timeboxed:10h] Concept for full RBAC implementation to [spike][timeboxed:10h] Concept for full RBAC implementation size:S
Actions #4

Updated by mkittler 2 months ago

I've just been talking about this with @szarate in the office. I'll update this ticket tomorrow as there actually is a clear use case behind this and also a few technical challenges we shouldn't overlook when coming up with a concept.

Actions #5

Updated by mkittler 2 months ago

  • Assignee set to mkittler
Actions #6

Updated by szarate 2 months ago

  • Description updated (diff)
Actions #7

Updated by szarate 2 months ago

  • Description updated (diff)
Actions #8

Updated by mkittler 2 months ago

The use case as I understood it (G1)

I had a chat about the topic with @szarate. This use case is actually also CC-related.

So far we rely on a Wireguard tunnel for openQA workers outside the CC-zone to still be able to reach openQA and potentially embargoed content. We can make our lives easier and improve security even further by preventing unauthorized access to openQA assets (see #170380) because then we could allow access to openQA from outside the CC-zone and wouldn't need the Wireguard tunnel anymore. Then all assets (including repos) would be served by openQA and test code must not try to reach any other services within the CC-zone (like SMELT).

To support this approach the idea is to introduce "roles" which would be associated with "users" in openQA (where "users" can be openQA workers; in fact user accounts used by the workers are the most relevant here). It would work like this:

  1. no role: The user can access everything according to their general authorization level (none, operator, admin) as before.
  2. the user has role X: The user's access is restricted and/or extended further. The general authorization level is still used as a base.

As a start, the role "worker" would be interesting. It would forbid access to the web UI and many APIs leaving only APIs the worker actually needs. It would only allow downloading assets that are associated with the job the worker is working on.

Further remarks from my side

  • I'm wondering whether we would really need to introduce roles for this use case, though. Maybe "worker" can just be another access level besides "none", "operator" and "admin".
  • The fact that assets are served by NGINX and not by the Mojolicious web application complicates things. We also need to take that into account when working on #170380.
  • openQA is currently not "zero-trust" (which is another buzzword which came up). Restricting the access to openQA assets (and job tokens and potentially other problematic information) would be a step towards that and also a relevant one. If we wanted openQA to be truly "zero-trust" we would probably have to restrict even read-only access on many pages for unauthenticated users. I'm not sure how relevant that would be for the use case.
Actions #9

Updated by szarate 2 months ago ยท Edited

@mkittler please do an architecture design before writting code, I would be fine with a paper solution, despite what G1 says, beyond what is needed for #170380

Actions #10

Updated by mkittler 2 months ago

  • Assignee deleted (mkittler)

I'll be able to work on it at earliest on Tuesday and might consider working on #170380 first. So I'm unassigning for now.

Actions #11

Updated by szarate 2 months ago

  • Parent task changed from #166358 to #173506
Actions #12

Updated by szarate 2 months ago

  • Parent task changed from #173506 to #173584
Actions #13

Updated by okurz about 2 months ago

  • Target version changed from Ready to Tools - Next
Actions #14

Updated by okurz about 2 months ago

  • Target version changed from Tools - Next to future
Actions

Also available in: Atom PDF