# 秘密情報の扱い — 鍵やパスワードを隠す

> レベル: 初級 ／ 対象: 大人
> 出典: Kotowary — https://kotowary.com/learn/units/secret-management?level=beginner&audience=adult
サービスは、DBのパスワードや外部サービスのAPIキーなど、**見られてはいけない秘密**を持っています。その扱い方の基本です。

## なぜ気をつける？

秘密の鍵が漏れると、DBの中身を抜かれたり、外部サービスを勝手に使われて課金されたり——被害が直接的です。特に、**コードに直書き**したり、**フロント（ブラウザ）に置く**のは危険。リポジトリやブラウザから簡単に読まれます。

::diagram{name="secret-management"}

## どう扱う？

1. **コードの外に置く** — 環境変数や、専用の**シークレット管理**（シークレットマネージャ）に保管し、コードからは参照だけする
2. **リポジトリに入れない** — `.gitignore` で秘密ファイルを除外。うっかり混入を防ぐ仕組みも入れる
3. **フロントに置かない** — ブラウザに配るコードは全部読まれる前提
4. **ローテーション** — 定期的に、また漏れたら即、鍵を新しくする

## ⚠️ 気をつける

- **リポジトリへの混入** — 一度でも公開されたら「漏れた」扱い。無効化＆差し替える
- **ログに秘密を出す** — エラーログにトークンを出さない
- **共有しすぎ** — 1つの鍵を広く使い回すと、漏れたときの被害が大きい
