GCP - App Engine Enum
基本情報
Google Cloud Platform(GCP)のApp Engineは、大規模なWebアプリケーションの開発とホスティングに特化した堅牢なサーバーレスプラットフォームです。このプラットフォームの設計は、開発プロセスの合理化とアプリケーションの管理性の向上に焦点を当てています。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証明書、アイデンティティおよびアクセス管理など、組み込みのセキュリティ機能を提供しています。
ファイアウォール
次のオプションで、アプリケーションを実行しているインスタンスに対して簡単なファイアウォールを構成できます:
SA
これらのアプリで使用されるデフォルトのサービスアカウントは、<proj-name>@appspot.gserviceaccount.com
であり、プロジェクトとAPP Engineインスタンス内のSAsにはcloud-platform
スコープで実行される Editorロールが付与されています。
ストレージ
ソースコードとメタデータは、<proj-id>.appspot.com
、staging.<proj-id>.appspot.com
、<country>.<proj-id>.appspot.com
などの名前のバケットに自動的に保存されます。
アプリのすべてのファイルは、コンテンツのsha1をファイル名として保存されます:
staging.<proj-id>.appspot.com
の**ae
フォルダ内には、バージョンごとに1つのフォルダが存在し、ソースコードファイルとアプリのコンポーネントを記述するmanifest.json
**ファイルが含まれています。
コンテナ
Webアプリは最終的にはコンテナ内で実行され、Code Buildがコンテナをビルドするために使用されます。
URLとリージョン
デフォルトのWebページはURL <project-uniq-name>.appspot.com
で公開されますが、古いバージョンのURLは少し異なります。例えば、https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com
(初期のタイムスタンプに注意)。
1つのアプリケーションエンジンWebアプリケーションを1つのリージョンにデプロイすることしかできないように見えるかもしれませんが、**app.yml
でservice: <servicename>
を指定し、新しいサービス(新しいWeb)を作成することができます。この新しいWebのURL形式は<servicename>-dot-<project-uniq-name>.appspot.com
**になります。
列挙
Appに新しいコードをアップロードするたびに、新しいバージョンが作成されます。すべてのバージョンが保存され、それぞれにアクセスするためのURLがあります。したがって、古いバージョンのコードを変更することは優れた持続性テクニックとなり得ます。
Cloud Functionsと同様に、アプリケーションが実行時に環境変数を介してアクセスされる秘密に依存する可能性があります。これらの変数は**app.yaml
**ファイルに保存されており、次のようにアクセスできます:
特権昇格
pageGCP - AppEngine Privesc認証なし列挙
pageGCP - App Engine Unauthenticated Enum攻撃後の利用
pageGCP - App Engine Post Exploitation永続化
pageGCP - App Engine Persistence最終更新