Secrets Manager で RDS の認証情報を保存し自動ローテーションする

RDS for PostgreSQL のマスター認証情報を Secrets Manager に保存し、Secrets Manager が自動デプロイする Lambda ローテーション関数で 30 日ごとの自動ローテーションを構成します。Lambda を VPC に接続し、Secrets Manager のインターフェイス VPC エンドポイントを使って、Lambda が DB と Secrets Manager の両方へインターネットに出ずに到達できる構成を学びます。

中級55Azure 実環境

ラボ概要

このラボでは、RDS for PostgreSQL のデータベース認証情報を AWS Secrets Manager に安全に保存し、Secrets Manager が自動デプロイする Lambda ローテーション関数を使って認証情報を自動ローテーション(定期的なパスワード更新)する方法を学びます。ハードコードされたパスワードを排除し、運用負荷ゼロで認証情報を更新し続ける仕組みを手を動かして理解します。

学習目標

  • RDS for PostgreSQL インスタンスを作成し、その認証情報を Secrets Manager のシークレットとして保存する
  • Secrets Manager の「ローテーションを編集」ウィザードで、Lambda ローテーション関数を自動デプロイする
  • ローテーション Lambda が DB と Secrets Manager の両方へ到達できるよう、セキュリティグループと VPC エンドポイントを構成する
  • ローテーションを手動でトリガーし、シークレットのバージョン(AWSCURRENT / AWSPENDING / AWSPREVIOUS)が更新されることを確認する
  • アプリケーションがパスワードをハードコードせず、シークレット名だけで最新の認証情報を取得する考え方を理解する

前提

  • 学習者は cloud_user ロールでマネジメントコンソールにサインイン済みです。
  • このラボは既定 VPC(default VPC)の中で完結します。新しい VPC は作りません。
  • ローテーションを有効にすると、Secrets Manager が Lambda 実行ロール(IAM ロール)を自動作成します。cloud_user は IAM ロール/ポリシーの作成権限を持つため、この操作は問題なく実行できます。

ラボの構成

  1. 1既定 VPC とサブネットを確認する
  2. 2RDS 用のセキュリティグループを作成する
  3. 3RDS for PostgreSQL インスタンスを作成する
  4. 4Secrets Manager にシークレットを作成する
  5. 5Secrets Manager 用の VPC エンドポイントを作成する
  6. 6シークレットの自動ローテーションを有効にする
  7. 7ローテーション Lambda のネットワークを構成する
  8. 8ローテーションを実行して確認する
  9. 9動作確認
  10. 10完了チェックリスト
  11. 11後片付け

詳細な手順は、ラボ開始後に画面内のガイドとして表示されます。

構成図

構成図

参考リソース

参考リンク

このラボが対応する試験の模擬問題集

本番形式の問題で理解度を確認できます。各試験とも先頭 15 問は無料です。

DVA-C02AWS Developer – Associate練習テスト 4 回・全 200