サービスは、DBのパスワードや外部サービスのAPIキーなど、見られてはいけない秘密を持っています。その扱い方の基本です。
初級の解説は準備中のため、初級の内容を表示しています。
概要 — まず全体をつかむ
詳細 — 1段階ずつ追う
なぜ気をつける?
秘密の鍵が漏れると、DBの中身を抜かれたり、外部サービスを勝手に使われて課金されたり——被害が直接的です。特に、コードに直書きしたり、フロント(ブラウザ)に置くのは危険。リポジトリやブラウザから簡単に読まれます。
アニメーション『秘密情報の扱い(隔離)』を開く
どう扱う?
- コードの外に置く — 環境変数や、専用のシークレット管理(シークレットマネージャ)に保管し、コードからは参照だけする
- リポジトリに入れない —
.gitignoreで秘密ファイルを除外。うっかり混入を防ぐ仕組みも入れる - フロントに置かない — ブラウザに配るコードは全部読まれる前提
- ローテーション — 定期的に、また漏れたら即、鍵を新しくする
⚠️ 気をつける
- リポジトリへの混入 — 一度でも公開されたら「漏れた」扱い。無効化&差し替える
- ログに秘密を出す — エラーログにトークンを出さない
- 共有しすぎ — 1つの鍵を広く使い回すと、漏れたときの被害が大きい
理解度チェック
そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。
問1. 秘密の鍵がうっかり公開リポジトリに入ってしまったとき、最初にやるべきは?
問2. APIキーやDBパスワードの置き場所として安全なのは?
問3. コードに秘密(APIキーやパスワード)を直書きすると危険な主な理由は?
問4. フロント(ブラウザに配るコード)に鍵を置いてはいけない理由は?
問5. 1つの鍵を広くあちこちで使い回すと 何が問題になりやすい?
問6. エラーログと秘密の扱いで正しいのはどれ?
問7. 定期的に また漏れたら即 鍵を新しいものに取り替えることを カタカナで何と呼ぶ?
問8. 秘密ファイルをリポジトリに含めないよう 除外設定を書くファイルの名前は?