GCP - Cloud Build Enum
Basiese Inligting
Google Cloud Build is 'n bestuurde CI/CD-platform wat die outomatiese sagtewarebou- en vrystellingsprosesse outomatiseer, integreer met bronkode-opslagplaas en 'n wye verskeidenheid programmeer tale ondersteun. Dit laat ontwikkelaars toe om kode outomaties te bou, toets en implementeer terwyl dit die buigsaamheid bied om boustappe en werkstrome aan te pas.
Elke Cloud Build Trigger is verwant aan 'n Cloud Repository of direk gekoppel met 'n eksterne opslagplaas (Github, Bitbucket en Gitlab).
Ek kon nie enige manier sien om die Github/Bitbucket-token van hier of van Cloud Repositories te steel nie omdat wanneer die opslagplaas afgelaai word, dit via 'n https://source.cloud.google.com/ URL toegang kry en Github nie deur die klient toegang kry nie.
Gebeure
Die Cloud Build kan geaktiveer word as:
Druk na 'n tak: Spesifiseer die tak
Druk 'n nuwe etiket: Spesifiseer die etiket
Pull-aanvraag: Spesifiseer die tak wat die PR ontvang
Handmatige Uitnodiging
Pub/Sub-boodskap: Spesifiseer die onderwerp
Webhook-gebeurtenis: Sal 'n HTTPS-URL blootstel en die versoek moet geoutentiseer word met 'n geheim
Uitvoering
Daar is 3 opsies:
'n yaml/json wat die bevele spesifiseer om uit te voer. Gewoonlik:
/cloudbuild.yaml
Slegs een wat "inline" in die webkonsolide en in die opdraggewer gespesifiseer kan word
Mees algemene opsie
Relevant vir ongeoutentiseerde toegang
'n Dockerfile om te bou
'n Buildpack om te bou
SA-permissies
Die Diensrekening het die cloud-platform
-omvang, sodat dit alle voorregte kan gebruik. As geen SA gespesifiseer is (soos wanneer 'n indiening gedoen word) sal die verstek SA <proj-nommer>@cloudbuild.gserviceaccount.com
gebruik word.
Standaard word geen toestemmings gegee nie, maar dit is redelik maklik om dit te gee:
Goedkeurings
Dit is moontlik om 'n Cloud Build te konfigureer om goedkeurings vir bou-uitvoerings te vereis (standaard gedeaktiveer).
PR-Goedkeurings
Wanneer die trigger PR is omdat enigiemand PR's na openbare opslagplase kan doen sou dit baie gevaarlik wees om net die uitvoering van die trigger met enige PR toe te laat. Daarom sal die uitvoering standaard slegs outomaties wees vir eienaars en samewerkers, en om die trigger met ander gebruikers se PR's uit te voer, moet 'n eienaar of samewerker kommentaar lewer /gcbrun
.
Verbindings & Opstelplase
Verbindings kan geskep word oor:
GitHub: Dit sal 'n OAuth-prompt toon wat vra vir toestemmings om 'n Github-token te kry wat binne die Secret Manager gestoor sal word.
GitHub Enterprise: Dit sal vra om 'n GithubApp te installeer. 'n Outentiseringsleutel van jou GitHub Enterprise-gashuis sal geskep en in hierdie projek as 'n Secret Manager-geheim gestoor word.
GitLab / Enterprise: Jy moet die API-toegangstoken en die Lees-API-toegangstoken verskaf wat in die Secret Manager gestoor sal word.
Sodra 'n verbinding gegenereer is, kan jy dit gebruik om opstelplase te koppel wat die Github-rekening toegang tot het.
Hierdie opsie is beskikbaar deur die knoppie:
Let daarop dat opstelplase wat op hierdie manier gekoppel is, slegs beskikbaar is in Triggers wat 2de generasie gebruik.
Koppel 'n Opstelplaas
Dit is nie dieselfde as 'n verbindings
nie. Dit bied verskillende maniere om toegang tot 'n Github- of Bitbucket-opstelplaas te kry, maar skep nie 'n verbindingsobjek nie, maar dit skep 'n opstelplaasobjek (van 1ste generasie).
Hierdie opsie is beskikbaar deur die knoppie:
Berging
Soms sal Cloud Build 'n nuwe berging genereer om die lêers vir die trigger te stoor. Dit gebeur byvoorbeeld in die voorbeeld wat GCP aanbied met:
'n Stoorhouer genaamd security-devbox_cloudbuild is geskep om 'n .tgz
met die lêers wat gebruik moet word, te stoor.
Kry dop
Installeer gcloud binne die wolkbou:
Opsomming
Jy kan sensitiewe inligting in boukonfigurasies en logboeke vind.
Voorregskaping
GCP - Cloudbuild PrivescOngeagte Toegang
GCP - Cloud Build Unauthenticated EnumNa-Exploitasie
GCP - Cloud Build Post ExploitationLast updated