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年代前半:設定ファイル(
.env、config.xmlなど)にパスワードをベタ書きするのが「普通」の時代。コード管理は雑だった - 2010年代前半:GitHubなどの普及でソースコードが外部公開されやすくなり、パスワードの誤コミット問題が頻発。「APIキーがGitHubに流出した」事件が相次ぐ
- 2013年頃〜:HashiCorp Vaultが登場。エンタープライズ向けのシークレット管理基盤として注目される
- 2018年:AWS Secrets Managerがリリース。クラウドサービスとして手軽にシークレット管理が使えるようになり、一気に普及
- 2019年〜現在:Azure Key Vault、Google Cloud Secret Managerも成熟。DevSecOps(開発・セキュリティ・運用の統合)の観点から、シークレット管理は現代のシステム開発の必須要素として定着
従来方式との比較と動作フロー
従来の「ベタ書き」vs Secrets Manager
代表的なサービス比較
| サービス名 | 提供元 | 特徴 |
|---|---|---|
| AWS Secrets Manager | Amazon | RDSなどAWSサービスとの自動ローテーション連携が強力 |
| Azure Key Vault | Microsoft | 証明書・暗号鍵管理も統合。Azure ADとの親和性が高い |
| Google Cloud Secret Manager | シンプルで使いやすい。GCPリソースとの統合が容易 | |
| HashiCorp Vault | HashiCorp | マルチクラウド・オンプレ対応。最も柔軟だが設定が複雑 |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| NIST SP 800-57 | 暗号鍵管理のガイドライン。シークレットのライフサイクル管理の基本方針 |
| OWASP A02:2021 | 「暗号化の失敗」。ハードコードされたパスワードが典型的な脆弱性として挙げられている |
| CIS Benchmark | クラウド環境のセキュリティ設定基準。Secrets Manager利用を推奨する項目が多い |