API セキュリティチェックリスト
認証・認可・暗号化・レート制限など、API を守る実践的セキュリティ対策を網羅する
プロローグ — ある日突然、APIが攻撃された
セキュリティエンジニアのリョウが深夜のインシデントで学ぶ、APIセキュリティの重要性
HTTPS と TLS — 通信を暗号化する
SSL証明書の仕組みからAWS ACMを使った実装、HSTSによる強制化まで、通信セキュリティの基礎を固める
認証の基礎 — 本人確認の仕組み
Basic認証からAPIキー、Bearer Tokenまで、認証方式の選択と安全な実装方法を学ぶ
OAuth 2.0 と OpenID Connect — モダンな認証認可
doorkeepergemを使ったOAuth 2.0サーバーの実装と、OpenID Connectによる認証連携の仕組みを理解する
JWT の正しい使い方 — トークンの落とし穴
署名検証の脆弱性、有効期限の設計、リフレッシュトークンの管理など、JWTを安全に使うための実践的な知識
入力バリデーション — 信頼できないデータから守る
SQLインジェクション、XSS、CSRFなど、悪意のある入力からAPIを守るための多層防御を実装する
レート制限と DDoS 対策 — サービスを守る壁
rack-attackによるレート制限の実装とAWS Shield/WAFを組み合わせたDDoS対策で、サービスの可用性を守る
データの暗号化 — 保存データを守る
AWS KMSとattr_encryptedを使った機密データの暗号化、鍵管理のベストプラクティス、データ分類戦略を学ぶ
ロギングと監査 — 何が起きたかを追跡する
構造化ログ、CloudTrail、監査証跡の実装で、セキュリティインシデントの追跡と法的証拠の保全を実現する
CORS と Same-Origin Policy — ブラウザからのAPI呼び出しを制御する
CORSの仕組みとRailsでの正しい設定方法、プリフライトリクエストの処理、セキュリティを損なわない許可設定を学ぶ
セキュリティテスト — 脆弱性を自動で発見する
Brakeman、OWASP ZAP、Dependabotなどのツールを使って、継続的にセキュリティ脆弱性を発見・修正するパイプラインを構築する
エピローグ — セキュリティは旅である
リョウの6ヶ月間の成長を振り返り、継続的なセキュリティ改善の文化と実践的なチェックリストをまとめる