Secrets Manager

【VPC外リージョンサービス】

Secrets Manager は、アプリケーションで利用する Secret(機密情報) を安全に保管・管理するサービスです。

データベースのパスワードやAPIキーといった Secret Value(シークレット値) を KMSにより安全に暗号化し、IAM および アクセスポリシーを使って厳密にアクセス制御を行います。

各シークレットには一意の Secret ID(シークレットの識別子) が割り当てられ、取得時には Retrieve(シークレット取得) API を利用してアプリケーションが動的に値を参照できます。

Rotation(ローテーション) に対応しており、Rotation Lambda Function(ローテーション用Lambda関数) を使用することで、RDS、Redshift、 DocumentDB などのデータベース認証情報を自動的に更新できます。この処理は Secret Rotation Schedule(ローテーションスケジュール) に基づいて定期的に実行され、セキュリティリスクを最小化します。

Secrets Manager は Version(バージョン管理) 機能を備えており、シークレットの履歴を追跡したり、過去の値へロールバックしたりすることが可能です。すべての操作履歴は CloudTrailに記録され、変更や取得のアクティビティを可視化できます。

マルチリージョンレプリケーション に対応しており、異なるリージョン間でシークレットを安全に複製・同期することができます。

Cross-Account Access(クロスアカウントアクセス) によって、他のAWSアカウントからシークレットを安全に参照できるよう設計されています。これにより、複数アカウントやシステム間でのシークレット共有が容易になります。

Secrets Manager は、Config や Security Hub とも連携し、シークレットの構成状態を監査・可視化したり、セキュリティ評価の一部として利用したりできます。

重要用語

ユースケース

DBパスワード・APIキーの安全保管データベース接続情報や外部サービスのAPIキーをSecrets Managerに保存し、アプリケーションコードや設定ファイルに平文で書かないようにする。
認証情報の自動ローテーションRDS等と連携し、DBパスワードを自動的に定期変更しつつ、アプリケーション側からは常に最新のシークレットを参照させる。
複数環境のシークレット管理dev/stg/prodといった環境ごとに名前空間を分け、環境に応じて異なるシークレットを安全に管理・参照する。

ベストプラクティス

自動ローテーションの設定DBやAPIキーのシークレットを定期的に自動更新する。
アクセス権限の細分化シークレットごとにIAMポリシーでアクセス制御する。
環境ごとのシークレット分離開発・本番で別シークレットを用意し、誤用を防ぐ。

高可用性・バックアップ・リトライ

高可用性・バックアップ・リトライ設計のポイント
【デフォルト】AWS内部で冗長化
 ・シークレットデータ
 ・暗号化キー(KMS)
 ・メタデータ
 ・サービスエンドポイント

セキュリティ

関連サービス設定内容
KMS(データの暗号化と鍵の安全管理)【シークレット値の暗号化が必要】
 独自KMSキーを使うことを推奨(鍵操作、監査
Secrets Manager(機密情報の安全管理)-
SSM Parameter Store(設定情報の一元管理)-
CloudTrail(操作履歴の記録・監査・追跡)【自動記録】
作成・更新・削除・設定変更は自動記録される。(コントロールプレーンAPI)
データ操作は追跡できない(データプレーンAPI)
Config(リソースの構成状態・設定変更を記録)【Configが有効な場合】
シークレット設定変更履歴・KMS暗号化/ローテーション設定の準拠評価
GuardDuty(脅威を自動検出)【GuardDutyが有効な場合】
シークレット削除・権限変更のAPI異常検知

ログ・監視

標準メトリクス
メトリクス名説明
APICallCountAPI呼び出し数
ResourceCountシークレット数

制限値(固定値/ハードリミット/ソフトリミット)

固定値制限値
バージョン数/シークレット100(アクティブ)

ハードリミット制限値
シークレットサイズ最大10 KB(65,536 Bytes)
リソースポリシーのサイズ最大20 KB
ローテーション間隔最短1時間

ソフトリミット制限値
シークレット数/リージョン500,000
GetSecretValue APIレート10,000 RPS(デフォルト)
その他のAPIレート5,000 RPS

AWS CLIのサンプルコード

CloudFormationのサンプルコード

Terraformのサンプルコード

料金計算

課金項目説明
シークレット保存するシークレットの月額料金
APIコールシークレット取得などのAPIコール数
(10,000回単位)
料金計算ツール

公式ページ

AWSドキュメント Secrets Manager