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)
Google Cloud Platform's (GCP) App Engine є надійною, безсерверною платформою, призначеною для розробки та хостингу веб-додатків у великому масштабі. Дизайн цієї платформи зосереджений на спрощенні процесу розробки та підвищенні керованості додатків. Основні функції та переваги App Engine GCP включають:
Безсерверна архітектура: App Engine автоматично обробляє інфраструктуру, включаючи постачання серверів, конфігурацію та масштабування. Це дозволяє розробникам зосередитися на написанні коду, не турбуючись про апаратне забезпечення.
Автоматичне масштабування: App Engine може автоматично масштабувати ваш додаток у відповідь на обсяг трафіку, який він отримує. Він масштабується вгору для обробки збільшеного трафіку та масштабується вниз, коли трафік зменшується, що допомагає оптимізувати витрати та продуктивність.
Підтримка мов програмування та середовищ виконання: Підтримує популярні мови програмування, такі як Java, Python, Node.js, Go, Ruby, PHP та .NET. Ви можете запускати свої додатки в стандартному або гнучкому середовищі. Стандартне середовище є більш обмеженим, але високо оптимізованим для конкретних мов, тоді як гнучке середовище дозволяє більше налаштувань.
Інтегровані сервіси: App Engine інтегрується з багатьма іншими сервісами GCP, такими як Cloud SQL, Cloud Storage, Cloud Datastore та інші. Ця інтеграція спрощує архітектуру хмарних додатків.
Версійність та розподіл трафіку: Ви можете легко розгортати кілька версій свого додатку, а потім розподілити трафік між ними для A/B тестування або поступового впровадження.
Інсайти про додатки: App Engine надає вбудовані сервіси, такі як ведення журналів, автентифікація користувачів та набір інструментів для розробників для моніторингу та управління додатками.
Безпека: Він пропонує вбудовані функції безпеки, такі як версійність додатків, SSL/TLS сертифікати для безпечних з'єднань та управління ідентифікацією та доступом.
Простий фаєрвол може бути налаштований для екземплярів, що виконують додатки, з наступними опціями:
За замовчуванням обліковий запис служби, що використовується цими додатками, є <proj-name>@appspot.gserviceaccount.com
, який має роль Editor над проектом, а SAs всередині екземпляра APP Engine працюють з обсягом cloud-platform (серед інших).
Вихідний код та метадані автоматично зберігаються в кошиках з іменами, такими як <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)