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(GCP)のApp Engineは、大規模なウェブアプリケーションの開発とホスティングに特化した堅牢なサーバーレスプラットフォームです。このプラットフォームの設計は、開発プロセスの効率化とアプリケーションの管理性の向上に焦点を当てています。GCPのApp Engineの主な機能と利点は以下の通りです。
サーバーレスアーキテクチャ: App Engineは、サーバーのプロビジョニング、構成、スケーリングを自動的に処理します。これにより、開発者は基盤となるハードウェアを気にせずにコードを書くことに集中できます。
自動スケーリング: App Engineは、受信するトラフィックの量に応じてアプリケーションを自動的にスケールします。トラフィックが増加するとスケールアップし、トラフィックが減少するとスケールダウンすることで、コストとパフォーマンスを最適化します。
言語とランタイムのサポート: Java、Python、Node.js、Go、Ruby、PHP、.NETなどの人気プログラミング言語をサポートしています。アプリケーションは標準環境または柔軟環境で実行できます。標準環境は制約が多いですが特定の言語に最適化されており、柔軟環境はより多くのカスタマイズが可能です。
統合サービス: App Engineは、Cloud SQL、Cloud Storage、Cloud Datastoreなどの他の多くのGCPサービスと統合されています。この統合により、クラウドベースのアプリケーションのアーキテクチャが簡素化されます。
バージョン管理とトラフィックスプリッティング: アプリケーションの複数のバージョンを簡単にデプロイし、A/Bテストや段階的なロールアウトのためにトラフィックを分割できます。
アプリケーションインサイト: App Engineは、ログ記録、ユーザー認証、アプリケーションの監視と管理のための開発者ツールのスイートなどの組み込みサービスを提供します。
セキュリティ: アプリケーションのバージョン管理、SSL/TLS証明書による安全な接続、アイデンティティとアクセス管理などの組み込みセキュリティ機能を提供します。
アプリを実行しているインスタンスのために、以下のオプションでシンプルなファイアウォールを構成できます。
これらのアプリで使用されるデフォルトのサービスアカウントは、<proj-name>@appspot.gserviceaccount.com
であり、プロジェクトに対してEditorロールを持ち、APP Engineインスタンス内のSAはcloud-platformスコープ(他のスコープも含む)で実行されます。
ソースコードとメタデータは、<proj-id>.appspot.com
やstaging.<proj-id>.appspot.com
、<country>.<proj-id>.appspot.com
などの名前のバケットに自動的に保存されます。
アプリのすべてのファイルは、コンテンツのsha1をファイル名として保存されます:
staging.<proj-id>.appspot.com
のae
フォルダー内には、バージョンごとに1つのフォルダーが存在し、ソースコードファイルとアプリのコンポーネントを説明するmanifest.json
ファイルがあります:
ウェブアプリは最終的にコンテナ内で実行され、Code Buildがコンテナをビルドするために使用されます。
デフォルトのウェブページはURL <project-uniq-name>.appspot.com
で公開されますが、古いバージョンのURLは少し異なり、例えば https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com
になります(最初のタイムスタンプに注意)。
1つのリージョンに対して1つのアプリエンジンウェブアプリケーションしかデプロイできないように見えるかもしれませんが、app.yml
に service: <servicename>
を指定することで新しいサービス(新しいウェブ)を作成することが可能です。この新しいウェブのURLの形式は <servicename>-dot-<project-uniq-name>.appspot.com
になります。
新しいコードをアプリにアップロードするたびに、新しいバージョンが作成されます。すべてのバージョンが保存され、それらにアクセスするためのURLがあります。したがって、古いバージョンのコードを変更することは優れた永続性技術となる可能性があります。
Cloud Functionsと同様に、アプリケーションが実行時に環境変数を介してアクセスされる秘密に依存する可能性があります。これらの変数は**app.yaml
** ファイルに保存されており、次のようにアクセスできます:
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)