Skip to content

Security: ug23/devcafe

Security

docs/security.md

セキュリティガイド

絶対に公開してはいけないファイル

以下のファイルは.gitignoreに含まれており、コミットしないように注意してください。

  • .env - 環境変数(PAT、認証情報を含む)
  • terraform.tfvars - Terraform変数(機密情報を含む)
  • *.tfstate - Terraformステートファイル
  • .terraform/ - Terraformプロバイダー
  • *.pem, *.key - SSH鍵
  • .git-credentials - Git認証情報
  • .port-forward.* - ポートフォワーディング関連ファイル

セキュリティベストプラクティス

Personal Access Token (PAT)

  • 最小限の権限のみ付与
  • 定期的にローテーション
  • 使用しない時は無効化

AWS認証情報

  • IAMユーザーには最小限の権限のみ付与
  • MFAを有効化
  • アクセスキーの定期的なローテーション

SSM接続のメリット

  • SSHキーの管理不要
  • セキュリティグループでのポート開放不要
  • セッションの監査ログがCloudTrailに記録

ネットワークセキュリティ

  • セキュリティグループはアウトバウンドのみ許可
  • インバウンドポートはすべてブロック
  • VPCとサブネットを適切に設定

Anthropic APIキー

  • GitHub PATと同様、anthropic_api_keyはEC2のuser_data/インスタンスメタデータに残る
  • インスタンスを起動したAWSアカウントでアクセス権を持つ人であれば読み取れるため、GitHub PATと同じ信頼レベルとして扱う
  • 不要になったらAnthropic Consoleで無効化・ローテーションする

プロジェクト固有セットアップ(.devcafe/setup.sh

  • TF_VAR_github_repo_urlで指定したリポジトリに.devcafe/setup.shがあると、ubuntuユーザーの権限で自動実行される
  • 自分が管理していない、あるいは信頼できないリポジトリのクローンURLは指定しない

推奨IAMポリシー

最小権限の原則に基づき、以下の権限のみを付与することを推奨します。

  • EC2: スポットインスタンスの作成・管理
  • VPC: ネットワーク設定の管理
  • SSM: Session Manager接続
  • Lambda: 自動削除機能
  • CloudWatch Events: スケジュール管理

There aren't any published security advisories