About

このラボについて

Cloud Security Labは、AWS・Azure・Google Cloud・Kubernetesのセキュリティを手を動かして学ぶハンズオン学習サイトであると同時に、サイト自体をセキュリティエンジニアリングの実践対象として構築しているプロジェクトです。

Philosophy

Build it. Secure it. Validate it.

このサイトのすべてのコンテンツとエンジニアリング判断は、次の3つのステップに基づいています。記事は概念の説明で終わらず、実際に「作り」「守り」「検証する」ところまでを扱います。

01 / Build it

作る

実際に動くアーキテクチャ・コード・インフラを構築する。抽象的な理論ではなく、手を動かして再現できる実装を示す。

02 / Secure it

守る

構築したものに対して、最小権限・IAM設計・シークレット管理・IaCスキャンなどの具体的なセキュリティコントロールを適用する。

03 / Validate it

検証する

設定したコントロールが実際に機能しているかを、スキャン結果・CIのSecurity Gate・手動検証によって確認する。

This site as a lab

サイト自体がセキュリティエンジニアリングのラボ

このサイトは単なる記事の置き場所ではありません。開発からデプロイまでのソフトウェア配信パイプライン全体を、継続的にセキュアにし続けることを目標にしています。

現在の状態: Phase 1 実装済み

GitHub Actionsによるセキュリティスキャン(Gitleaks / Trivy / Semgrep / HTML-CSS-JS Lint)、OIDCベースの短期認証情報によるAmazon S3へのデプロイ自動化、そしてCloudFront + ACM + Route53によるカスタムドメイン・HTTPS配信(Phase 2)が稼働しています。Terraform/Checkov(Phase 3)はこれから実装します。

デプロイを自動化する際は、GitHub Actionsに長期的なAWS認証情報を置かない方針です。代わりにOIDCによる短期認証情報を利用します。

.github/workflows/deploy.yml (excerpt)
permissions:
  id-token: write
  contents: read

steps:
  - uses: aws-actions/configure-aws-credentials@v4
    with:
      role-to-assume: ${{ vars.AWS_ROLE_ARN }}
      aws-region: ${{ vars.AWS_REGION }}
      # No long-lived AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY secrets.
Principles

セキュリティ原則

パイプライン全体を通じて守るべき原則です。IaCスキャンはTerraform導入後のPhase 3で実装予定のため、状態を正直に示しています。

  • 長期認証情報を持たない Implemented

    GitHub ActionsからAWSへのデプロイはOIDCと短期IAMロールで行い、静的なアクセスキーは発行しない。

  • Security Gateでデプロイをブロックする Implemented

    セキュリティスキャンが失敗した場合、ビルド・デプロイのステップに進めないようにGitHub Actions上でゲートする。

  • すべてのPRでシークレットスキャンを行う Implemented

    Gitleaksをプルリクエスト単位で実行し、シークレットの混入をマージ前に検出する。

  • すべてのPRで静的解析を行う Implemented

    Semgrepによるソースコードのセキュリティ解析をCIに組み込む。

  • IaC変更はapply前にスキャンする Planned

    Terraformを導入するPhase 3では、Checkovによるミスコンフィグレーション検出をapply前に必須化する。

Tooling roadmap

セキュリティツールのロードマップ

セキュリティツールとその用途、導入状況
Tool Purpose Status
Trivy Filesystem / dependency scanning Implemented
Gitleaks Secret detection on every PR Implemented
Semgrep Static source code security analysis Implemented
HTML/CSS/JS Linting Front-end code quality checks Implemented
Checkov Terraform / IaC security scanning (Phase 3) Planned
Stack

技術スタック

Today

HTML CSS Vanilla JavaScript Amazon S3 (static hosting) GitHub Actions OIDC Trivy Gitleaks Semgrep CloudFront ACM Route53

Planned

Terraform Checkov