本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。
測試並示範StorageGRID S3物件鎖定功能
貢獻者
建議變更
_ 作者: Aron Klein_
物件鎖定提供WORM模型、可防止物件遭到刪除或覆寫。物件鎖定的實作係由Cohasset進行評估、以協助符合法規要求、支援合法持有和符合法規的物件保留模式、以及預設的儲存貯體保留原則。StorageGRID
本指南將示範S3物件鎖定API。
合法持有
-
物件鎖定合法保留是套用至物件的簡單開啟/關閉狀態。
aws s3api put-object-legal-hold --bucket <bucket> --key <file> --legal-hold Status=ON --endpoint-url https://s3.company.com
-
使用Get作業來驗證。
aws s3api get-object-legal-hold --bucket <bucket> --key <file> --endpoint-url https://s3.company.com
{ "LegalHold": { "Status": "ON" } }
-
關閉合法保留
aws s3api put-object-legal-hold --bucket <bucket> --key <file> --legal-hold Status=OFF --endpoint-url https://s3.company.com
-
使用Get作業來驗證。
aws s3api get-object-legal-hold --bucket <bucket> --key <file> --endpoint-url https://s3.company.com
{ "LegalHold": { "Status": "OFF" } }
法規遵循模式
-
物件保留會以保留直到時間戳記完成。
aws s3api put-object-retention --bucket <bucket> --key <file> --retention '{"Mode":"COMPLIANCE", "RetainUntilDate": "2025-06-10T16:00:00"}' --endpoint-url https://s3.company.com
-
確認保留狀態
aws s3api get-object-retention --bucket <bucket> --key <file> --endpoint-url https://s3.company.com +
{ "Retention": { "Mode": "COMPLIANCE", "RetainUntilDate": "2025-06-10T16:00:00+00:00" } }
預設保留
-
設定保留期間(以天數和年數為單位)、並使用「每個物件API」所定義的「保留截止日期」。
aws s3api put-object-lock-configuration --bucket <bucket> --object-lock-configuration '{"ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 10 }}}' --endpoint-url https://s3.company.com
-
確認保留狀態
aws s3api get-object-lock-configuration --bucket <bucket> --endpoint-url https://s3.company.com
{ "ObjectLockConfiguration": { "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 10 } } } }
-
將物件放入儲存區
aws s3api put-object --bucket <bucket> --key <file> --body "file" --endpoint-url https://s3.example.com
-
儲存區上設定的保留持續時間會轉換成物件上的保留時間戳記。
aws s3api get-object-retention --bucket <bucket> --key <file> --endpoint-url https://s3.company.com
{ "Retention": { "Mode": "COMPLIANCE", "RetainUntilDate": "2022-03-02T15:22:47.202000+00:00" } }
測試刪除具有定義保留的物件
物件鎖定是建置在版本管理之上。保留是在物件的某個版本上定義。如果嘗試刪除已定義保留的物件、但未指定版本、則會建立刪除標記作為物件的目前版本。
-
刪除已定義保留的物件
aws s3api delete-object --bucket <bucket> --key <file> --endpoint-url https://s3.example.com
-
列出儲存區中的物件
aws s3api list-objects --bucket <bucket> --endpoint-url https://s3.example.com
-
請注意、此物件並未列出。
-
-
列出要查看刪除標記的版本、以及原始鎖定版本
aws s3api list-object-versions --bucket <bucket> --prefix <file> --endpoint-url https://s3.example.com
{ "Versions": [ { "ETag": "\"82e8bfb872e778a4687a26e6c0b36bc1\"", "Size": 47, "StorageClass": "STANDARD", "Key": "file.txt", "VersionId": "RDVDMjYwMTQtQkNDQS0xMUVDLThGOEUtNjQ3NTAwQzAxQTk1", "IsLatest": false, "LastModified": "2022-04-15T14:46:29.734000+00:00", "Owner": { "DisplayName": "Tenant01", "ID": "56622399308951294926" } } ], "DeleteMarkers": [ { "Owner": { "DisplayName": "Tenant01", "ID": "56622399308951294926" }, "Key": "file01.txt", "VersionId": "QjVDQzgzOTAtQ0FGNi0xMUVDLThFMzgtQ0RGMjAwQjk0MjM1", "IsLatest": true, "LastModified": "2022-05-03T15:35:50.248000+00:00" } ] }
-
刪除物件的鎖定版本
aws s3api delete-object --bucket <bucket> --key <file> --version-id "<VersionId>" --endpoint-url https://s3.example.com
An error occurred (AccessDenied) when calling the DeleteObject operation: Access Denied