AWS Secrets Manager によるシークレット管理 - 自動ローテーションとアプリケーション統合

Secrets Manager によるデータベースパスワードや API キーの安全な管理、自動ローテーションの設定、アプリケーションからの取得パターンを解説します。

Secrets Manager の役割と Systems Manager Parameter Store との違い

この記事は約 4 分で読めます。 Secrets Manager はデータベースパスワード、API キー、OAuth トークンなどの機密情報を安全に保存・管理するサービスです。類似サービスの Systems Manager Parameter Store (SecureString) との最大の違いは、自動ローテーション機能の有無です。Secrets Manager は RDS、Aurora、Redshift、DocumentDB のパスワードを Lambda 関数で自動的にローテーションする仕組みを標準で提供しています。Parameter Store は設定値やフラグの管理に適しており、シークレット 1 件あたり月額 0.40 USD の Secrets Manager に対して無料枠が大きい利点があります。自動ローテーションが必要な認証情報は Secrets Manager、それ以外の設定値は Parameter Store という使い分けが一般的です。

この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

自動ローテーションの仕組み

自動ローテーションは Lambda 関数がシークレットの値を定期的に更新する仕組みです。RDS や Aurora の場合、AWS が提供するローテーション用 Lambda テンプレートを使用できます。ローテーションは 4 つのステップで実行されます。createSecret で新しいパスワードを生成し、setSecret でデータベースのパスワードを更新し、testSecret で新しいパスワードでの接続を検証し、finishSecret でシークレットのバージョンラベルを切り替えます。ローテーション間隔は 1 日から 365 日の範囲で設定でき、セキュリティポリシーに応じて 30 日や 90 日が一般的です。ローテーション中のダウンタイムを防ぐため、交代ユーザー戦略 (2 つのデータベースユーザーを交互に使用) を採用することを推奨します。

アプリケーションからの取得パターン

アプリケーションからシークレットを取得する基本パターンは、AWS SDK の GetSecretValue API を使用する方法です。Lambda 関数では、関数の初期化フェーズでシークレットを取得し、グローバル変数にキャッシュすることで、リクエストごとの API コールを回避します。AWS が提供するキャッシュライブラリ (Python の aws-secretsmanager-caching、Java の aws-secretsmanager-jdbc) を使用すると、TTL ベースのキャッシュとローテーション時の自動リフレッシュが組み込まれています。ECS タスクでは、タスク定義の secrets フィールドで Secrets Manager の ARN を指定すると、コンテナ起動時に環境変数として自動注入されます。CloudFormation テンプレートでは動的参照 ({{resolve:secretsmanager:MySecret}}) を使用し、テンプレート内にシークレットの値を直接記述することなく参照できます。

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。

まとめ

Secrets Manager は認証情報のライフサイクル管理を自動化するサービスです。自動ローテーションでパスワードの定期更新を強制し、IAM ポリシーでアクセスを制御し、KMS で暗号化することで、認証情報の漏洩リスクを多層的に低減します。コードやリポジトリにパスワードを埋め込む慣行を排除し、セキュリティのベストプラクティスを組織全体に適用できます。

AWS の優位点

  • RDS、Aurora、Redshift、DocumentDB のパスワードを Lambda ベースの自動ローテーションで定期的に更新し、認証情報の漏洩リスクを低減できる
  • シークレットの値は AWS KMS で暗号化され、IAM ポリシーでアクセスを制御するため、コードやリポジトリにパスワードを埋め込む必要がない
  • SDK のキャッシュライブラリでシークレットの取得結果をメモリにキャッシュし、API コール数とレイテンシを削減できる
  • CloudFormation の動的参照 (resolve:secretsmanager) でテンプレート内からシークレットを安全に参照できる
  • クロスアカウントアクセスにより、中央のセキュリティアカウントでシークレットを一元管理し、ワークロードアカウントから参照できる

同じテーマの記事

IAM Access Analyzer で検出する過剰なアクセス権限 - 外部アクセスと未使用権限の分析 Access Analyzer による外部アクセスの検出、未使用権限の分析、ポリシー生成の活用を解説します。 AWS Certificate Manager で自動化する SSL/TLS 証明書管理 - 発行からローテーションまで ACM によるパブリック証明書の無料発行、DNS 検証、自動更新、ALB・CloudFront へのデプロイを解説します。 AWS Artifact でコンプライアンスレポートを取得 - 監査対応と契約管理 Artifact による SOC、PCI DSS、ISO レポートの取得、BAA や NDA の締結手順を解説します。 監査の自動化 - AWS Audit Manager でコンプライアンス証跡を継続的に収集する AWS Audit Manager を使った監査証跡の自動収集を解説。フレームワーク (SOC 2、PCI DSS、GDPR 等) に基づく自動評価、エビデンスの一元管理、監査レポートの生成を紹介します。 証明書管理と HTTPS 化 - AWS Certificate Manager による TLS 証明書の自動運用 AWS Certificate Manager (ACM) を使った TLS/SSL 証明書の発行・自動更新・デプロイを解説。CloudFront・ALB・API Gateway との統合、DNS 検証、プライベート CA の活用まで紹介します。 AWS CloudHSM で実現する専用鍵管理 - FIPS 140-2 Level 3 準拠の暗号化 CloudHSM による専用 HSM クラスタの構築、KMS との使い分け、コンプライアンス要件への対応を解説します。 Amazon Cognito で実装するユーザー認証 - User Pool と Identity Pool の設計 Cognito User Pool によるユーザー認証、Identity Pool による AWS リソースアクセス、ソーシャルログインの統合を解説します。 機密コンピューティング - AWS Nitro Enclaves で処理中のデータを隔離保護する AWS Nitro Enclaves を使った機密データの隔離処理を解説。暗号化アテステーション、KMS 統合、PII 処理・暗号鍵管理のユースケースを紹介します。 データプライバシー保護 - Amazon Macie と GuardDuty で実現する機密データの自動検出と脅威防御 Amazon Macie による S3 内の機密データ自動検出と、Amazon GuardDuty による脅威インテリジェンスを組み合わせたデータプライバシー保護の実践手法を解説します。個人情報の特定からリアルタイムの脅威検知まで、包括的なセキュリティ対策を紹介します。 DDoS 対策 - AWS Shield による多層防御の設計と運用 AWS Shield Standard と Shield Advanced による DDoS 防御を解説。CloudFront・Route 53・ALB との統合、WAF との組み合わせ、コスト保護機能まで実践的に紹介します。 Amazon Detective でセキュリティインシデントを調査 - グラフ分析による根本原因の特定 Detective による GuardDuty 検出結果の調査、エンティティプロファイル、行動グラフの活用を解説します。 Active Directory 連携 - AWS Directory Service でオンプレミス ID 基盤をクラウドに拡張する AWS Directory Service を使った Active Directory のクラウド統合を解説。AWS Managed Microsoft AD、AD Connector、Simple AD の使い分けと、WorkSpaces・RDS・FSx との連携を紹介します。 AWS Directory Service で構築するマネージド Active Directory - ハイブリッド環境の ID 管理 AWS Managed Microsoft AD の構築、オンプレミス AD との信頼関係、AWS サービスとの統合を解説します。 AWS Firewall Manager で一元管理するセキュリティルール - WAF と Security Group の組織展開 Firewall Manager による WAF ルール、Security Group、Network Firewall ポリシーの組織全体への展開を解説します。 Amazon GuardDuty で実現する脅威検出 - ML ベースの異常検知とインシデント対応 GuardDuty による脅威検出の仕組み、検出結果の分類、Security Hub との統合によるインシデント対応を解説します。 ハードウェアセキュリティモジュール - AWS CloudHSM による暗号鍵の専有管理 AWS CloudHSM を使った暗号鍵の専有管理を解説。KMS との使い分け、FIPS 140-2 Level 3 準拠、TLS オフロード、Oracle TDE 統合など高度なユースケースを紹介します。 ID とアクセス管理の設計 - IAM によるゼロトラストセキュリティの実現 AWS IAM を活用したアクセス管理の設計手法を解説し、最小権限の原則、ポリシー設計、Cognito との連携によるゼロトラストセキュリティの実現方法を紹介します。 AWS IAM Identity Center で実現するシングルサインオン - マルチアカウントアクセス管理 IAM Identity Center によるマルチアカウント SSO、権限セットの設計、外部 IdP との統合を解説します。 Amazon Inspector で脆弱性を自動スキャン - EC2、Lambda、ECR の継続的セキュリティ評価 Inspector による脆弱性スキャンの自動化、CVE 検出、リスクスコアリング、修復の優先順位付けを解説します。 Amazon Macie による機密データの自動検出 - S3 バケットの PII スキャンとデータ保護 Amazon Macie による S3 バケット内の機密データ (PII、金融情報、認証情報) の自動検出と、検出結果に基づくデータ保護戦略を解説します。 Amazon Macie で S3 の機密データを自動検出 - PII 検出とデータセキュリティ態勢の管理 Macie による S3 バケットの機密データ検出、カスタムデータ識別子、Security Hub 統合を解説します。 AWS Network Firewall による VPC トラフィック制御 - ステートフルルールとドメインフィルタリング Network Firewall のステートフル/ステートレスルール設計、ドメインフィルタリング、Suricata 互換ルールの活用法を解説します。 ネットワークトラフィックフィルタリング - AWS Network Firewall で実現する高度なネットワーク防御 AWS Network Firewall によるステートフルなネットワークトラフィックフィルタリングと、AWS WAF との組み合わせによる多層防御の構築方法を解説します。VPC レベルのトラフィック制御と脅威防御の実践手法を紹介します。 AWS Nitro Enclaves で実現する機密データ処理 - 隔離環境での暗号化と認証 Nitro Enclaves による隔離環境の構築、KMS との統合、機密データの安全な処理を解説します。 AWS Payment Cryptography で実現するクラウド決済処理 - 暗号鍵管理と PIN 検証 Payment Cryptography による決済用暗号鍵の管理、PIN ブロックの暗号化・復号、PCI DSS 準拠を解説します。 AWS Private CA で構築するプライベート PKI - 証明書の自動発行とローテーション Private CA によるプライベート証明書の発行、ACM との統合、短期証明書による mTLS の実装を解説します。 AWS Secrets Manager のマルチリージョン戦略 - レプリケーションとクロスアカウント共有 Secrets Manager のマルチリージョンレプリケーション、クロスアカウントアクセス、Parameter Store との統合パターンを解説します。 AWS Security Hub で一元管理するセキュリティ態勢 - 検出結果の集約と自動対応 Security Hub による検出結果の集約、セキュリティ標準の自動評価、自動対応ワークフローの構築を解説します。 セキュリティ調査と脅威分析 - Amazon Detective で実現するインシデント対応の効率化 Amazon Detective を活用したセキュリティインシデントの調査と脅威分析の手法を解説します。GuardDuty との連携による検出から調査までのワークフローと、グラフベースの分析による根本原因の特定方法を紹介します。 Amazon Security Lake で構築するセキュリティデータレイク - OCSF 形式での統合分析 Security Lake による CloudTrail、VPC フローログ、Route 53 ログの自動集約、OCSF 正規化、サブスクライバーとの統合を解説します。 セキュリティポスチャー管理 - AWS Security Hub で実現する統合セキュリティ監視基盤 AWS Security Hub による統合セキュリティ監視と、GuardDuty との連携による脅威検知の自動化を解説します。セキュリティベストプラクティスへの準拠状況の可視化とマルチアカウント環境のセキュリティガバナンスを紹介します。 AWS Shield で DDoS 攻撃から防御 - Standard と Advanced の使い分け Shield Standard と Advanced の違い、DDoS 対応チーム (SRT) の活用、コスト保護を解説します。 AWS Signer で実現するコード署名 - Lambda 関数とコンテナイメージの信頼性保証 AWS Signer による Lambda 関数のコード署名、コンテナイメージの署名、署名検証ポリシーの設定を解説します。 SSO とアイデンティティ管理 - AWS IAM Identity Center による一元認証 AWS IAM Identity Center (旧 AWS SSO) を使ったシングルサインオンとマルチアカウントアクセス管理を解説。外部 IdP 連携、権限セット設計、Cognito との使い分けまで紹介します。 ユーザー認証の実装 - Cognito によるセキュアな認証基盤の構築 Amazon Cognito を活用したユーザー認証基盤の設計と実装を解説し、ユーザープール、ID プール、外部 ID プロバイダー連携による認証フローの構築方法を紹介します。 AWS Verified Access で実現するゼロトラストアクセス - VPN 不要のアプリケーション接続 Verified Access による VPN レスのアプリケーションアクセス、信頼プロバイダーの設定、ポリシー設計を解説します。 Amazon Verified Permissions で実装するきめ細かい認可 - Cedar ポリシーによるアクセス制御 Verified Permissions による Cedar ポリシーの設計、ポリシーストアの構築、Cognito との統合を解説します。 脆弱性評価と脅威検知 - Amazon Inspector と GuardDuty で実現する継続的セキュリティ監視 Amazon Inspector と Amazon GuardDuty を活用した脆弱性評価と脅威検知の設計・運用方法を解説します。 AWS WAF の Bot Control と不正防止 - ボット対策とアカウント乗っ取り防止の実装 AWS WAF の Bot Control マネージドルール、Account Takeover Prevention、Fraud Control の設定と運用を解説します。 ゼロトラストネットワークアクセス - AWS Verified Access で VPN なしのセキュアアクセスを実現する AWS Verified Access を使った VPN レスのゼロトラストアクセスを解説。ID プロバイダー統合、デバイストラスト、ポリシーベースのアクセス制御、従来の VPN との比較を紹介します。