技術系(Tips)
PR

AWS BackupでRDS(Aurora)を別アカウントへ集約管理する:KMS再暗号化と命名規約のベストプラクティス

saratogax
記事内に商品プロモーションを含む場合があります

RDS(Aurora)のバックアップを別アカウントに集約して管理したい場合、以下の2つの壁にぶつかります。

  1. デフォルトキーの壁: aws/rds(AWS管理キー)で暗号化されたスナップショットは、そのままでは別アカウントにコピーできない。
  2. 権限管理の壁: 別アカウントにコピーするために、カスタマー管理型のキー(CMK)をどう共有し、どう再暗号化するか。

本記事では、これらを Lambda で自動化しつつ、運用しやすい命名規約で管理する方法を解説します。

KMS CMK の作成と共有設定の勘所

バックアップ先のアカウント側(管理アカウント)で KMS キー(CMK)を作成する際の重要ポイントです。

  • キー管理者 (STEP3): 万が一のロックアウトを防ぐため、AdministratorAccess を持つロールを指定する。
  • キーユーザー (STEP4):
    • 自アカウント:リストアテスト用に自身のロールを指定。他のAWSアカウント:バックアップ元(送信側)の 12 桁のアカウント ID を追加する。

これにより、別アカウントの AWS Backup サービスが kms:CreateGrant を使えるようになり、コピー時の再暗号化が可能になります。

運用を支える「命名規約」の決定

AWS Backup のリソース名には 50文字制限 があります。クラスタ名が長い場合を考慮し、以下の規約を採用しました。

リソース命名テンプレート理由
Backup Vaultrds-backup-vault全アカウント共通でシンプルに。
Backup Planrds-plan-{クラスタ名}rds 識別子を使い文字数を節約。
Backup Resourcerds-backup-resource-{クラスタ名}resource をフルスペルで残し視認性を確保。
※表は横スクロールできます

rds-backup-resource- (20文字) + クラスタ名 が 50 文字を超えないよう設計するのがコツです。

Lambda による 2 段階コピーの自動化

通常、aws/rds キーで暗号化されたものは別アカウントへ持っていけませんが、コピー時に 「宛先(管理アカウント)の CMK ARN」 を指定することで、コピーと同時に暗号化キーの付け替え(再暗号化)が行われます。
AWS BackupでRDS(Aurora)を別アカウントへ集約管理する:KMS再暗号化と命名規約のベストプラクティス

通常、aws/rds キーで暗号化されたものは別アカウントへ持っていけませんが、コピー時に 「宛先(管理アカウント)の CMK ARN」 を指定することで、コピーと同時に暗号化キーの付け替え(再暗号化)が行われます。

  1. EventBridge: aws/rds での初回バックアップ完了を検知。
  2. Lambda: start_copy_job を 1 回だけ発行。
    • コピー元:ローカルの aws/rds 復元ポイント
    • コピー先:管理アカウントの Vault ARN
    • 使用キー:管理アカウントの CMK ARN
  3. 結果: 1つのジョブで「別アカウントへの転送」と「CMKへの変換」が同時に完了します。

管理アカウント側の「受け皿」設定

管理アカウントの Backup Vault には、外部からのコピーを許可するポリシーを忘れずに設定します。

{
    "Sid": "AllowCopyFromOtherAccounts",
    "Effect": "Allow",
    "Principal": { "AWS": ["arn:aws:iam::[アカウントA]:root", "..."] },
    "Action": "backup:CopyIntoBackupVault",
    "Resource": "*"
}

まとめ

  • KMS: コンソール STEP4 下部の「他のAWSアカウント」設定が生命線。
  • 命名: 50文字制限を逆算して rds- プレフィックスを活用する。
  • 表示: 共有された KMS キーは共有先のアカウントのコンソール一覧には出ないため、ARN で直接指定する。

ABOUT ME
saratoga
saratoga
フリーランスエンジニア
仕事にも趣味にも IT を駆使するフリーランスエンジニア。技術的な TIPS や日々の生活の中で深堀りしてみたくなったことを備忘録として残していきます。
記事URLをコピーしました