OpenShift - Tekton
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Oryginalnym autorem tej strony jest Haroun
Czym jest tekton
Według dokumentacji: Tekton to potężny i elastyczny framework open-source do tworzenia systemów CI/CD, umożliwiający deweloperom budowanie, testowanie i wdrażanie w różnych dostawcach chmury oraz na systemach lokalnych. Zarówno Jenkins, jak i Tekton mogą być używane do testowania, budowania i wdrażania aplikacji, jednak Tekton jest Cloud Native.
W Tekton wszystko jest reprezentowane przez pliki YAML. Deweloperzy mogą tworzyć Zasoby Niestandardowe (CR) typu Pipelines i określać w nich wiele Tasks, które chcą uruchomić. Aby uruchomić Pipeline, muszą zostać utworzone zasoby typu PipelineRun.
Gdy tekton jest zainstalowany, w każdej przestrzeni nazw tworzony jest konto usługi (sa) o nazwie pipeline. Gdy Pipeline jest uruchamiany, tworzony jest pod przy użyciu tego sa o nazwie pipeline, aby uruchomić zadania zdefiniowane w pliku YAML.
Getting Started with Pipelines | Tekton
Możliwości konta usługi Pipeline
Domyślnie konto usługi pipeline może korzystać z możliwości pipelines-scc. Wynika to z globalnej domyślnej konfiguracji tekton. Właściwie, globalna konfiguracja tekton jest również YAML w obiekcie openshift o nazwie TektonConfig, który można zobaczyć, jeśli masz pewne role czytelnicze w klastrze.
apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
name: config
spec:
...
...
platforms:
openshift:
scc:
default: "pipelines-scc"
W dowolnej przestrzeni nazw, jeśli możesz uzyskać token konta serwisowego potoku, będziesz mógł użyć pipelines-scc.
Błąd w konfiguracji
Problem polega na tym, że domyślny scc, który może używać konto sa potoku, jest kontrolowany przez użytkownika. Można to zrobić za pomocą etykiety w definicji przestrzeni nazw. Na przykład, jeśli mogę utworzyć przestrzeń nazw z następującą definicją yaml:
apiVersion: v1
kind: Namespace
metadata:
name: test-namespace
annotations:
operator.tekton.dev/scc: privileged
Operator tekton przyzna kontu usługi pipeline w test-namespace możliwość używania scc privileged. Umożliwi to montowanie węzła.
Rozwiązanie
Dokumenty Tekton opisują, jak ograniczyć nadpisywanie scc, dodając etykietę w obiekcie TektonConfig.
Ta etykieta nazywa się max-allowed
apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
name: config
spec:
...
...
platforms:
openshift:
scc:
default: "restricted-v2"
maxAllowed: "privileged"
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

