OpenShift - Tekton
Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Consulta los subscription plans!
- 脷nete al 馃挰 Discord group o al telegram group o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud github repos.
El autor original de esta p谩gina es Haroun
Qu茅 es tekton
Seg煤n la documentaci贸n: Tekton es un marco de trabajo de c贸digo abierto poderoso y flexible para crear sistemas CI/CD, permitiendo a los desarrolladores construir, probar y desplegar en proveedores de nube y sistemas locales. Tanto Jenkins como Tekton se pueden usar para probar, construir y desplegar aplicaciones, sin embargo, Tekton es Cloud Native.
Con Tekton, todo est谩 representado por archivos YAML. Los desarrolladores pueden crear Recursos Personalizados (CR) de tipo Pipelines y especificar m煤ltiples Tasks en ellos que desean ejecutar. Para ejecutar un Pipeline, deben crearse recursos de tipo PipelineRun.
Cuando se instala tekton, se crea una cuenta de servicio (sa) llamada pipeline en cada namespace. Cuando se ejecuta un Pipeline, se generar谩 un pod utilizando esta sa llamada pipeline para ejecutar las tareas definidas en el archivo YAML.
Getting Started with Pipelines | Tekton
Las capacidades de la cuenta de servicio del Pipeline
Por defecto, la cuenta de servicio del pipeline puede usar la capacidad pipelines-scc. Esto se debe a la configuraci贸n predeterminada global de tekton. De hecho, la configuraci贸n global de tekton tambi茅n es un YAML en un objeto de openshift llamado TektonConfig que se puede ver si tienes algunos roles de lector en el cl煤ster.
apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
name: config
spec:
...
...
platforms:
openshift:
scc:
default: "pipelines-scc"
En cualquier espacio de nombres, si puedes obtener el token de la cuenta de servicio del pipeline, podr谩s usar pipelines-scc.
La mala configuraci贸n
El problema es que el scc predeterminado que la cuenta de servicio del pipeline puede usar es controlable por el usuario. Esto se puede hacer utilizando una etiqueta en la definici贸n del espacio de nombres. Por ejemplo, si puedo crear un espacio de nombres con la siguiente definici贸n yaml:
apiVersion: v1
kind: Namespace
metadata:
name: test-namespace
annotations:
operator.tekton.dev/scc: privileged
El operador tekton otorgar谩 a la cuenta de servicio de la pipeline en test-namespace la capacidad de usar el scc privilegiado. Esto permitir谩 el montaje del nodo.
La soluci贸n
Los documentos de Tekton sobre c贸mo restringir la anulaci贸n de scc a帽adiendo una etiqueta en el objeto TektonConfig.
Esta etiqueta se llama max-allowed
apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
name: config
spec:
...
...
platforms:
openshift:
scc:
default: "restricted-v2"
maxAllowed: "privileged"
Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Consulta los subscription plans!
- 脷nete al 馃挰 Discord group o al telegram group o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud github repos.
HackTricks Cloud

