OpenShift - Tekton
Reading time: 3 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Originalni autor ove stranice je Haroun
Šta je tekton
Prema dokumentaciji: Tekton je moćan i fleksibilan open-source okvir za kreiranje CI/CD sistema, omogućavajući programerima da grade, testiraju i implementiraju aplikacije na različitim cloud provajderima i lokalnim sistemima. I Jenkins i Tekton se mogu koristiti za testiranje, izgradnju i implementaciju aplikacija, međutim Tekton je Cloud Native.
Sa Tekton-om, sve je predstavljeno YAML datotekama. Programeri mogu kreirati Prilagođene Resurse (CR) tipa Pipelines
i odrediti više Tasks
koje žele da izvrše. Da bi se pokrenuo Pipeline, moraju se kreirati resursi tipa PipelineRun
.
Kada je tekton instaliran, servisni nalog (sa) pod nazivom pipeline se kreira u svakoj namespaces. Kada se Pipeline pokrene, pod će biti pokrenut koristeći ovaj sa pod nazivom pipeline
da izvrši zadatke definisane u YAML datoteci.
Getting Started with Pipelines | Tekton
Mogućnosti servisnog naloga Pipeline
Podrazumevano, servisni nalog pipeline može koristiti pipelines-scc
mogućnost. To je zbog globalne podrazumevane konfiguracije tekton-a. U stvari, globalna konfiguracija tekton-a je takođe YAML u openshift objektu pod nazivom TektonConfig
koji se može videti ako imate neke uloge čitaoca u klasteru.
apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
name: config
spec:
...
...
platforms:
openshift:
scc:
default: "pipelines-scc"
U bilo kojem namespace-u, ako možete dobiti token servisnog naloga pipeline-a, moći ćete da koristite pipelines-scc
.
Problemi sa konfiguracijom
Problem je u tome što je podrazumevani scc koji servisni nalog pipeline-a može koristiti pod kontrolom korisnika. To se može uraditi korišćenjem oznake u definiciji namespace-a. Na primer, ako mogu da kreiram namespace sa sledećom yaml definicijom:
apiVersion: v1
kind: Namespace
metadata:
name: test-namespace
annotations:
operator.tekton.dev/scc: privileged
Tekton operator će dati servisnom nalogu pipeline-a u test-namespace
mogućnost korišćenja scc privileged. Ovo će omogućiti montiranje čvora.
Rešenje
Tekton dokumenti o tome kako ograničiti preklapanje scc dodavanjem oznake u TektonConfig
objektu.
Ova oznaka se zove max-allowed
apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
name: config
spec:
...
...
platforms:
openshift:
scc:
default: "restricted-v2"
maxAllowed: "privileged"
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.