[小ネタ] Control Tower の AWS Backup 統合機能で作成されたボールトに Vault Lock は設定できません

[小ネタ] Control Tower の AWS Backup 統合機能で作成されたボールトに Vault Lock は設定できません

2026.04.28

こんにちは!クラウド事業本部のおつまみです。

みなさん、ランサムウェア対策として AWS Backup の Vault Lock を検討したことはありますか?

先日、Control Tower の AWS Backup 統合機能を使っている環境で、Control Tower が作成したバックアップボールトに対して、 Vault Lock を設定しようとしたところ、SCP に拒否され設定できませんでした。

CleanShot 2026-04-28 at 14.47.24

今回はその原因と仕組みを解説します。

3行まとめ

  1. Control Tower の AWS Backup 統合機能で作成されたボールトには aws-control-tower タグが自動付与される
  2. Control Tower の SCP(CT.BACKUP.PV.3)により backup:PutBackupVaultLockConfiguration が Deny される
  3. CT 管理下のボールトへの Vault Lock 設定は技術的にできないため、導入には別途設計が必要

Control Tower の AWS Backup 統合機能とは

AWS Control Tower には、Landing Zone に AWS Backup を統合する機能があります(2024年11月追加)

https://dev.classmethod.jp/articles/control-tower-aws-backup-update/

この機能を有効化すると、以下の AWS Backup ボールとロックが自動作成されます。

アカウント 作成されるリソース
各メンバーアカウント aws-controltower-local-backupvault-{アカウントID}
Central Backup Account aws-controltower-backup-vault-{アカウントID}

CleanShot 2026-04-28 at 15.19.24@2x

このメンバーアカウントのリソースに aws-control-tower-backup<周期>: true 形式のタグを付与するだけで、バックアップが自動実行され、Central Backup Account のボールトへクロスアカウントコピーされます。管理オーバーヘッドが少なく、マネージドで進めやすい構成です。

その他自動作成されるリソースの詳細は以下の公式ドキュメントをご参照ください。

AWS Backup の有効化時に AWS Control Tower で作成されるリソース

Vault Lock を設定しようとしたら拒否された

今回ランサムウェア対策強化のため、メンバーアカウントの aws-controltower-local-backupvault-xxx に Vault Lock を設定できるかなと思い、設定しようとしたところ、以下のエラーが発生しました。

An error occurred (AccessDeniedException) when calling the
PutBackupVaultLockConfiguration operation:
Implicit deny in service control policy

CleanShot 2026-04-28 at 14.47.24

なぜ拒否されるのか、原因を調べてみました。

原因:Control Tower の SCP(CT.BACKUP.PV.3)

Control Tower が管理するリソースを保護するため、Landing Zone には複数の予防的 SCP(サービスコントロールポリシー)が自動適用されています。今回の拒否の原因は CT.BACKUP.PV.3(CTBACKUPPV3) です。

[CT.BACKUP.PV.3] AWS Control Tower が管理する AWS Backup リソースの修正を禁止する

SCP の内容は以下の通りです。

{
  "Condition": {
    "Null": {
      "aws:ResourceTag/aws-control-tower": false
    },
    "ArnNotLike": {
      "aws:PrincipalARN": "arn:*:iam::*:role/AWSControlTowerExecution"
    }
  },
  "Action": [
    "backup:CreateBackupPlan",
    "backup:CreateBackupVault",
    "backup:CreateLogicallyAirGappedBackupVault",
    "backup:DeleteBackupPlan",
    "backup:DeleteBackupVault",
    "backup:DeleteBackupVaultLockConfiguration",
    "backup:PutBackupVaultLockConfiguration",
    "..."
  ],
  "Resource": [
    "arn:*:backup:*:*:backup-plan:*",
    "arn:*:backup:*:*:backup-vault:*"
  ],
  "Effect": "Deny"
}

このポリシーは、以下の 4つの条件がすべて揃った場合 に Deny を発動します。

条件 aws-controltower-local-backupvault-xxx の場合
aws-control-tower タグが付与されている 該当(CT統合機能が自動付与)
AWSControlTowerExecution ロール以外が実行 該当
リソースがバックアップボールト 該当
アクションが PutBackupVaultLockConfiguration 該当

aws-controltower-local-backupvault-xxx は CT 統合機能が作成する際に aws-control-tower タグを自動付与するため、4条件すべてに該当し、Deny が発動します。

なぜこのような SCP が存在するのか

この SCP の目的は、Control Tower が管理するリソースをユーザーの誤操作・意図しない変更から保護することです。AWSControlTowerExecution ロール(Control Tower 自身の管理操作用)のみが例外として許可されており、それ以外のプリンシパルによる変更はすべて拒否されます。

これは Control Tower の「ガードレール(予防的統制)」の一部であり、Landing Zone の更新が安定して動作することを保証するための設計です。Control Tower が管理するリソースを直接変更しないことについては、公式ガイダンスにも明記されています。

AWS Control Tower リソースの作成と変更に関するガイダンス

「AWSControlTowerExecution ロールで実行すれば設定できるのでは?」

技術的には AWSControlTowerExecution ロールで AssumeRole して実行すれば SCP を回避できます。しかし、以下の理由から 推奨しません

AWSControlTowerExecution ロールの使用が推奨されない理由

  • このロールは Control Tower 自身の管理操作専用であり、日常的な利用は想定されていない
  • Compliance Mode で Vault Lock を設定すると解除不可能(AWS サポートでも不可)なため、Landing Zone 更新時に Control Tower 側がボールトの変更を試みても失敗する可能性がある
  • ドリフト検出の対象となるリスクがある

Vault Lock の Compliance Mode については公式ドキュメントをご参照ください。

AWS Backup ボールトロック

最後に

今回は Control Tower の AWS Backup 統合機能で作成されたボールトに Vault Lock を設定しようとして、SCP に拒否された原因を解説しました。

Control Tower の AWS Backup 統合機能はマネージドで便利な反面、Vault Lock のような高度なセキュリティ設定を後から加えようとすると SCP の制約に直面します。Vault Lock の導入を検討される場合は、Control Tower 管理外の独自ボールトを別途作成する設計が必要になります。

同様の検討をされている方の参考になれば幸いです。

最後までお読みいただきありがとうございました!
どなたかのお役に立てれば幸いです。

以上、おつまみでした!

参考

この記事をシェアする

関連記事