0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Backup Vault Lockについて試してみた

0
Posted at

背景・目的

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の作成

  1. AWSにサインインします
  2. AWS Backupに移動します
  3. ナビゲーションペインでボールトをクリックします
  4. 「ボールトの作成」をクリックします
  5. ボールトタイプにバックアップボールトを指定して作成します(ガバナンス用と、コンプライアンス用で2つ作成します)
    image.png
    image.png

Vault Lockの作成

  1. ナビゲーションペインでバックアップボールトロックをクリックします

ガバナンスモード

  1. 「ボールドロックを作成」をクリックします
  2. 下記を指定し、「ボールトロックを作成」をクリックします
  • ガバナンスモード
  • 最小保持期間:1日
  • 最大保持期間:1日
    image.png
  1. ポップアップが表示されるので、「確認」とチェックボックスをつけて、「作成」をクリックします
    image.png
  2. できました
    image.png

コンプライアンスモード

  1. 「ボールドロックを作成」をクリックします
  2. 下記を指定して、「ボールドロックを作成」をクリックします
  • コンプライアンスモード
  • 最小保持期間:1日
  • 最大保持期間:1日
  • コンプライアンスモードの開始日:2/10(最短でした。)
    image.png
    image.png
  1. ポップアップが表示されるので、「確認」とチェックボックスをつけて、「作成」をクリックします
    image.png
  2. できました
    image.png

バックアッププランを作成

  1. ナビゲーションペインでダッシュボードに移動します

ガバナンスモード

  1. 「バックアッププランを作成」をクリックします
  2. 下記を指定して、「プランを作成」をクリックします
  • 新しいプランを立てる
  • バックアッププラン名:任意
  • バックアップツール名:任意
  • バックアップボールド:ガバナンスモード用のVault
  • PITR:有効
  • 合計保持期間:Vaultの最大保持期間より長くする必要があります
  • 残りはデフォルトのまま
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
  1. リソースの割当で下記を指定し、「リソースを割り当てる」をクリックします
  • リソース割り当て名:任意
  • IAMロール:デフォルトのロール
  • リソースの選択:特定のリソースタイプを含める
  • リソースタイプ:Aurora
  • クラスターID:使用しているクラスタID
    image.png
    image.png

コンプライアンスモード

  1. 「バックアッププランを作成」をクリックします
  2. 下記を指定して、「プランを作成」をクリックします
  • 新しいプランを立てる
  • バックアッププラン名:任意
  • バックアップツール名:任意
  • バックアップボールド:コンプライアンス用のVault
  • PITR:有効
  • 合計保持期間:Vaultの最大保持期間より長くする必要があります
  • 残りはデフォルトのまま
    image.png
    image.png
    image.png
    image.png
    image.png
  1. リソースの割当で下記を指定し、「リソースを割り当てる」をクリックします
  • リソース割り当て名:任意
  • IAMロール:デフォルトのロール
  • リソースの選択:特定のリソースタイプを含める
  • リソースタイプ:Aurora
  • クラスターID:使用しているクラスタID
    image.png
    image.png

確認

しばらくするとバックアップが完了します。

コンプライアンスモード

  1. コンプライアンスモードのVaultを開きます
  2. 復旧ポイントをみると、「利用可能」になっています
    image.png

ガバナンスモード

すでに継続的バックアップが設定されているとのことで、1つのAuroraクラスタで、1つのVaultのみ有効なようです。

  1. ガバナンスモードのVaultを開きます
  2. 復旧ポイントをみると、「問題ありで完了」でエラーになっていました。またバックアップタイプもスナップショットになっています
    image.png

ガバナンスモードの再設定

  1. ナビゲーションペインでバックアッププランをクリックします

  2. ガバナンスモードのバックアッププランをクリックします

  3. バックアッププランの「編集」をクリックします
    image.png

  4. 下記を指定して保存します

  • PITRのチェックを外す
  • 時間も変更
    image.png

オンデマンドバックアップ

Vault Lockの合計保持期間より長く、オンデマンドバックアップの合計保持期間を指定すると、ジョブ実行後エラーになります

上記の通り、ガバナンスモードのバックアップが想定外だったのもあり、
オンデマンドバックアップを試してみます。

  1. ナビゲーションペインで「ダッシュボード」をクリックします

  2. 「オンデマンドバックアップ」をクリックします

  3. 下記を指定して、「オンデマンドバックアップの作成」をクリックします

    • リソースタイプ:Aurora+クラスタID
    • バックアップ期間:今すぐバックアップを作成
    • 合計保持期間を35日に設定 ※ 最大期間の1日より多く指定
    • バックアップボールト:ガバナンスモードのVault
      image.png
      image.png
  4. ジョブが失敗しました
    image.png

  5. あらためて、合計保持期間を超えないように1日に指定しました
    image.png

  6. しばらくすると成功しました
    image.png

Vault Lock中の削除の動作確認

  1. ナビゲーションペインで「ボールド」をクリックします

ガバナンスモード

  1. ガバナンスモードのVaultをクリックします

  2. 対象の復旧ポイント を選択し、「削除」をクリックします
    image.png

  3. ポップアップが表示され、復旧ポイントを削除しますか?と聞かれるので「確認」をクリックします

  4. 「RecoveryPoint cannot be deleted or updated (Backup vault configured with Lock).」が表示されました。また復旧ポイントも削除されていません。想定通りです
    image.png

コンプライアンスモード

  1. コンプライアンスモードのVaultをクリックします

  2. 対象の復旧ポイント を選択し、「削除」をクリックします
    image.png

  3. ポップアップが表示され、「復旧ポイントを削除」を選択し、「確認」をクリックします
    image.png

  4. 「RecoveryPoint cannot be deleted or updated (Backup vault configured with Lock).」が表示されました。また復旧ポイントも削除されていません。想定通りです
    image.png

ロック解除〜削除の動作確認

ガバナンスモード

ロック解除

  1. ガバナンスモードのVaultをクリックします
  2. 「ボールドロックを管理」をクリックします
  3. 「ボールドロックを削除」をクリックします
  4. バックアップボールトから「ガバナンスモードのVault」が削除されました
    image.png

削除

  1. ナビゲーションペインで「ボールト」をクリックします

  2. ボールトロックのステータスが変わりました。(消えました。※以前は「ロック済み-ガバナンスモード」)
    image.png

  3. ガバナンスモードのVaultをクリックします

  4. 復旧ポイントを選択し、「削除」をクリックします
    image.png

  5. 成功したようです。ステータスが「削除中」になりました
    image.png

  6. しばらくしたら、消えました

猶予期間中のコンプライアンスモード

猶予期間中に削除できるかテストもしたいので、急遽ここでもう一つVaultを作ります

Vaultを作成

  1. compliance-early-delete-test-vaultを急遽作ります

Vault Lockを作成

  1. コンプライアンスモードで作成します
  2. できました
    image.png

オンデマンドバックアップの作成

  1. ダッシュボードから「オンデマンドバックアップの作成」をクリックします
  2. 「オンデマンドバックアップ」を作成します
  3. 「完了」になりました
    image.png

猶予期間中のロック解除

  1. Vaultを選択し、「ボールトロックを管理」をクリックします
  2. 「ボールトロックを削除」をクリックします
  3. 成功しました「compliance-early-delete-test-vault」のボールトロックが削除されました。いつでも新しいボールトロックを作成できます。」が表示されました。ボールトロックも消えました
    image.png

削除

  1. ナビゲーションペインで「ボールト」をクリックします
  2. ボールトロックのステータスが変わりました。(消えました。※以前は「ロック済み-ガバナンスモード」)
  3. ガバナンスモード「compliance-early-delete-test-vault」のVaultをクリックします
  4. 「削除」をクリックします
    image.png
  5. 削除が正常に受け付けられたようです
    image.png
  6. 消えました
    image.png

猶予期間経過後のコンプライアンスモード

  1. ナビゲーションペインで「ボールト」をクリックします

  2. 猶予期間経過3日経過したので、ステータスが変わっていました
    image.png

  3. 「ボールトロックを管理」が押せなくなっていました
    image.png

  4. つぎに、「復旧ポイント」を選択し「全て削除」をクリックします
    image.png

  5. ポップアップが表示されるので、「復旧ポイントを削除」をクリックします
    image.png

  6. 削除できませんでした。想定通りです
    image.png

考察

本書では、下記の整理ができました。

モード 適したユースケース
ガバナンスモード 開発・検証環境、運用中に柔軟性が必要な場合
コンプライアンスモード 本番環境、法規制対応(金融・医療等)、ランサムウェア対策
  • 設計時の注意点
  1. 保持期間の設計が重要

    • Vault Lockの最大保持期間を超えるバックアップは作成できない
    • 後から変更できない(コンプライアンスモード)ため、要件を十分に検討してから設定すべき
  2. PITRとの制約

    • 1つのAuroraクラスタに対して継続的バックアップ(PITR)は1つのVaultのみしか作れない
    • 複数Vaultでの冗長化を検討する場合はスナップショットベースになる事がわかりました
  3. 猶予期間の活用

    • コンプライアンスモードでも猶予期間中は削除・変更可能
    • 設定ミスに気づいた場合のセーフティネットとして機能
    • 本番適用前のテスト期間として活用できる
  • 運用上の考慮事項

    • コスト: Vault Lock自体に追加料金はないが、削除できない=ストレージコストが確定する
    • 復旧テスト: ロック中でもリストアは可能なので、定期的な復旧テストは実施すべき
    • 論理エアギャップボールト: より高いセキュリティが必要な場合は検討価値あり(AWS所有アカウントに保存されるため、アカウント侵害時も保護される)
  • まとめ
    Vault Lockは「うっかり削除」と「悪意ある削除」の両方を防ぐ機能と感じました。。特にコンプライアンスモードは猶予期間経過後はAWSでも解除不可という点で、規制対応やランサムウェア対策として有効と感じました。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?