[アップデート] AWS Backup Vault Lock が CLI/SDK だけでなくコンソールに対応 & より直感的に設定可能に

バックアップ保持期間の担保がコンソールで容易にできるよ
2022.10.05

どうも、ちゃだいん(@chazuke4649)です。

AWS Backup Vault Lock が CLI/SDK だけでなくマネジメントコンソール対応しました! & より直感的に設定可能になりました!

AWS Backup Launches New Backup Vault Lock Console Experience

そもそも、AWS Backup Vault Lock とは? こちらをどうぞ。

何が嬉しい?

AWS Backup はEBSやRDS、S3など様々なデータを保管するAWSサービスのバックアップ設定を横断・集中的に管理できるサービスです。各サービスから削除できないようになっていますが、AWS Backupコンソール/APIからは場合によって削除可能でした。それを Vault Lock によってそれすらも防止し、バックアップ保護をより担保しやすくなりました。

ただし、いままでは、AWS Backup Vault Lock は API,CLI,SDKのみ。コンソール未対応でした。

それが今回のアップデートによって、以下が更新されました。

  • AWS Backup Vault Lock がマネジメントコンソールも対応
  • コンソールのみ ガバナンス/コンプライアンスモード が選べるようになり、より直感的・かんたんに設定できるように

ガバナンスモード/コンプライアンスモード

2つのモードの説明は以下です。

データ保管庫のロックを作成する際、2つのモードを選択することができます。 ガバナンス・モードまたはコンプライアンス・モードです。ガバナンス モードは、十分な IAM 権限を持つユーザーのみがデータ保管庫を管理できるようにするためのものです。 ガバナンス モードは、組織がガバナンス要件を満たすのに役立ち、指定された担当者のみがバックアップ保管庫に変更を加えることができることを確実にします。コンプライアンス モードは、データ保持期間が完了するまで、データ保管庫(ひいてはその内容)が決して削除または変更されないことが期待されるバックアップ データ保管庫を対象としています。コンプライアンス モードのデータ保管庫は、一度ロックされると不変であり、ロックを解除することはできません。

ガバナンスモードでロックされたデータ保管庫は、適切な IAM 権限を持つユーザーが管理または削除することができます。

コンプライアンス モードのデータ保管庫ロックは、いかなるユーザーまたは AWS によっても変更または削除することはできません。コンプライアンス モードのデータ保管庫ロックには、ロックされ不変となるまでに設定した猶予期間があります。

引用元)AWS Backup Vault Lock - AWS Backup

方針としていずれかを選択できる点が、直感的に分かりやすくなった点と言えそうです。

余談)変更可能なガバナンスモードって必要?

そもそも、変更されないことを担保するための Valult Lockなのに、いかなるユーザーも変更できないコンプライアンスモード以外に、ガバナンスモードでは何か意味があるのでしょうか?

答えはYes。Vault Lockは「指定期間のバックアップの保持」をこのボールトは保証するよ、という担保になります。

  • min-retention-days : (コンソールでは必須) 最小保持期間 (日)
  • max-retention-days : (任意) 最大保持期間 (日)
  • changeable-for-days : (コンプライアンスモードのみ必須) クーリングオフ期間 (日)

Vault Lockでは上記パラメータが指定可能です。例えば「最小31日~最大366日」とした場合、このボールトでは、「1週間」で失効するEBSスナップショットや、「3年間」保持するS3は新しいバージョンの作成からエラーになります。

よって、特権IAMユーザーが削除できるか否かに関わらず、ボールトに対し保持期間のバックアップ取得を約束させること、がVault Lockの主たる役割と言えそうです。

後は、それを許可された特権IAMエンティティなら変更できるようにするのか、有無言わさず変更拒否するのかによってモードを使い分けたら良さそうです。

やってみた

以下を参考にやってみます。

ガバナンスモードで作成する

まず、AWS Backup コンソールに新しいページ「バックアップボールとロック(新規)」が追加されています。 ボールトロックの仕組みの解説もあります。 さっそく作ってみます。

既存の適当なバックアップボールトを選択し、ボールトロックモードを「ガバナンスモード」を選択しました。 ガバナンスモードでは、最小保持期間(必須)と、最大保持期間(任意)を選択できます。今回はデフォルトのまま、最小保持期間を1日のみ設定し進めます。

上記で触れた「指定した保持期間外の新しいバックアップ作成はエラーになる」ことなどの注意事項を確認し、実行します。

ボールトロックを作成することができました。

CLIでも確認すると以下が返ってきました。

% aws backup describe-backup-vault --backup-vault-name temp-backup-vault
{
    "BackupVaultName": "temp-backup-vault",
    "BackupVaultArn": "arn:aws:backup:ap-northeast-1:999999999999:backup-vault:temp-backup-vault",
    "EncryptionKeyArn": "arn:aws:kms:ap-northeast-1:999999999999:key/xxxxxx-xxxxxxx-xxxxxxx-xxxxxxx",
    "CreationDate": "2022-10-05T13:00:44.207000+09:00",
    "CreatorRequestId": "6446fe12-9c7b-450b-8764-03c598d009f3",
    "NumberOfRecoveryPoints": 1,
    "Locked": true,
    "MinRetentionDays": 1
}

コンプライアンスモードで作成する

続いて、コンプライアンスモードでも作ってみます。

※1つのボールトに設定できるボールトロックは1つのみです。以下は別のボールトに行なっています。

コンプライアンスモードを選択すると、「コンプライアンスモードの開始日」の入力項目が新たに表示されました。今回は最小猶予期間3日で本日が10月5日なので10月8日で設定します。

ガバナンスモードの注意事項に追加し、猶予期間後はあらゆるユーザーの変更が不可であることが念押されます。OKならそのまま実行します。

作成できました。ステータス欄に「猶予期間中」であることが明示されていて分かりやすいです。

CLIでも確認するとガバナンスモードと比較し、最後に「LockDate」が増えていることが確認できます。

% aws backup describe-backup-vault --backup-vault-name aws/efs/automatic-backup-vault
{
    "BackupVaultName": "aws/efs/automatic-backup-vault",
    "BackupVaultArn": "arn:aws:backup:ap-northeast-1:999999999999:backup-vault:aws/efs/automatic-backup-vault",
    "EncryptionKeyArn": "arn:aws:kms:ap-northeast-1:999999999999:key/xxxxxx-xxxxxxx-xxxxxxx-xxxxxxx",
    "CreationDate": "2020-11-21T20:12:29.350000+09:00",
    "CreatorRequestId": "DUMMYVALUEXXXXXXXXXXXXX",
    "NumberOfRecoveryPoints": 0,
    "Locked": true,
    "MinRetentionDays": 1,
    "LockDate": "2022-10-08T14:38:57.885000+09:00"
}

ボールトロックを削除する

まだ猶予期間中のコンプライアンスモードのボールトロックを削除します。 対象のボールトロックを選択し、管理するページに進みます。

「削除する」があるので、こちらを実行します。

最終確認を行い、削除します。

以上で削除ができました。

終わりに

AWS Backup Vault Lock がコンソールからカンタンに設定できるようになりました。要件に応じてぜひ利用検討してみてください。

それでは今日はこの辺で。ちゃだいん(@chazuke4649)でした。