説明
Object Versioning は、ライブオブジェクトの上書きや削除時に旧バージョンを保持し、特定バージョンの復元に役立ちます。無効でもソフトデリートなど別の復旧手段がある場合があるため、実際の復旧方針を併せて確認する必要があります。
想定される影響
- 必要な旧バージョンや他の復旧手段がないと、誤った変更を戻しにくくなります。
- バージョニングはバケット削除を保護せず、権限を持つユーザーによる旧バージョンの削除もそれ自体では防ぎません。
対処方法
- 旧バージョンに継続的にアクセスする必要があれば、
versioning { enabled = true }を設定してください。誤操作や悪意ある削除からの復旧にはソフトデリートも検討してください。 - ライフサイクルと保持方針で費用を管理し、復元をテストしてください。削除権限を制限し、必要な不変性の制御は別途設定してください。
例
一つの設定を比較する抜粋です。バケット名を使用可能な値に置き換え、実際の復旧要件を確認してください。
変更前
hcl
resource "google_storage_bucket" "example" {
name = "foo"
location = "EU"
versioning {
enabled = false
}
}
変更後
hcl
resource "google_storage_bucket" "example" {
name = "foo"
location = "EU"
versioning {
enabled = true
}
}
補足:
- 変更前: 新しい非現行バージョンを蓄積しません。ソフトデリートや別のバックアップは個別に確認が必要です。
- 変更後: バージョニングを有効にします。過去に完全削除されたオブジェクトの復元やバケット削除の防止を行う設定ではありません。