Teste e demonstre o bloqueio de objetos S3D no StorageGRID
Por Aron Klein
O Object Lock fornece um modelo WORM para impedir que objetos sejam excluídos ou substituídos. A implementação do StorageGRID do bloqueio de objetos é avaliada pela Cohasset para ajudar a atender aos requisitos regulatórios, oferecendo suporte à retenção legal e ao modo de conformidade para retenção de objetos e políticas de retenção de buckets padrão.
Este guia demonstrará a API S3D Object Lock.
Guarda legal
-
Bloqueio de objeto retenção legal é um simples status de ligar/desligar aplicado a um objeto.
aws s3api put-object-legal-hold --bucket <bucket> --key <file> --legal-hold Status=ON --endpoint-url https://s3.company.com
-
Verifique-o com uma operação GET.
aws s3api get-object-legal-hold --bucket <bucket> --key <file> --endpoint-url https://s3.company.com
{ "LegalHold": { "Status": "ON" } }
-
Desligue a retenção legal
aws s3api put-object-legal-hold --bucket <bucket> --key <file> --legal-hold Status=OFF --endpoint-url https://s3.company.com
-
Verifique-o com uma operação GET.
aws s3api get-object-legal-hold --bucket <bucket> --key <file> --endpoint-url https://s3.company.com
{ "LegalHold": { "Status": "OFF" } }
Modo de conformidade
-
A retenção de objeto é feita com um carimbo de data/hora retent until.
aws s3api put-object-retention --bucket <bucket> --key <file> --retention '{"Mode":"COMPLIANCE", "RetainUntilDate": "2025-06-10T16:00:00"}' --endpoint-url https://s3.company.com
-
Verifique o status de retenção
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" } }
Retenção padrão
-
Defina o período de retenção em dias e anos versículos a data de retenção até definida com a api per object.
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
-
Verifique o status de retenção
aws s3api get-object-lock-configuration --bucket <bucket> --endpoint-url https://s3.company.com
{ "ObjectLockConfiguration": { "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 10 } } } }
-
Coloque um objeto no balde
aws s3api put-object --bucket <bucket> --key <file> --body "file" --endpoint-url https://s3.example.com
-
A duração de retenção definida no bucket é convertida em um carimbo de data/hora de retenção no objeto.
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" } }
Teste a exclusão de um objeto com uma retenção definida
O bloqueio de objetos é construído sobre o controle de versão. A retenção é definida em uma versão do objeto. Se uma tentativa for feita para excluir um objeto com uma retenção definida e nenhuma versão for especificada, um marcador de exclusão será criado como a versão atual do objeto.
-
Exclua o objeto com retenção definida
aws s3api delete-object --bucket <bucket> --key <file> --endpoint-url https://s3.example.com
-
Liste os objetos no intervalo
aws s3api list-objects --bucket <bucket> --endpoint-url https://s3.example.com
-
Observe que o objeto não está listado.
-
-
Liste versões para ver o marcador de exclusão e a versão original bloqueada
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" } ] }
-
Exclua a versão bloqueada do objeto
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