【しーくれっとかんり】
シークレット管理 とは?
💡 パスワードやAPIキーを安全に守る「金庫番」
📌 このページのポイント
- パスワード・APIキー・DBの接続情報などの機密情報を一元管理する
- ソースコードや設定ファイルにシークレットを直接書かずに済む
- AWS Secrets Manager・HashiCorp Vault・Azure Key Vaultなどのツールがある
- シークレットの自動ローテーション(定期的な更新)も重要な機能
シークレット管理って何で必要なの?設定ファイルに書いておけばよくない?
具体的にどうやって管理するの?
おもしろい!環境変数に入れるのはダメなの?
シークレットのローテーションって面倒じゃない?なんでやるの?
ここがシークレット管理の中でも運用上一番やっかいなところでね。パスワードを定期的に変更するのは「漏洩していた場合の被害期間を限定する」ためなんだけど、実際にローテーションするとアプリの接続が切れるリスクがある。AWS Secrets ManagerはRDSのパスワードを自動ローテーションできるけど、そのタイミングでアプリが古いパスワードでDBに接続しようとして失敗するケースがある。「シークレット取得のキャッシュ期間」と「ローテーション間隔」のタイミングがずれると障害になるんだ。ダウンタイムなしのローテーションは「デュアルシークレット(新旧両方を一定期間有効にする)」パターンで対処するんだけど、これを全システムで統一的に実装するのは地味に難しいんだよ。
📖 おまけ:英語の意味
「Secret Management」 = 秘密の管理
💬 Secret(秘密・機密)をManagement(管理)する。「秘密は金庫に入れよう」という発想だよ