バージョニング設定の確認が必要な S3 バケット

S3 バージョニングは、上書きや通常の削除後のオブジェクト復元に役立ちます。

説明

S3 バージョニングが有効でないと、オブジェクトの上書きや削除後に以前の状態へ戻す手段が限られます。別のバックアップを完全に代替するものではありませんが、変更履歴が重要なデータの復元に役立ちます。有効化前に失われた内容を復元する機能ではありません。

想定される影響

  • 誤って上書きしたオブジェクトを元に戻しにくくなる場合があります。
  • 削除や自動化の誤りにより、データ損失が広がり復旧が遅れるおそれがあります。

対処方法

  • 変更履歴を保持する必要があるバケットに versioning: yes を設定してください。
  • 古いバージョンを削除する権限を制限し、保持要件に合うライフサイクルと別のバックアップを検討してください。
  • 保存コストと復元手順を確認してください。一度有効にしたバージョニングは停止できますが、未使用の状態には戻せません。

例

バージョニング設定を比較する抜粋です。policy.json は別途用意し、バケットポリシーと Requester Pays も実際の要件に合わせてください。

変更前

yaml
- name: S3 버킷 생성
  amazon.aws.s3_bucket:
    name: mys3bucket
    policy: "{{ lookup('file','policy.json') }}"
    requester_pays: yes
    versioning: no

新しいバージョンの保持を有効にしていません。以前からバージョニングを使うバケットでは停止状態になりますが、既存バージョンが自動的に削除されるわけではありません。

変更後

yaml
- name: S3 버킷 생성
  amazon.aws.s3_bucket:
    name: mys3bucket
    policy: "{{ lookup('file','policy.json') }}"
    requester_pays: yes
    versioning: yes

以後の変更についてバージョンを保持します。バージョン ID を指定しない通常の削除では削除マーカーが作られますが、権限を持つ主体は特定のバージョンを完全に削除できるため、その権限も制限してください。

参考資料