OpenShift - Tekton

Reading time: 4 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Mwandishi wa awali wa ukurasa huu ni Haroun

Tekton ni nini

Kulingana na hati: Tekton ni mfumo wenye nguvu na rahisi wa chanzo wazi wa kuunda mifumo ya CI/CD, ikiruhusu waendelezaji kujenga, kupima, na kupeleka katika watoa huduma wa wingu na mifumo ya ndani. Jenkins na Tekton zinaweza kutumika kupima, kujenga na kupeleka programu, hata hivyo Tekton ni Cloud Native.

Kwa Tekton kila kitu kinawakilishwa na faili za YAML. Waendelezaji wanaweza kuunda Rasilimali za Kijadi (CR) za aina Pipelines na kubainisha Tasks nyingi ndani yao ambazo wanataka kuendesha. Ili kuendesha rasilimali ya Pipeline ya aina PipelineRun lazima iundwe.

Wakati tekton imewekwa, akaunti ya huduma (sa) inayoitwa pipeline inaundwa katika kila namespace. Wakati Pipeline inapoendeshwa, pod itazaliwa ikitumia hii sa inayoitwa pipeline kuendesha kazi zilizofafanuliwa katika faili la YAML.

Getting Started with Pipelines | Tekton

Uwezo wa akaunti ya huduma ya Pipeline

Kwa default, akaunti ya huduma ya pipeline inaweza kutumia uwezo wa pipelines-scc. Hii ni kutokana na usanidi wa default wa kimataifa wa tekton. Kwa kweli, usanidi wa kimataifa wa tekton pia ni YAML katika kitu cha openshift kinachoitwa TektonConfig ambacho kinaweza kuonekana ikiwa una baadhi ya majukumu ya msomaji katika klasta.

yaml
apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
name: config
spec:
...
...
platforms:
openshift:
scc:
default: "pipelines-scc"

Katika namespace yoyote, ikiwa unaweza kupata token ya akaunti ya huduma ya pipeline utaweza kutumia pipelines-scc.

The Misconfig

Tatizo ni kwamba scc ya default ambayo akaunti ya huduma ya pipeline inaweza kutumia inasimamiwa na mtumiaji. Hii inaweza kufanywa kwa kutumia lebo katika ufafanuzi wa namespace. Kwa mfano, ikiwa naweza kuunda namespace na ufafanuzi wa yaml ufuatao:

yaml
apiVersion: v1
kind: Namespace
metadata:
name: test-namespace
annotations:
operator.tekton.dev/scc: privileged

Tekton operator itatoa kwa akaunti ya huduma ya pipeline katika test-namespace uwezo wa kutumia scc privileged. Hii itaruhusu kuunganishwa kwa node.

Suluhisho

Dokumenti za Tekton kuhusu jinsi ya kuzuia kuondoa scc kwa kuongeza lebo katika kitu cha TektonConfig.

Tekton

Lebo hii inaitwa max-allowed

yaml
apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
name: config
spec:
...
...
platforms:
openshift:
scc:
default: "restricted-v2"
maxAllowed: "privileged"

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks