AWS For engineer

Control Tower の AWS Backup は有効にすべきか

Control Tower(以降、CT)には AWS Backup を landing zone の機能として有効化するオプションがあります。マルチアカウント環境のデータ保護を一括で整えられる便利な機能だが、実際に検討してみると「これは要件次第で無効のままでいいのでは」と思うところがあったので、考えたことをまとます。

いいところ:マルチアカウントのデータ保護が一発で整う

CT で AWS Backup を有効にすると、対象 OU 配下の各アカウントに以下が自動で展開されます。

  • ローカルの backup vault
  • バックアッププラン4種(hourly / daily / weekly / monthly)
  • バックアップ用の IAM ロール(aws-controltower-BackupRole

さらに daily / weekly / monthly のプランには、セントラルアカウントの vault へのクロスアカウントコピーが最初から仕込まれています。

これを自前でやろうとすると、StackSet で vault と IAM ロールを全アカウントに配って、コピー先 vault のアクセスポリシーを書いて、KMS のキーポリシーを整えて……という作業が必要になります。それがコンソールの数クリックで済むうえ、Account Factory で作った新規アカウントにも自動で適用されまます。

別アカウントの vault にコピーが残るということは、元アカウントが侵害されたり、誤ってリソースごと消したりしても復旧できるということで、ランサムウェア対策としての価値も大きい。

しかし、とにかく柔軟性が低い

問題はここから。

日次バックアップの保存期間は35日固定で、変更できない

CT が作る aws-controltower-daily-backup-plan は保持期間が35日になっていて、「そんなにいらないから7日にしたい」と思っても、容易には変更できないの難点。AWSControlTowerExecutionを使えば変更できるが、CT のテンプレートを極力変更しないことが推奨されています。

保持期間の35日は、「うちはそこまでいらない」という組織にとっては単に過剰なだけです。

準備が大変

有効化する前に、自分で用意しなければいけないものがある。

  • AWS Backup Administrator アカウント(委任管理者になる)
  • Central Backup アカウント(コピー先の vault が作られる)
  • マルチリージョンの KMS カスタマー管理キー(クロスアカウントコピー用)

専用アカウントを2つ新規に用意する必要がある、というのが地味に重い。既存のアカウントを流用するにしても、Security OU に置くことになるので構成の見直しが必要です。

KMS キーも「作って終わり」ではなく、キーポリシーを正しく書いて維持し続ける必要がありmさう。

コストもかかる

かかるコストを分解すると、大きく3つあります。

1. KMS

カスタマー管理キーは1キーあたり月1ドル程度。マルチリージョンキーのレプリカもそれぞれ1キーとしてカウントされます。ガバナンスリージョンが3つでも月数ドルなので、正直これ自体は誤差の範囲。

2. 専用アカウント2つ分のガバナンスコスト

こちらのほうがずっと効いてくる。Backup Administrator と Central Backup の2アカウントは CT のガバナンス下に入るので、全ガバナンスリージョンで Config レコーダーと CloudTrail が回り続けます。

これはバックアップを1本も取っていなくても発生する固定費になります。

3. ストレージの二重持ち

実運用に入ると、これが桁違いに大きい。ローカル vault とセントラル vault で同じデータを2セット、35日分保持することになります。クロスアカウントコピーはストレージ料金が単純に倍になります。る。

とはいえ、有効にしただけでは課金されない

一点フォローしておくと、CT のバックアッププランはタグベースのオプトイン方式になっていいます。

プラン対象タグ
hourlyaws-control-tower-backuphourly: true
dailyaws-control-tower-backupdaily: true
weeklyaws-control-tower-backupweekly: true
monthlyaws-control-tower-backupmonthly: true

このタグを付けたリソースだけがバックアップの対象になるので、有効にしていてもタグを付けなければジョブは1本も走らず、ストレージ課金も発生しない。上の「コスト」のうち3番目は、実際に使い始めてからの話になる。

なお hourly プランだけはセントラル vault へのコピーがないので、「世代管理はしたいがクロスアカウントコピーまでは不要」という場合はこれだけ使うという選択肢もある。

結論

向いているケース

  • ランサムウェア対策や内部不正対策として、別アカウントへの論理エアギャップが要件になっている
  • 監査で「35日保持」を示す必要がある
  • アカウント数が多く、新規アカウントへの自動適用のメリットが大きい

向いていないケース

  • 復旧要件が「誤操作からの巻き戻し」レベル
  • 保持期間や頻度を自社要件に合わせて細かく調整したい
  • 専用アカウント2つを用意する余力がない

自分の場合は後者に近かったので、CT の AWS Backup は有効にせず、Organizations のバックアップポリシーを自分で書く方向に倒すのがよさそうだと考えています。これなら保持期間もコピー先も自由に決められるうえ、OU 単位で適用という自分の決めた範囲でバックアップポリシーを適用できます。


-AWS, For engineer
-,