{
  "slug": "legal-hold",
  "term": "Legal hold (storage)",
  "aliases": [
    "Object legal hold",
    "S3 legal hold"
  ],
  "definition": "A storage legal hold prevents deletion or replacement of protected data until an authorized action removes the hold, rather than expiring on a preset date.",
  "note": "In S3, legal hold is independent of retention: expiry of the retention period leaves the hold active, and removal of the hold leaves unexpired retention active. The s3:PutObjectLegalHold permission controls setting and removing it. [lock] This record describes storage behavior, not whether a legal preservation obligation is satisfied.",
  "status": "shipping",
  "advantages": [
    {
      "text": "The S3 API can target a versionId and set its legal-hold status to ON or OFF.",
      "citationIds": [
        "holdapi"
      ]
    }
  ],
  "limitations": [
    {
      "text": "This API is not supported for directory buckets or S3 on Outposts; compatible-service behavior must be verified separately.",
      "citationIds": [
        "holdapi"
      ]
    }
  ],
  "related": [
    "object-lock",
    "object-versioning",
    "immutability-storage",
    "worm-storage"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-15",
  "citations": [
    {
      "id": "lock",
      "title": "Amazon S3: Locking objects with Object Lock",
      "url": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html",
      "accessed": "2026-10-15"
    },
    {
      "id": "holdapi",
      "title": "Amazon S3 API: PutObjectLegalHold",
      "url": "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLegalHold.html",
      "accessed": "2026-10-15"
    },
    {
      "id": "hesela-backup-evidence",
      "title": "Hesela: Backup verification is not a restore test",
      "url": "https://hesela.com/analyses/backup-verification-is-not-a-restore-test/",
      "accessed": "2026-10-15"
    }
  ]
}
