OpenShift - Tekton

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Bu sayfanın orijinal yazarı Haroun

Tekton nedir

Dokümana göre: Tekton, geliştiricilerin bulut sağlayıcıları ve yerel sistemler arasında CI/CD sistemleri oluşturmasına olanak tanıyan güçlü ve esnek bir açık kaynak çerçevesidir. Hem Jenkins hem de Tekton, uygulamaları test etmek, oluşturmak ve dağıtmak için kullanılabilir, ancak Tekton Cloud Native’dir.

Tekton ile her şey YAML dosyalarıyla temsil edilir. Geliştiriciler, çalıştırmak istedikleri birden fazla Tasks belirtebilecekleri Pipelines türünde Özel Kaynaklar (CR) oluşturabilirler. Bir Pipeline’ı çalıştırmak için PipelineRun türünde kaynaklar oluşturulmalıdır.

Tekton yüklendiğinde, her ad alanında pipeline adında bir hizmet hesabı (sa) oluşturulur. Bir Pipeline çalıştırıldığında, YAML dosyasında tanımlanan görevleri çalıştırmak için pipeline adında bu sa kullanılarak bir pod oluşturulacaktır.

Getting Started with Pipelines | Tekton

Pipeline hizmet hesabı yetenekleri

Varsayılan olarak, pipeline hizmet hesabı pipelines-scc yeteneğini kullanabilir. Bu, tekton’un küresel varsayılan yapılandırmasından kaynaklanmaktadır. Aslında, tekton’un küresel yapılandırması da, kümede bazı okuyucu rolleri varsa görülebilen TektonConfig adlı bir openshift nesnesinde bir YAML’dır.

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

Herhangi bir ad alanında, eğer pipeline hizmet hesabı jetonunu alabiliyorsanız pipelines-scc kullanabileceksiniz.

Yanlış Yapılandırma

Sorun, pipeline sa’nın kullanabileceği varsayılan scc’nin kullanıcı tarafından kontrol edilebilir olmasıdır. Bu, ad alanı tanımında bir etiket kullanılarak yapılabilir. Örneğin, eğer aşağıdaki yaml tanımıyla bir ad alanı oluşturabiliyorsam:

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

Tekton operatörü, test-namespace içindeki pipeline hizmet hesabına scc privileged kullanım yetkisi verecektir. Bu, düğümün montajına izin verecektir.

Çözüm

Tekton, TektonConfig nesnesine bir etiket ekleyerek scc’nin geçersiz kılınmasını nasıl kısıtlayacağınızı belgeler.

Tekton

Bu etiket max-allowed olarak adlandırılır.

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

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin