GCP - App Engine Enum
Last updated
Last updated
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
Google Cloud Platform (GCP) 的 App Engine 是一个 强大、无服务器的平台,专为大规模开发和托管 web 应用程序而设计。该平台的设计旨在简化开发过程并增强应用程序的可管理性。GCP 的 App Engine 的主要特性和优势包括:
无服务器架构: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
,该帐户在项目中具有 编辑者 角色,并且 APP Engine 实例中的服务帐户 以 cloud-platform 范围(以及其他范围)运行。
源代码和元数据 自动存储在名为 <proj-id>.appspot.com
和 staging.<proj-id>.appspot.com
以及 <country>.<proj-id>.appspot.com
的存储桶中。
每个文件 的名称为 内容的 sha1:
在 staging.<proj-id>.appspot.com
的 ae
文件夹中,每个版本都有一个文件夹,其中包含 源代码 文件和 manifest.json
文件,该文件 描述了应用程序的组件:
网络应用最终将在容器内执行,并且Code Build用于构建容器。
默认网页将暴露在 URL <project-uniq-name>.appspot.com
,尽管旧版本的 URL 会略有不同,例如 https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com
(注意初始时间戳)。
看起来每个区域只能部署一个应用引擎网络应用,但可以在 app.yml
中指明 service: <servicename>
并创建一个新服务(一个新网络)。这个新网络的 URL 格式将是 <servicename>-dot-<project-uniq-name>.appspot.com
。
每次您向应用上传新代码时,都会创建一个新版本。所有版本都被存储,并且它们甚至有一个访问它们的 URL。因此,修改旧版本的代码可能是一种很好的持久性技术。
与 Cloud Functions 一样,应用可能依赖于在运行时通过环境变量访问的秘密。这些变量存储在 app.yaml
文件中,可以通过以下方式访问:
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)