GCP - App Engine Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Η App Engine της Google Cloud Platform (GCP) είναι μια ισχυρή, serverless πλατφόρμα προσαρμοσμένη για την ανάπτυξη και φιλοξενία διαδικτυακών εφαρμογών σε μεγάλη κλίμακα. Ο σχεδιασμός αυτής της πλατφόρμας επικεντρώνεται στην απλοποίηση της διαδικασίας ανάπτυξης και στη βελτίωση της διαχειρισιμότητας των εφαρμογών. Τα κύρια χαρακτηριστικά και οφέλη της App Engine της GCP περιλαμβάνουν:
Serverless Αρχιτεκτονική: Η App Engine διαχειρίζεται αυτόματα την υποδομή, συμπεριλαμβανομένης της προμήθειας διακομιστών, της διαμόρφωσης και της κλιμάκωσης. Αυτό επιτρέπει στους προγραμματιστές να επικεντρώνονται στη συγγραφή κώδικα χωρίς να ανησυχούν για το υποκείμενο υλικό.
Αυτόματη Κλιμάκωση: Η App Engine μπορεί να κλιμακώσει αυτόματα την εφαρμογή σας σε απάντηση στην ποσότητα της κίνησης που λαμβάνει. Κλιμακώνει προς τα πάνω για να διαχειριστεί την αυξημένη κίνηση και κλιμακώνει προς τα κάτω όταν η κίνηση μειώνεται, βοηθώντας στη βελτιστοποίηση του κόστους και της απόδοσης.
Υποστήριξη Γλωσσών και Runtime: Υποστηρίζει δημοφιλείς γλώσσες προγραμματισμού όπως Java, Python, Node.js, Go, Ruby, PHP και .NET. Μπορείτε να εκτελέσετε τις εφαρμογές σας σε ένα τυπικό ή σε ένα ευέλικτο περιβάλλον. Το τυπικό περιβάλλον είναι πιο περιοριστικό αλλά εξαιρετικά βελτιστοποιημένο για συγκεκριμένες γλώσσες, ενώ το ευέλικτο περιβάλλον επιτρέπει περισσότερη προσαρμογή.
Ενσωματωμένες Υπηρεσίες: Η App Engine ενσωματώνεται με πολλές άλλες υπηρεσίες GCP, όπως Cloud SQL, Cloud Storage, Cloud Datastore και άλλες. Αυτή η ενσωμάτωση απλοποιεί την αρχιτεκτονική των εφαρμογών που βασίζονται στο cloud.
Versioning και Διαχωρισμός Κίνησης: Μπορείτε εύκολα να αναπτύξετε πολλές εκδόσεις της εφαρμογής σας και στη συνέχεια να διαχωρίσετε την κίνηση μεταξύ τους για A/B testing ή σταδιακή κυκλοφορία.
Εφαρμογές Insights: Η App Engine παρέχει ενσωματωμένες υπηρεσίες όπως καταγραφή, αυθεντικοποίηση χρηστών και μια σουίτα εργαλείων προγραμματιστών για την παρακολούθηση και τη διαχείριση εφαρμογών.
Ασφάλεια: Προσφέρει ενσωματωμένα χαρακτηριστικά ασφαλείας όπως versioning εφαρμογών, SSL/TLS πιστοποιητικά για ασφαλείς συνδέσεις και διαχείριση ταυτότητας και πρόσβασης.
Ένας απλός firewall μπορεί να ρυθμιστεί για τις περιπτώσεις που εκτελούν τις εφαρμογές με τις εξής επιλογές:
Ο προεπιλεγμένος λογαριασμός υπηρεσίας που χρησιμοποιείται από αυτές τις εφαρμογές είναι <proj-name>@appspot.gserviceaccount.com
που έχει ρόλο Editor πάνω στο έργο και οι SA μέσα στην περίπτωση APP Engine εκτελούνται με πεδίο cloud-platform (μεταξύ άλλων).
Ο πηγαίος κώδικας και τα μεταδεδομένα αποθηκεύονται αυτόματα σε buckets με ονόματα όπως <proj-id>.appspot.com
και staging.<proj-id>.appspot.com
και <country>.<proj-id>.appspot.com
Κάθε αρχείο της εφαρμογής αποθηκεύεται με το sha1 του περιεχομένου ως όνομα αρχείου:
Μέσα στον ae
φάκελο από το staging.<proj-id>.appspot.com
, υπάρχει ένας φάκελος ανά έκδοση με τα αρχεία πηγαίου κώδικα και το manifest.json
αρχείο που περιγράφει τα συστατικά της εφαρμογής:
Η διαδικτυακή εφαρμογή θα εκτελείται τελικά μέσα σε ένα κοντέινερ και το Code Build χρησιμοποιείται για να κατασκευάσει το κοντέινερ.
Η προεπιλεγμένη διαδικτυακή σελίδα θα εκτεθεί στη διεύθυνση URL <project-uniq-name>.appspot.com
αν και η διεύθυνση URL των παλαιότερων εκδόσεων θα είναι ελαφρώς διαφορετική, όπως https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com
(σημειώστε την αρχική χρονοσήμανση).
Μπορεί να φαίνεται ότι είναι δυνατό να αναπτύξετε μόνο 1 εφαρμογή app engine ανά περιοχή, αλλά είναι δυνατό να δηλώσετε service: <servicename>
στο app.yml
και να δημιουργήσετε μια νέα υπηρεσία (μια νέα διαδικτυακή εφαρμογή). Η μορφή της διεύθυνσης URL για αυτή τη νέα διαδικτυακή εφαρμογή θα είναι <servicename>-dot-<project-uniq-name>.appspot.com
.
Κάθε φορά που ανεβάζετε νέο κώδικα στην Εφαρμογή, δημιουργείται μια νέα έκδοση. Όλες οι εκδόσεις αποθηκεύονται και έχουν ακόμη και μια διεύθυνση URL για πρόσβαση σε αυτές. Έτσι, η τροποποίηση του κώδικα μιας παλαιότερης έκδοσης θα μπορούσε να είναι μια καλή τεχνική επιμονής.
Όπως με τις Cloud Functions, υπάρχει πιθανότητα η εφαρμογή να βασίζεται σε μυστικά που προσπελάζονται κατά την εκτέλεση μέσω μεταβλητών περιβάλλοντος. Αυτές οι μεταβλητές αποθηκεύονται σε ένα αρχείο app.yaml
το οποίο μπορεί να προσπελαστεί ως εξής:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)