背景・目的
AWS BackupのVault Lockについて調べる機会があったので整理します。
まずは、Vaultを整理し、その後にVault Lockについて整理します。
まとめ
下記に特徴を整理します。
| 特徴 | 説明 |
|---|---|
| Backup Vault | バックアップを保存して整理するコンテナ 作成時にKMSキーを指定する |
| バックアップボールトの作成 | バックアップの作成か、バックアップジョブを開始する前に、少なくとも 1 つのボールトを作成する必要がある。 |
| 論理エアギャップボールトの概要 | セキュリティ機能を追加したコンテナにバックアップを保存できるセカンダリタイプのボールト |
| Vault Lock | バックアップボールトの削除・変更を防止するオプション機能 2つのモードがある ・ガバナンス ・コンプライアンス |
| ガバナンスモード | IAM権限があればロック解除可能 |
| コンプライアンスモード | データ保持期間中の削除・変更防止 |
概要
下記を基に整理します。
https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/vaults.html
バックアップボールト
- Backup Vaultとは、バックアップを保存して整理するコンテナ
- バックアップボールトを作成するときは、このボールトに配置されたバックアップの一部を暗号化する AWS Key Management Service (AWS KMS) 暗号化キーを指定する必要がある
バックアップボールトの作成と削除
バックアッププランを作成するか、バックアップジョブを開始する前に、少なくとも 1 つのボールトを作成する必要がある。
Logically air-gapped vault
論理エアギャップボールトの概要
- セキュリティ機能を追加したコンテナにバックアップを保存できるセカンダリタイプのボールト
- AWS所有キーまたはカスタマーマネージドKMSキーで暗号化
- ボールトロック(コンプライアンスモード)が標準装備
- バックアップはAWS Backupサービス所有アカウントに保存
- 論理エアギャップボールトをマルチパーティー承認 (MPA) と統合して、ボールト所有アカウントにアクセスできなくても復旧可能
- AWS Resource Access Manager (RAM) と統合して論理エアギャップボールトを他のAWS アカウントと共有が可能
- アカウント閉鎖時に、閉鎖後期間中はMPA経由でアクセス継続可能
論理エアギャップボールトのユースケース
- データ保護戦略の一環として機能するセカンダリボールト
- 下記のようなバックアップ用Vaultを希望する場合に役立つ
- コンプライアンスモードで自動的にボールトロックが設定されるもの
- デフォルトでは、 AWS 所有キーによる暗号化が提供。必要に応じてカスタマーマネージドキーを指定できる
- RAMまたはMPAを介して、バックアップを作成したアカウントと異なるアカウントと共有できる
ボールトアクセスポリシー
- バックアップボールトへのアクセス制御をIAMポリシーで管理できる
- バックアップ作成は許可、復旧ポイント削除は制限、などの制御が可能
- Actionキーにワイルドカード(*)は使用不可
- ボールトアクセスポリシーはAWS Backup APIのみ制御
- EBS/RDSスナップショットは各サービスAPIからもアクセス可能
- 別途IAMポリシーが必要
AWS Backup ボールトロック
バックアップボールトの削除・変更を防止するオプション機能
2つのモードがある
- ガバナンスモード
- IAM権限があればロック解除可能
- コンプライアンスモード
- 猶予期間後は誰も(ルートユーザー・AWS含む)変更・削除不可
ボールトロックモード
| 項目 | ガバナンスモード | コンプライアンスモード |
|---|---|---|
| 目的 | 指定担当者のみ管理可能に | データ保持期間中の削除・変更防止 |
| ロック解除 | IAM権限があれば可能 | 不可 |
| 削除 | IAM権限があれば可能 | 空のボールトのみ可能 |
| 猶予期間 | なし | あり(期間中は変更可能) |
| イミュータブル | ならない | 猶予期間後になる |
ボールトロックのメリット
- WORM構成
- 一度書いたら変更不可(write-once, read-many)
- 削除保護
- 不注意・悪意ある削除からバックアップを保護
- 保持期間の適用
- ルートユーザーでも早期削除不可、データ保護ポリシーを確実に適用
実践
事前準備
Vaultの作成
- AWSにサインインします
- AWS Backupに移動します
- ナビゲーションペインでボールトをクリックします
- 「ボールトの作成」をクリックします
- ボールトタイプにバックアップボールトを指定して作成します(ガバナンス用と、コンプライアンス用で2つ作成します)

Vault Lockの作成
- ナビゲーションペインでバックアップボールトロックをクリックします
ガバナンスモード
- 「ボールドロックを作成」をクリックします
- 下記を指定し、「ボールトロックを作成」をクリックします
コンプライアンスモード
- 「ボールドロックを作成」をクリックします
- 下記を指定して、「ボールドロックを作成」をクリックします
バックアッププランを作成
- ナビゲーションペインでダッシュボードに移動します
ガバナンスモード
- 「バックアッププランを作成」をクリックします
- 下記を指定して、「プランを作成」をクリックします
- 新しいプランを立てる
- バックアッププラン名:任意
- バックアップツール名:任意
- バックアップボールド:ガバナンスモード用のVault
- PITR:有効
- 合計保持期間:Vaultの最大保持期間より長くする必要があります
- 残りはデフォルトのまま





- リソースの割当で下記を指定し、「リソースを割り当てる」をクリックします
コンプライアンスモード
- 「バックアッププランを作成」をクリックします
- 下記を指定して、「プランを作成」をクリックします
- 新しいプランを立てる
- バックアッププラン名:任意
- バックアップツール名:任意
- バックアップボールド:コンプライアンス用のVault
- PITR:有効
- 合計保持期間:Vaultの最大保持期間より長くする必要があります
- 残りはデフォルトのまま




- リソースの割当で下記を指定し、「リソースを割り当てる」をクリックします
確認
しばらくするとバックアップが完了します。
コンプライアンスモード
ガバナンスモード
すでに継続的バックアップが設定されているとのことで、1つのAuroraクラスタで、1つのVaultのみ有効なようです。
ガバナンスモードの再設定
オンデマンドバックアップ
Vault Lockの合計保持期間より長く、オンデマンドバックアップの合計保持期間を指定すると、ジョブ実行後エラーになります
上記の通り、ガバナンスモードのバックアップが想定外だったのもあり、
オンデマンドバックアップを試してみます。
-
ナビゲーションペインで「ダッシュボード」をクリックします
-
「オンデマンドバックアップ」をクリックします
-
下記を指定して、「オンデマンドバックアップの作成」をクリックします
Vault Lock中の削除の動作確認
- ナビゲーションペインで「ボールド」をクリックします
ガバナンスモード
-
ガバナンスモードのVaultをクリックします
-
ポップアップが表示され、復旧ポイントを削除しますか?と聞かれるので「確認」をクリックします
-
「RecoveryPoint cannot be deleted or updated (Backup vault configured with Lock).」が表示されました。また復旧ポイントも削除されていません。想定通りです

コンプライアンスモード
-
コンプライアンスモードのVaultをクリックします
-
「RecoveryPoint cannot be deleted or updated (Backup vault configured with Lock).」が表示されました。また復旧ポイントも削除されていません。想定通りです

ロック解除〜削除の動作確認
ガバナンスモード
ロック解除
- ガバナンスモードのVaultをクリックします
- 「ボールドロックを管理」をクリックします
- 「ボールドロックを削除」をクリックします
- バックアップボールトから「ガバナンスモードのVault」が削除されました
削除
-
ナビゲーションペインで「ボールト」をクリックします
-
ガバナンスモードのVaultをクリックします
-
しばらくしたら、消えました
猶予期間中のコンプライアンスモード
猶予期間中に削除できるかテストもしたいので、急遽ここでもう一つVaultを作ります
Vaultを作成
- compliance-early-delete-test-vaultを急遽作ります
Vault Lockを作成
オンデマンドバックアップの作成
猶予期間中のロック解除
- Vaultを選択し、「ボールトロックを管理」をクリックします
- 「ボールトロックを削除」をクリックします
- 成功しました「compliance-early-delete-test-vault」のボールトロックが削除されました。いつでも新しいボールトロックを作成できます。」が表示されました。ボールトロックも消えました
削除
- ナビゲーションペインで「ボールト」をクリックします
- ボールトロックのステータスが変わりました。(消えました。※以前は「ロック済み-ガバナンスモード」)
- ガバナンスモード「compliance-early-delete-test-vault」のVaultをクリックします
- 「削除」をクリックします
- 削除が正常に受け付けられたようです
- 消えました
猶予期間経過後のコンプライアンスモード
-
ナビゲーションペインで「ボールト」をクリックします
考察
本書では、下記の整理ができました。
| モード | 適したユースケース |
|---|---|
| ガバナンスモード | 開発・検証環境、運用中に柔軟性が必要な場合 |
| コンプライアンスモード | 本番環境、法規制対応(金融・医療等)、ランサムウェア対策 |
- 設計時の注意点
-
保持期間の設計が重要
- Vault Lockの最大保持期間を超えるバックアップは作成できない
- 後から変更できない(コンプライアンスモード)ため、要件を十分に検討してから設定すべき
-
PITRとの制約
- 1つのAuroraクラスタに対して継続的バックアップ(PITR)は1つのVaultのみしか作れない
- 複数Vaultでの冗長化を検討する場合はスナップショットベースになる事がわかりました
-
猶予期間の活用
- コンプライアンスモードでも猶予期間中は削除・変更可能
- 設定ミスに気づいた場合のセーフティネットとして機能
- 本番適用前のテスト期間として活用できる
-
運用上の考慮事項
- コスト: Vault Lock自体に追加料金はないが、削除できない=ストレージコストが確定する
- 復旧テスト: ロック中でもリストアは可能なので、定期的な復旧テストは実施すべき
- 論理エアギャップボールト: より高いセキュリティが必要な場合は検討価値あり(AWS所有アカウントに保存されるため、アカウント侵害時も保護される)
-
まとめ
Vault Lockは「うっかり削除」と「悪意ある削除」の両方を防ぐ機能と感じました。。特にコンプライアンスモードは猶予期間経過後はAWSでも解除不可という点で、規制対応やランサムウェア対策として有効と感じました。
参考
































