Skip to content

Secrets Managerとは?

Secrets Managerは、データベース認証情報、APIキー、その他のシークレット情報を安全に保管・管理・取得するためのサービスです。

1. シークレットの保管と暗号化

Section titled “1. シークレットの保管と暗号化”
概要:
- KMSによる暗号化
- バージョン管理機能
- 自動ローテーション
- 細かいアクセス制御
対応シークレット:
- データベース認証情報
- APIキー
- OAuth トークン
- SSH キー
- カスタムシークレット
対応サービス:
完全自動:
- RDS(MySQL、PostgreSQL、Oracle、MariaDB、SQL Server)
- Amazon DocumentDB
- Amazon Redshift
- Amazon Aurora
カスタム:
- Lambda関数による実装
- 任意のシークレット
ローテーション間隔:
- 30日(デフォルト)
- カスタム期間設定可能
アクセス方法:
- AWS SDK
- AWS CLI
- API呼び出し
- Lambda環境変数(拡張機能)
キャッシング:
- クライアント側キャッシュ推奨
- API呼び出し削減
- コスト最適化
構成要素:
シークレット本体:
- JSONまたはバイナリ
- バージョン管理
- ステージングラベル
暗号化:
- KMSキー(デフォルトまたはカスタム)
- 転送中・保管時の暗号化
ローテーション:
- Lambda関数
- CloudWatch Eventsトリガー
アクセス制御:
IAMポリシー:
- シークレット単位の制御
- タグベースの制御
リソースポリシー:
- クロスアカウントアクセス
- 特定のVPCエンドポイントからのみ
監査:
CloudTrail:
- シークレットアクセスログ
- ローテーション履歴
CloudWatch:
- ローテーション失敗アラート
- メトリクス監視

Systems Manager Parameter Store との比較

Section titled “Systems Manager Parameter Store との比較”
Secrets Manager:
メリット:
- 自動ローテーション
- クロスリージョンレプリケーション
- バージョン管理が充実
デメリット:
- 料金が高い
- シークレット単位で課金
Parameter Store:
メリット:
- 無料枠が大きい
- シンプル
- SSM統合
デメリット:
- 自動ローテーションなし
- 暗号化はオプション
料金項目価格備考
シークレット保管料金$0.40 / シークレット / 月最初の30日は無料
API呼び出し料金$0.05 / 10,000 API コールGetSecretValue, PutSecretValue等
レプリケーションレプリカシークレット毎に料金発生クロスリージョンレプリケーション時

料金計算例:

シナリオ計算月額料金
シークレット10個、API呼び出し100万回/月(10 × $0.40) + (100万 / 10,000 × $0.05)$4.00 + $5.00 = $9.00
シークレット100個、API呼び出し1000万回/月(100 × $0.40) + (1000万 / 10,000 × $0.05)$40.00 + $50.00 = $90.00

コスト最適化のポイント:

  • クライアント側キャッシュでAPI呼び出し削減
  • 不要なシークレットの定期的な削除
  • Parameter Storeとの使い分け(後述)
設計:
- シークレット粒度の適切な設計
- バージョニング戦略
- タグによる管理
セキュリティ:
- 最小権限の原則
- VPCエンドポイント使用
- リソースポリシーでアクセス制限
運用:
- 定期的なローテーション
- CloudTrailで監査
- アラート設定
- キャッシュ戦略

Secrets Managerの重要ポイント:

  • 自動ローテーション機能が強力
  • KMS暗号化で安全性確保
  • RDS等との統合が容易
  • クロスリージョンレプリケーション可能
  • コスト考慮しParameter Storeと使い分け