クラウドセキュリティ

Secrets Manager しーくれっつまねーじゃー

シークレット管理認証情報APIキーパスワード管理ローテーションAWS
Secrets Managerについて教えて

簡単に言うとこんな感じ!

パスワードやAPIキーなどの「秘密の情報」を安全に保管・管理してくれる金庫番サービスだよ!アプリのソースコードに直接パスワードを書かなくて済むようになるし、定期的に自動で鍵の交換もやってくれる便利なやつなんだ!


Secrets Managerとは

Secrets Managerとは、アプリケーションやシステムが使うパスワード・APIキー・データベース接続文字列・暗号鍵などの「秘密情報(シークレット)」を一元管理するサービスのことです。代表的なものにAWSのAWS Secrets Manager、HashiCorp Vault、Azure Key Vaultなどがあります。

従来、開発者は「データベースのパスワード」などをソースコードの設定ファイルにそのまま書き込んでしまいがちでした。これはソースコードが流出した途端にシステム全体が乗っ取られるという深刻なリスクを持っています。Secrets Managerはこの問題を根本から解決するために生まれました。

アプリケーションは「パスワードをファイルに書いておく」のではなく、「Secrets Managerに問い合わせて、その都度取得する」という仕組みに変わります。これにより、秘密情報がコードやログに混入するリスクを大幅に下げることができ、さらに「定期的なパスワード変更(ローテーション)」も自動化できます。


Secrets Managerの仕組みと役割

機能説明
安全な保管秘密情報を暗号化した状態で専用ストレージに保存
アクセス制御「誰がどのシークレットを取得できるか」をポリシーで細かく制御
自動ローテーション一定期間ごとにパスワードを自動で更新・切り替え
監査ログ「誰がいつ何のシークレットを取得したか」を記録
バージョン管理シークレットの変更履歴を保持し、ロールバック可能

覚え方:「金庫番ロボット」

Secrets Managerは「賢い金庫番ロボット」と覚えよう。

  • 🔒 金庫:シークレットを暗号化して安全に保管
  • 🤖 ロボット:パスワードの自動更新(ローテーション)まで自動でやってくれる
  • 📋 番人:誰がいつアクセスしたか記録して監査できる

主なシークレットの種類

シークレットの種類具体例
データベース認証情報DBのユーザー名+パスワード
APIキー外部サービスへの接続キー(決済、地図など)
OAuthトークンソーシャルログイン用のトークン
SSH秘密鍵サーバーへのリモートアクセス用
接続文字列mysql://user:pass@host/db のような形式

歴史と背景

  • 2000年代前半:設定ファイル(.envconfig.xml など)にパスワードをベタ書きするのが「普通」の時代。コード管理は雑だった
  • 2010年代前半:GitHubなどの普及でソースコードが外部公開されやすくなり、パスワードの誤コミット問題が頻発。「APIキーがGitHubに流出した」事件が相次ぐ
  • 2013年頃〜:HashiCorp Vaultが登場。エンタープライズ向けのシークレット管理基盤として注目される
  • 2018年AWS Secrets Managerリリース。クラウドサービスとして手軽にシークレット管理が使えるようになり、一気に普及
  • 2019年〜現在:Azure Key Vault、Google Cloud Secret Managerも成熟。DevSecOps(開発・セキュリティ・運用の統合)の観点から、シークレット管理は現代のシステム開発の必須要素として定着

従来方式との比較と動作フロー

従来の「ベタ書き」vs Secrets Manager

❌ 従来の方式(ベタ書き) config.yml: db_password: "P@ssw0rd123" api_key: "sk-abcd1234efgh" secret: "super_secret_key" アプリケーション 読み込み ⚠️ リスク • GitHubに誤ってpushすると流出 • ログにパスワードが混入する • 変更するたびに全員に連絡必要 • 誰が知っているか管理できない ✅ Secrets Manager方式 アプリケーション 問い合わせ 🔒 Secrets Manager 暗号化ストレージ 返却 ✅ メリット • コードにパスワードが一切ない • 自動ローテーションで定期更新 • アクセスログで監査が容易 • 権限管理で必要な人だけ取得可

代表的なサービス比較

サービス名提供元特徴
AWS Secrets ManagerAmazonRDSなどAWSサービスとの自動ローテーション連携が強力
Azure Key VaultMicrosoft証明書・暗号鍵管理も統合。Azure ADとの親和性が高い
Google Cloud Secret ManagerGoogleシンプルで使いやすい。GCPリソースとの統合が容易
HashiCorp VaultHashiCorpマルチクラウド・オンプレ対応。最も柔軟だが設定が複雑

関連する規格・RFC

規格・RFC番号内容
NIST SP 800-57暗号鍵管理のガイドライン。シークレットのライフサイクル管理の基本方針
OWASP A02:2021「暗号化の失敗」。ハードコードされたパスワードが典型的な脆弱性として挙げられている
CIS Benchmarkクラウド環境のセキュリティ設定基準。Secrets Manager利用を推奨する項目が多い

関連用語

  • IAM(Identity and Access Management) — 誰がどのリソースにアクセスできるかを管理する仕組み。Secrets Managerと組み合わせて「誰がどのシークレットを取得できるか」を制御する
  • 暗号化 — シークレットを保管・転送する際の基礎技術
  • DevSecOps — 開発・運用・セキュリティを統合するアプローチ。Secrets Manager活用はその中核
  • 環境変数 — アプリケーションに設定値を渡す従来の方法。パスワードを環境変数に入れることの危険性を理解する上でセットで知っておきたい
  • ゼロトラスト — 「何も信頼し