GCP - App Engine Enum
Podstawowe informacje
Platforma Google Cloud Platform's (GCP) App Engine to wydajna, serwerowa platforma zaprojektowana do tworzenia i hostowania aplikacji internetowych na dużą skalę. Projekt tej platformy skupia się na usprawnianiu procesu tworzenia i zwiększaniu zarządzalności aplikacji. Główne cechy i korzyści z korzystania z GCP App Engine to:
Architektura serwerowa: App Engine automatycznie zarządza infrastrukturą, w tym dostarczaniem serwerów, konfiguracją i skalowaniem. Pozwala to programistom skupić się na pisaniu kodu, nie martwiąc się o sprzęt podstawowy.
Automatyczne skalowanie: App Engine może automatycznie skalować Twoją aplikację w odpowiedzi na ilość ruchu, jaki otrzymuje. Skaluje się w górę, aby obsłużyć zwiększony ruch, a następnie zmniejsza skalę, gdy ruch maleje, co pomaga zoptymalizować koszty i wydajność.
Wsparcie dla języków i środowisk wykonawczych: Obsługuje popularne języki programowania, takie jak Java, Python, Node.js, Go, Ruby, PHP i .NET. Możesz uruchamiać aplikacje w środowisku standardowym lub elastycznym. Środowisko standardowe jest bardziej restrykcyjne, ale zoptymalizowane pod kątem konkretnych języków, podczas gdy środowisko elastyczne pozwala na większą personalizację.
Zintegrowane usługi: App Engine integruje się z wieloma innymi usługami GCP, takimi jak Cloud SQL, Cloud Storage, Cloud Datastore i innymi. Ta integracja upraszcza architekturę aplikacji opartych na chmurze.
Wersjonowanie i podział ruchu: Możesz łatwo wdrażać wiele wersji swojej aplikacji, a następnie dzielić ruch między nimi do testów A/B lub stopniowych wdrożeń.
Insights aplikacji: App Engine zapewnia wbudowane usługi, takie jak logowanie, uwierzytelnianie użytkowników oraz zestaw narzędzi deweloperskich do monitorowania i zarządzania aplikacjami.
Bezpieczeństwo: Oferuje wbudowane funkcje bezpieczeństwa, takie jak wersjonowanie aplikacji, certyfikaty SSL/TLS dla bezpiecznych połączeń oraz zarządzanie tożsamością i dostępem.
Zapora sieciowa
Dla instancji uruchamianych w aplikacjach można skonfigurować prostą zapórę sieciową z następującymi opcjami:
SA
Domyślnym kontem usługi używanym przez te aplikacje jest <proj-name>@appspot.gserviceaccount.com
, które ma rolę Edytora w projekcie, a konta usług w instancji APP Engine działają z zakresem cloud-platform (między innymi).
Przechowywanie
Kod źródłowy i metadane są automatycznie przechowywane w kubełkach o nazwach takich jak <proj-id>.appspot.com
oraz staging.<proj-id>.appspot.com
i <country>.<proj-id>.appspot.com
Każdy plik aplikacji jest przechowywany pod nazwą pliku z sha1 treści:
Wewnątrz folderu ae
z staging.<proj-id>.appspot.com
, istnieje jeden folder na wersję zawierający pliki kodu źródłowego oraz plik manifest.json
, który opisuje składniki aplikacji:
Kontenery
Aplikacja internetowa będzie ostatecznie wykonana wewnątrz kontenera i Code Build jest używany do budowania kontenera.
Adresy URL i Regiony
Domyślna strona internetowa będzie udostępniona pod adresem URL <project-uniq-name>.appspot.com
, chociaż adres URL starszych wersji będzie nieco inny, na przykład https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com
(zauważ początkowy znacznik czasu).
Może się wydawać, że można wdrożyć tylko 1 aplikację internetową App Engine na region, ale można wskazać service: <servicename>
w pliku app.yml
i utworzyć nową usługę (nową stronę internetową). Format adresu URL dla tej nowej strony internetowej będzie <servicename>-dot-<project-uniq-name>.appspot.com
.
Wyliczanie
Za każdym razem, gdy przesyłasz nowy kod do aplikacji, tworzona jest nowa wersja. Wszystkie wersje są przechowywane i mają nawet adres URL do nich. Modyfikacja kodu starej wersji może być doskonałą techniką trwałości.
Podobnie jak w przypadku funkcji chmurowych, istnieje szansa, że aplikacja będzie polegać na tajemnicach, do których uzyskuje się dostęp w czasie wykonywania poprzez zmienne środowiskowe. Te zmienne są przechowywane w pliku app.yaml
, do którego można uzyskać dostęp w następujący sposób:
Eskalacja uprawnień
pageGCP - AppEngine PrivescEnumeracja bez uwierzytelnienia
pageGCP - App Engine Unauthenticated EnumPo wykorzystaniu
pageGCP - App Engine Post ExploitationUtrzymanie dostępu
pageGCP - App Engine PersistenceLast updated