Usable access control in cloud management systems

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

School of Science | Master's thesis

Department

Major/Subject

Mcode

Language

en

Pages

82

Series

Abstract

Kubernetes has emerged as a primary method and unified platform for managing server infrastructure, across both public and private clouds. Kubernetes provides a uniform, generic, extensible and declarative application programming interface (API), that both allow humans to self-service, and other platforms to build on top. The Open Worldwide Application Security Project (OWASP) highlighted Broken Access Control as the top API security weakness in 2023. Kubernetes provides powerful access control mechanisms, but for the authorization and admission request stages separately. There is no concept of conditional authorization, which would bind these two separate stages together uniformly. This thesis proposes empowering policy authors to write conditionally authorized policies, and a method to implement this, without changing Kubernetes core. This capability makes it easier to write right-sized policies, without having to understand the request stage separation internals. This thesis also proposes an encoding of Kubernetes API surface into a general-purpose authorization language, Cedar Policy. Cedar was chosen after extensive evaluation of the authorization engine landscape, because it is expressive, safe, fast, and even analyzable in satisfiability modulo theories (SMT) logic. The SMT encoding empowers features such as autocompletion, policy validation, and partially ordering the policies, which all then by the proposed integration can benefit Kubernetes policy authors. This thesis finds the outlook positive for Kubernetes being able to map into the Cedar data model, and thus be able to take advantage of advanced general-purpose features. This composable approach reduces the engineering effort required in Kubernetes when implementing features. It is found that it is possible to empower policy authors to write uniform, conditionally authorized policies without exposing the Kubernetes-internal two-stage split to the author. However, not all Cedar features required for this Kubernetes integration are yet available as stable features. Future work includes gathering policy author feedback from the proposed experience, evaluation of making conditional authorization a core primitive of Kubernetes and stabilizing the Cedar features required by Kubernetes.

Under de senaste åren, har Kubernetes etablerats som en primär metod för att hantera serverinfrastruktur. Kubernetes tillhandahåller användaren en enhetlig plattform för att köra servermjukvara både i publika och privata moln. Detta är möjligt tack vare Kubernetes API, som är enhetligt, generiskt, flexibelt samt deklarativt. Organisationen The Open Worldwide Application Security Project (OWASP) noterade 2023 att generellt sett är den största svagheten i olika API:n trasig åtkomstkontroll. Kubernetes tillhandahåller kvalitativa åtkomstkontrollfunktioner för sitt API. Tyvärr, är användargränssnittet för dessa funktioner inte enhetligt. Det finns inget koncept för villkorlig auktorisation, en funktion som kunde möjliggöra ett enhetligt användargränssnitt för åtkomstkontrollen. Denna avhandling föreslår en mekanism för villkorlig auktorisation i Kubernetes och en metod för att implementera detta utan att ändra Kubernetes källkod. Mekanismen gör det lättare för administratörer att skriva en enhetlig och lämpligt omfattande policy, utan att behöva förstå Kubernetes på djupet. I avhandlingen föreslås också en kodning av åtkomstkontrollen för Kubernetes API till Cedar Policy, ett universellt språk för användarbehörigheter. Cedar är en universell, uttrycksfull, snabb, säker samt analyserbar lösning för åtkomstkontroll. Cedar är analyserbar tack vare att dess policyer kan reduceras till satisfierbarhet modulo teorier (SMT) logik. Denna kodning möjliggör funktioner som automatisk komplettering, validering av policyer samt möjlighet att jämföra policyers storlek. Avhandlingen konstaterar att det är genomförbart att reducera en stor del av Kubernetes åtkomstkontroll till Cedars datamodell. Därmed kan Kubernetes dra nytta av Cedars avancerade och universella funktioner, vilket minskar utvecklingsinsatsen. Det konstateras att det är möjligt för administratörer att via avhandlingens projekt enkelt skriva enhetliga samt villkorliga policyer. Däremot är inte alla nödvändiga funktioner stabiliserade i Cedar ännu. Framtida forskningsförslag inkluderar insamling av respons från Kubernetes-administratörer gällande effektiviteten av dessa förbättringar, utvärdering av ifall Kubernetes kunde stöda villkorlig auktorisation som en inbyggd funktion samt stabilisering av de funktioner i Cedar som Kubernetes-integrationen kräver.

Description

Supervisor

Suoranta, Sanna

Thesis advisor

Schimanski, Stefan

Other note

Citation