【しーくれっとかんり】
シークレット管理 とは?
最終更新:
💡 パスワードやAPIキーを安全に守る「金庫番」
パスワード・APIキー・証明書などの機密情報(シークレット)を安全に保管・配布・更新する仕組み。ソースコードや設定ファイルにシークレットを直接書かずに済ませるための基盤。
📌 このページのポイント
- パスワード・APIキー・DBの接続情報などの機密情報を、専用の保管庫で一元管理する
- アプリは実行時に認証を受けてから値を受け取るので、ソースコードや設定ファイルに値を書かずに済む
- AWS Secrets Manager・HashiCorp Vault・Azure Key Vaultなどのツールがある
- 誰がいつ取得・更新したかの記録(監査ログ)と、定期的な更新(ローテーション)が重要な機能
シークレット管理って何で必要なの?設定ファイルに書いておけばよくない?
具体的にどうやって管理するの?
おもしろい!環境変数に入れるのはダメなの?
シークレットのローテーションって面倒じゃない?なんでやるの?
もっと詳しく知りたい人へ
うっかりAPIキーをGitHubにpushしてしまったら、コミットを消せば大丈夫?
消すだけでは不十分です。一度公開されたキーは誰かにコピーされている前提で扱い、まず発行元でキーを無効化して新しいキーに差し替えます。GitHubのドキュメントも、検知したらすぐに認証情報をローテーションするよう案内しており、Gitの履歴からの削除は手間がかかるうえ、無効化済みなら必須でないことも多いと説明しています。GitHubのシークレットスキャンは提携する発行元に検知を通知する仕組みもありますが、すべての種類のキーを検知できるわけではありません。pushの段階で止めるプッシュ保護という機能も用意されています。
📖 おまけ:英語の意味
「Secret Management」 = 秘密の管理
💬 Secret(秘密・機密)をManagement(管理)する。「秘密は金庫に入れて、鍵の持ち主と出し入れを記録しよう」という発想だよ