ラボ概要
専用 VPC 上に Aurora MySQL 互換クラスター(db.t3.medium / 単一インスタンス)を作成し、認証情報を Secrets Manager で管理して 30 日ごとの自動ローテーションを構成・確認します。
このラボでは、専用の VPC を新規に作成し、その中に Amazon Aurora(MySQL 互換, db.t3.medium, 単一インスタンス)クラスターを構築します。クラスターのマスター認証情報を AWS Secrets Manager に保存し、Secrets Manager が自動デプロイするローテーション Lambda を使って認証情報を 30 日ごとに自動更新(ローテーション)する仕組みを、手を動かして理解します。ハードコードされたパスワードを排除し、運用負荷ゼロで認証情報を更新し続ける構成を学びます。
学習目標
- 専用 VPC(2 AZ・プライベートサブネット)と DB サブネットグループを作成し、Aurora MySQL 互換クラスターを配置する
- Aurora クラスターのマスター認証情報を Secrets Manager のシークレットとして保存する
- Secrets Manager の「ローテーションを編集」ウィザードで、Aurora/MySQL 用 Lambda ローテーション関数を自動デプロイする
- ローテーション Lambda が DB と Secrets Manager の両方へ到達できるよう、セキュリティグループとインターフェイス VPC エンドポイント(プライベート DNS 有効)を構成する
- ローテーションを手動でトリガーし、シークレットのバージョンステージ(
AWSCURRENT / AWSPENDING / AWSPREVIOUS)が更新されることを確認する
- アプリケーションがパスワードをハードコードせず、シークレット名だけで最新の認証情報を取得する考え方を理解する
前提
- 学習者は federated console に
cloud_user ロールでサインイン済みです。
- すべての操作は東京リージョン(ap-northeast-1)で行います(IAM などのグローバルサービスを除く)。
- このラボでは新しい VPC を作成します(既定 VPC は使いません)。NAT ゲートウェイは作らず、Secrets Manager へはインターフェイス VPC エンドポイント経由で到達します。
- ローテーションを有効にすると、Secrets Manager が CloudFormation 経由で Lambda 実行ロール(IAM ロール)を自動作成します。
cloud_user でこの自動作成が権限不足になった場合のフォールバックは手順 7 の注記に記載しています。
- 使用するインスタンスは
db.t3.medium、ストレージはサンドボックスのガードレール内(Aurora は自動管理)です。プロビジョンド IOPS は使用しません。
- 所要時間の目安は約 90〜110 分です。Aurora クラスターの作成には 10〜15 分かかるため、その待ち時間に手順 5(VPC エンドポイント作成)を先に進めると 2 時間以内に余裕を持って完遂できます。