上下にスクロールするかキーボードの上下キーを使うと、次の学習カードへ進めます。

イントロ

アプリ保護とシークレット管理

入口の防御と秘密情報の保管を分ける

公開アプリでは、外から来る通信を絞るだけでなく、内部で使うパスワードやAPIキーを安全に扱う必要があります。役割を分けて設計します。

定義

アプリ保護とシークレット管理

教科書では
公開アプリへの不正な通信を減らし、パスワードやAPIキーなどの秘密情報を安全に保存・更新する設計。
言いかえると
AWS WAFはWebリクエストの入口を守るサービスです。Secrets ManagerはDBパスワードなどの秘密情報をコードから分離して管理します。
比較
目的代表サービス見る点
入口保護AWS WAFWebリクエスト
秘密情報保存Secrets Managerパスワード
設定値管理Parameter Store設定パラメータ

目的入口保護

代表サービス
AWS WAF
見る点
Webリクエスト

目的秘密情報保存

代表サービス
Secrets Manager
見る点
パスワード

目的設定値管理

代表サービス
Parameter Store
見る点
設定パラメータ

守りたい対象が入口か秘密情報かで、選ぶサービスが変わります。

要点

判断の合図

問題文では、攻撃リクエストを止めたいのか、秘密情報を安全に扱いたいのかを見る。

  1. 1

    入口保護はWAF

  2. 2

    秘密情報はコードに書かない

  3. 3

    更新やローテーションも考える

図解アプリ保護とシークレット管理の設計判断を短いラベルで整理した図
左は外部リクエストの入口、右は内部で使う秘密情報です。何を守る話かでサービスを選びます。
場面
公開WebアプリがRDSに接続する。
順に考えると
攻撃的なWebリクエストはWAFで減らし、RDSのパスワードはコードに直接書かずSecrets Managerに保存します。
ここが結論
入口の防御と秘密情報の管理は、別の設計判断として扱います。
注意

WAFは秘密情報の保管庫ではない

確認

確認テスト

Q1

DBパスワードをアプリコードに直接書かず管理したい場合、最も近いサービスはどれですか。

まとめ

まとめ

  1. 1

    WAFはWeb入口を守る

  2. 2

    Secrets Managerは秘密情報を管理する

  3. 3

    秘密情報はコードに直書きしない

  4. 4

    守る対象でサービスを選ぶ