OpenShift - Tekton
Questa pagina mostra uno scenario di escalation dei privilegi considerando che tekton è installato nel cluster e che è possibile creare uno spazio dei nomi (a volte i diritti di modifica sono sufficie
Last updated
Questa pagina mostra uno scenario di escalation dei privilegi considerando che tekton è installato nel cluster e che è possibile creare uno spazio dei nomi (a volte i diritti di modifica sono sufficie
Last updated
L'autore originale di questa pagina è Haroun
Secondo la documentazione: Tekton è un framework open-source potente e flessibile per la creazione di sistemi CI/CD, che consente agli sviluppatori di creare, testare e distribuire su fornitori di servizi cloud e sistemi on-premise. Sia Jenkins che Tekton possono essere utilizzati per testare, compilare e distribuire applicazioni, tuttavia Tekton è nativo del cloud.
Con Tekton tutto è rappresentato da file YAML. Gli sviluppatori possono creare Risorse Personalizzate (CR) di tipo Pipelines
e specificare più Tasks
in esse che desiderano eseguire. Per eseguire una risorsa di tipo Pipeline, devono essere create risorse di tipo PipelineRun
.
Quando tekton è installato, viene creato un account di servizio (sa) chiamato pipeline in ogni spazio dei nomi. Quando viene eseguita una Pipeline, verrà generato un pod utilizzando questo sa chiamato pipeline
per eseguire i task definiti nel file YAML.
Per impostazione predefinita, l'account di servizio pipeline può utilizzare la capacità pipelines-scc
. Questo è dovuto alla configurazione predefinita globale di tekton. In realtà, la configurazione globale di tekton è anche un file YAML in un oggetto openshift chiamato TektonConfig
che può essere visualizzato se si dispone di alcuni ruoli di lettura nel cluster.
Il problema è che l'SCC predefinito che il service account della pipeline può utilizzare è controllabile dall'utente. Questo può essere fatto utilizzando un'etichetta nella definizione del namespace. Ad esempio, se posso creare un namespace con la seguente definizione yaml:
Il tekton operator darà all'account del servizio di pipeline nel test-namespace
la capacità di utilizzare il scc privilegiato. Ciò consentirà il mounting del nodo.
I documenti di Tekton riguardano come limitare l'override di scc aggiungendo un'etichetta nell'oggetto TektonConfig
.
Questa etichetta si chiama max-allowed