GCP - App Engine Enum

Support HackTricks

Basic Information

Google Cloud Platform's (GCP) App Engine ni jukwaa imara, lisilo na seva lililoundwa kwa ajili ya maendeleo na mwenyeji wa programu za wavuti kwa kiwango kikubwa. Muundo wa jukwaa hili unalenga kuboresha mchakato wa maendeleo na kuongeza usimamizi wa programu. Vipengele na faida kuu za App Engine ya GCP ni pamoja na:

  1. Muktadha wa Lisilo na Seva: App Engine inashughulikia kiotomatiki miundombinu, ikiwa ni pamoja na upatikanaji wa seva, usanidi, na kupanua. Hii inawawezesha waendelezaji kuzingatia kuandika msimbo bila kuwa na wasiwasi kuhusu vifaa vya chini.

  2. Kupanda Kiotomatiki: App Engine inaweza kupanua kiotomatiki programu yako kulingana na kiasi cha trafiki inachopokea. Inapanua ili kushughulikia trafiki iliyoongezeka na inapunguza wakati trafiki inapopungua, kusaidia kuboresha gharama na utendaji.

  3. Msaada wa Lugha na Wakati wa Uendeshaji: Inasaidia lugha maarufu za programu kama Java, Python, Node.js, Go, Ruby, PHP, na .NET. Unaweza kuendesha programu zako katika mazingira ya kawaida au ya kubadilika. Mazingira ya kawaida yana vizuizi zaidi lakini yameboreshwa sana kwa lugha maalum, wakati mazingira ya kubadilika yanaruhusu ubinafsishaji zaidi.

  4. Huduma Zilizojumuishwa: App Engine inajumuisha huduma nyingi nyingine za GCP, kama Cloud SQL, Cloud Storage, Cloud Datastore, na zaidi. Ujumuishaji huu unarahisisha muundo wa programu za msingi wa wingu.

  5. Kutoa Toleo na Kugawanya Trafiki: Unaweza kwa urahisi kupeleka toleo nyingi za programu yako na kisha kugawanya trafiki kati yao kwa ajili ya majaribio ya A/B au uzinduzi wa taratibu.

  6. Maelezo ya Programu: App Engine inatoa huduma zilizojengwa kama vile uandishi wa kumbukumbu, uthibitishaji wa mtumiaji, na seti ya zana za waendelezaji kwa ajili ya kufuatilia na kusimamia programu.

  7. Usalama: Inatoa vipengele vya usalama vilivyojengwa kama vile toleo la programu, vyeti vya SSL/TLS kwa ajili ya muunganisho salama, na usimamizi wa utambulisho na ufikiaji.

Firewall

firewall rahisi inaweza kuundwa kwa ajili ya mifano inayokimbia Apps kwa chaguzi zifuatazo:

SA

Akaunti ya huduma ya default inayotumika na Apps hizi ni <proj-name>@appspot.gserviceaccount.com ambayo ina mwanachama wa Mhariri juu ya mradi na SAs ndani ya APP Engine instance inasimama na wigo wa jukwaa la wingu (miongoni mwa wengine).

Storage

Msimbo wa chanzo na metadata huhifadhiwa kiotomatiki katika ndoo zenye majina kama <proj-id>.appspot.com na staging.<proj-id>.appspot.com na <country>.<proj-id>.appspot.com

Kila faili ya App huhifadhiwa na sha1 ya maudhui kama jina la faili:

Ndani ya ae folda kutoka staging.<proj-id>.appspot.com, kila folda kwa toleo moja inapatikana yenye faili za msimbo wa chanzo na manifest.json faili ambayo inaelezea vipengele vya App:

{"requirements.txt":{"sourceUrl":"https://storage.googleapis.com/staging.onboarding-host-98efbf97812843.appspot.com/a270eedcbe2672c841251022b7105d340129d108","sha1Sum":"a270eedc_be2672c8_41251022_b7105d34_0129d108"},"main_test.py":{"sourceUrl":"https://storage.googleapis.com/staging.onboarding-host-98efbf97812843.appspot.com/0ca32fd70c953af94d02d8a36679153881943f32","sha1Sum":"0ca32fd7_0c953af9_4d02d8a ...

Containers

Tovuti ya programu hatimaye itatekelezwa ndani ya kontena na Code Build inatumika kujenga kontena.

URLs & Regions

Tovuti ya kawaida itakuwa wazi katika URL <project-uniq-name>.appspot.com ingawa URL za toleo za zamani zitakuwa tofauti kidogo, kama https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com (zingatia alama ya wakati ya mwanzo).

Inaweza kuonekana kana kwamba ni lazima kuweka programu moja ya injini ya wavuti kwa kila eneo, lakini inawezekana kuashiria service: <servicename> katika app.yml na kuunda huduma mpya (wavuti mpya). Muundo wa URL kwa wavuti hii mpya utakuwa <servicename>-dot-<project-uniq-name>.appspot.com.

Enumeration

Kila wakati unapo upload msimbo mpya kwenye App, toleo jipya linaundwa. Matoleo yote yanahifadhiwa na hata yana URL ya kuyafikia. Hivyo, kubadilisha msimbo wa toleo la zamani inaweza kuwa mbinu nzuri ya kudumu.

Kama ilivyo na Cloud Functions, kuna nafasi kwamba programu itategemea siri ambazo zinapatikana wakati wa utekelezaji kupitia mabadiliko ya mazingira. Mabadiliko haya yanahifadhiwa katika faili app.yaml ambayo inaweza kufikiwa kama ifuatavyo:

# List the apps
gcloud app services list
gcloud app services describe <app-name>
# Access via browser to the specified app
gcloud app services browse <app-name>

# Get App versions
gcloud app versions list
# Get all the info of the app and version, included specific verion URL and the env
gcloud app versions describe -s <app-name> <version-id>

# Logs
gcloud app logs tail -s <app-name>

# Instances
## This is only valid if a flexible environment is used and not a standard one
gcloud app instances list
gcloud app instances describe -s <app-name> --version <version-id> <ID>
## Connect to the instance via ssh
gcloud app instances ssh --service <app-name> --version <version-id> <ID>

# Firewalls
gcloud app firewall-rules list
gcloud app firewall-rules describe <num_fw>

# Get domains
gcloud app domain-mappings list
gcloud app domain-mappings describe <name>

# SSl certificates
gcloud app ssl-certificates list
gcloud app ssl-certificates describe <name>

Kuinua Mamlaka

Enum Isiyo na Uthibitisho

Baada ya Kutekeleza

Kudumu

Support HackTricks

Last updated