GCP - App Engine Enum
Grundlegende Informationen
Google Cloud Platform's (GCP) App Engine ist eine robuste, serverlose Plattform, die für die Entwicklung und das Hosting von Webanwendungen im großen Maßstab entwickelt wurde. Das Design dieser Plattform konzentriert sich darauf, den Entwicklungsprozess zu vereinfachen und die Verwaltung von Anwendungen zu verbessern. Die Hauptmerkmale und Vorteile von GCP's App Engine umfassen:
Serverlose Architektur: App Engine verwaltet automatisch die Infrastruktur, einschließlich Serverbereitstellung, Konfiguration und Skalierung. Dies ermöglicht es Entwicklern, sich auf das Schreiben von Code zu konzentrieren, ohne sich um die zugrunde liegende Hardware kümmern zu müssen.
Automatische Skalierung: App Engine kann Ihre Anwendung automatisch in Abhängigkeit vom eingehenden Datenverkehr skalieren. Es skaliert nach oben, um erhöhten Datenverkehr zu bewältigen, und skaliert nach unten, wenn der Datenverkehr abnimmt, was zur Optimierung von Kosten und Leistung beiträgt.
Unterstützung von Sprachen und Laufzeiten: Es unterstützt beliebte Programmiersprachen wie Java, Python, Node.js, Go, Ruby, PHP und .NET. Sie können Ihre Anwendungen in einer Standard- oder einer flexiblen Umgebung ausführen. Die Standardumgebung ist restriktiver, aber hochoptimiert für bestimmte Sprachen, während die flexible Umgebung mehr Anpassungsmöglichkeiten bietet.
Integrierte Dienste: App Engine integriert sich mit vielen anderen GCP-Diensten wie Cloud SQL, Cloud Storage, Cloud Datastore und mehr. Diese Integration vereinfacht die Architektur cloudbasierter Anwendungen.
Versionierung und Traffic-Splitting: Sie können problemlos mehrere Versionen Ihrer Anwendung bereitstellen und den Datenverkehr zwischen ihnen aufteilen, um A/B-Tests oder schrittweise Rollouts durchzuführen.
Anwendungs-Einblicke: App Engine bietet integrierte Dienste wie Protokollierung, Benutzerauthentifizierung und eine Suite von Entwicklerwerkzeugen zur Überwachung und Verwaltung von Anwendungen.
Sicherheit: Es bietet integrierte Sicherheitsfunktionen wie Anwendungsverversionierung, SSL/TLS-Zertifikate für sichere Verbindungen und Identitäts- und Zugriffsmanagement.
Firewall
Eine einfache Firewall kann für die Instanzen, auf denen die Apps laufen, mit den folgenden Optionen konfiguriert werden:
SA
Das Standard-Servicekonto, das von diesen Apps verwendet wird, ist <proj-name>@appspot.gserviceaccount.com
, das die Editor-Rolle über das Projekt hat, und die SAs innerhalb der APP Engine-Instanz laufen mit cloud-platform scope (unter anderem).
Storage
Der Quellcode und die Metadaten werden automatisch in Buckets gespeichert mit Namen wie <proj-id>.appspot.com
und staging.<proj-id>.appspot.com
und <country>.<proj-id>.appspot.com
Jede Datei der App wird mit dem sha1 des Inhalts als Dateiname gespeichert:
Im ae
-Ordner von staging.<proj-id>.appspot.com
existiert ein Ordner pro Version mit den Quellcodedateien und der manifest.json
-Datei, die die Komponenten der App beschreibt:
Containers
Die Web-App wird letztendlich in einem Container ausgeführt und Code Build wird verwendet, um den Container zu erstellen.
URLs & Regionen
Die Standard-Webseite wird unter der URL <project-uniq-name>.appspot.com
verfügbar sein, obwohl die URL älterer Versionen leicht unterschiedlich sein wird, wie https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com
(beachten Sie den initialen Zeitstempel).
Es könnte so aussehen, als ob es nur möglich ist, 1 App Engine-Webanwendung pro Region bereitzustellen, aber es ist möglich, service: <servicename>
in der app.yml
anzugeben und einen neuen Dienst (ein neues Web) zu erstellen. Das Format der URL für dieses neue Web wird <servicename>-dot-<project-uniq-name>.appspot.com
sein.
Aufzählung
Jedes Mal, wenn Sie neuen Code in die App hochladen, wird eine neue Version erstellt. Alle Versionen werden gespeichert und sie haben sogar eine URL, um auf sie zuzugreifen. Das Ändern des Codes einer alten Version könnte also eine großartige Persistenztechnik sein.
Wie bei Cloud Functions besteht die Möglichkeit, dass die Anwendung auf Geheimnisse angewiesen ist, die zur Laufzeit über Umgebungsvariablen abgerufen werden. Diese Variablen werden in einer app.yaml
-Datei gespeichert, die wie folgt zugänglich ist:
Privilegieneskalation
GCP - AppEngine PrivescUnauthentifizierte Enum
GCP - App Engine Unauthenticated EnumPost Exploitation
GCP - App Engine Post ExploitationPersistenz
GCP - App Engine PersistenceLast updated