説明
オブジェクトのバージョニングを使わない場合、上書きや削除前の世代はバージョニングによって保持されません。他の復旧手段もなければ、誤操作や悪意ある変更後のデータ復旧が難しくなる場合があります。
Google Cloud は、誤操作や悪意ある削除への保護にソフトデリートを推奨しています。以前の世代を直接読み取る必要がある場合は、バージョニングも検討してください。バージョニングは、バケットや特定世代の永続的な削除をすべて防ぐ機能ではありません。
想定される影響
- 復旧可能な世代やバックアップがなければ、以前のオブジェクトの内容を失うおそれがあります。
- 以前の世代を無制限に保持すると、ストレージ費用が増える可能性があります。
対処方法
必要な復旧期間と変更履歴を決め、ソフトデリートとバージョニングを構成してください。以前の世代が必要な場合は versioning.enabled を true に設定してください。ライフサイクルルール、削除権限、保存費用を併せて確認し、実際のオブジェクト復旧を試験してください。
例
同じバケットのバージョニング設定を比較します。バケット名、プロジェクト名、サービスアカウントの JSON ファイルへのパスを実際の値に置き換えてください。ソフトデリートとライフサイクルルールは省略しています。
変更前
yaml
- name: 버킷 생성
google.cloud.gcp_storage_bucket:
name: ansible-storage-module
project: test_project
auth_kind: serviceaccount
service_account_file: /tmp/auth.pem
state: present
versioning:
enabled: no
新しい非現行世代を保持するバージョニングを無効にします。この設定だけで、既に存在する以前の世代が削除されることはありません。
変更後
yaml
- name: 버킷 생성
google.cloud.gcp_storage_bucket:
name: ansible-storage-module
project: test_project
auth_kind: serviceaccount
service_account_file: /tmp/auth.pem
state: present
versioning:
enabled: yes
バージョニングを有効にし、その後の置換や削除で非現行世代を保持します。既に失われたデータを復元したり、特定世代の削除をすべて防いだりする設定ではありません。