Serverless Secure Web App(サーバーレス安全ウェブアプリ)

Security

概要

このリポジトリは「Serverless Secure Web App」をTerraformでデプロイするためのサンプル構成です。パブリックなHTTPSエンドポイントにはAPI Gatewayを置き、バックエンドはAWS Lambdaで処理。データはRDS(MySQL/Postgres想定)に保持し、RDSは暗号化されたプライベートサブネット内に配置してインターネットから直接アクセスできないように設計されています。Secrets Managerでデータベース資格情報やシークレットを安全に管理し、AWS WAFによるルールでアプリケーション層の攻撃を緩和します。IAMは最小権限を原則とし、Lambdaの実行ロールやRDSアクセス権限を限定することで冗長な権限付与を避けています。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 3
  • ファイル数: 9
  • メインの言語: HCL

主な特徴

  • API Gateway + Lambda によるサーバーレスAPIアーキテクチャ
  • RDSをプライベートサブネットに配置しネットワーク分離を実現
  • Secrets Manager統合と最小権限IAMポリシーで機密情報とアクセスを保護
  • AWS WAFで外部からの攻撃や不正アクセスを防御

技術的なポイント

このプロジェクトの核は「現実的なセキュリティ対策を取り入れたサーバーレス設計」です。まずネットワーク設計面では、RDSをパブリックに晒さずプライベートサブネット内で稼働させることで、データベースへの直アクセスを防止しています。LambdaからRDSへはVPCエンドポイントや適切なサブネット・セキュリティグループを通じて接続する想定で、ネットワーク境界を明確にしています。認証情報は平文でソースに埋め込まずAWS Secrets Managerに保管し、LambdaはSecrets Managerから動的に資格情報を取得するための最小限のアクセス権のみを付与します。IAMポリシーは「least-privilege」を意識して設計され、Lambda実行ロールやExecution Policyは必要なサービスアクションだけを許可する構成になっています。さらに、API GatewayのエンドポイントにはAWS WAFを適用して、SQLインジェクションやクロスサイト攻撃に対する基本的な防御ルールを導入可能です。インフラ構成はTerraform(HCL)でコード化されており、再現可能な環境構築と変更管理が行えます。運用面では、Secretsやログ(CloudWatch)・監査設定を組み合わせることで、異常検知やトラブルシューティングもしやすい設計となっています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .github: dir
  • .gitignore: file
  • DEPLOYMENT_GUIDE.md: file
  • README.md: file
  • deploy.sh: file

…他 4 ファイル

(補足)ファイル数は合計9で、Terraform(HCL)を用いたコードやデプロイ用スクリプト、デプロイ手順書が含まれています。実際のTerraformモジュールやtfファイル、変数定義、出力などが格納されていることが想定されます。DEPLOYMENT_GUIDE.mdやdeploy.shでデプロイ手順を確認してから実行する運用フローが整備されています。

まとめ

実運用を想定したセキュアなサーバーレス構成の良いリファレンスです。(約50字)

リポジトリ情報: