ECS: Os objetos na retenção do bloqueio de objetos do S3 podem ser excluídos ou substituídos.

Resumo: O S3 foi configurado com retenção de bloqueio de objeto. Mesmo que a retenção seja definida, o objeto pode ser excluído ou substituído.

Este artigo aplica-se a Este artigo não se aplica a Este artigo não está vinculado a nenhum produto específico. Nem todas as versões do produto estão identificadas neste artigo.

Sintomas

O S3 foi configurado com retenção de bloqueio de objeto. Mesmo que a retenção seja definida, o objeto pode ser excluído ou substituído.

Causa

O ECS está funcionando de acordo com a documentação do AWS S3.
Quando o bloqueio de objeto está ativado, o controle de versão também é ativado. A retenção na operação PUT do S3 agora está configurada para esse ID de versão exato.
O objeto agora é considerado a versão "atual".
Quando um "DELETE" é enviado sem apontar para o ID da versão, um "dmarker" está sendo criado. A versão do objeto sob retenção é vista como versão "não atual".
Ao "substituir" o objeto, o processo é o mesmo: a versão atual se torna não atual e uma nova versão é criada. A nova versão também está sob a retenção configurada!

Exemplo:
O usuário neste exemplo tem todas as permissões, exceto "s3:BypassGovernanceRetention"
Consulte o "ECS Data Access Guide" para obter detalhes sobre os métodos de retenção "Compliance" e "Governance".
Ativando o bloqueio de objeto no bucket "ObjectLockBucket"

mathias@client:/usr/share/s3curl$ ./s3curl.pl --debug --id=b_mathias_iam -- http://loadbalancer.fq.dn:9020/ObjectLockBucket?enable-object-lock -X PUT 

mathias@client:/usr/share/s3curl$ ./s3curl.pl --debug --id=b_mathias_iam -- http://loadbalancer.fq.dn:9020/ObjectLockBucket?object-lock |xmllint --format -
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ObjectLockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <ObjectLockEnabled>Enabled</ObjectLockEnabled>
</ObjectLockConfiguration>


No ECS, vemos que, junto com o "Bloqueio de objeto", o "Controle de versões" está ativado:

admin@ecs-n2:~> svc_bucket info ObjectLockBucket
svc_bucket v1.0.39 (svc_tools v2.15.0)                 Started 2024-02-23 10:33:37

Bucket ID                        b_mathias_ns.ObjectLockBucket

  Name                             ObjectLockBucket
  Namespace                        b_mathias_ns
  Owner User                       urn:ecs:iam::b_mathias_ns:root
  Owner VDC Name                   VDC1
  Owner zone/VDC ID                urn:storageos:VirtualDataCenterData:c65ec181-5c44-4491-94d1-d8c75beb2963
  Keypool Hash ID                  03faef6729cc80adb7fbeb228a0b50536cea6791973eabc99b44f1a30a28cad3
  Keypool Policy                   None
  Bucket ACL:
    Type       Affects    Name                                Access Rights
    user       file/dir   urn:ecs:iam::b_mathias_ns:root      FULL_CONTROL

  Replication Group (vpool) Name   RG1
  Replication Group (vpool) ID     urn:storageos:ReplicationGroupInfo:b94655e8-e8ad-4276-80ca-3eb095147f99:global
  Bucket Creation Date             2024-02-23 10:29:38 (1708684178025)
  Temp Failed (TSO)                False

  API Type                         S3
  FS Access Enabled                False
  Encryption Enabled               False
  Versioning State                 Enabled 	<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  ADO Enabled                      False
  ADO Read-Only                    False
  Object Lock Enabled              True		<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  Auto commit period (seconds)     None
  Enforce Retention                False
  Lifecycle Policy                 None

  Default FS Access permissions (for owner group):
    File                        Dir
    Read    Write   Exec       Read    Write   Exec
    Unk     Unk     Unk        Unk     Unk     Unk    

  Object count                     0
  Total Object Size                0 GB


Definir uma política padrão, um tipo de governança e uma retenção de 5 dias:

mathias@client:/usr/share/s3curl$ ./s3curl.pl --debug --id=b_mathias_iam -- http://loadbalancer.fq.dn:9020/ObjectLockBucket?object-lock -X PUT \
> -d "<ObjectLockConfiguration><ObjectLockEnabled>Enabled</ObjectLockEnabled>
> <Rule><DefaultRetention><Mode>GOVERNANCE</Mode><Days>5</Days></DefaultRetention></Rule></ObjectLockConfiguration>"

mathias@client:/usr/share/s3curl$ ./s3curl.pl --debug --id=b_mathias_iam -- http://loadbalancer.fq.dn:9020/ObjectLockBucket?object-lock |xmllint --format -
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ObjectLockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <ObjectLockEnabled>Enabled</ObjectLockEnabled>
  <Rule>
    <DefaultRetention>
      <Mode>GOVERNANCE</Mode>
      <Days>5</Days>
    </DefaultRetention>
  </Rule>
</ObjectLockConfiguration>


Criar o objeto "Object-under-retention", usando a opção de depuração no s3curl para receber o ID da versão.
O ID da versão, que é o registro de data e hora da época, é visto na resposta:

mathias@client:/usr/share/s3curl$ ./s3curl.pl --debug --id=b_mathias_iam --put=1k -- http://loadbalancer.fq.dn:9020/ObjectLockBucket/Object-under-retention
> PUT /ObjectLockBucket/Object-under-retention HTTP/1.1
> Host: loadbalancer.fq.dn:9020
> User-Agent: curl/7.81.0
> Accept: */*
> Date: Fri, 23 Feb 2024 11:00:16 +0000
> Content-Length: 28
> Expect: 100-continue
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 100 Continue
* We are completely uploaded and fine
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Fri, 23 Feb 2024 11:00:16 GMT
< Server: ViPR/1.0
< x-amz-request-id: 0a3c0814:18dcc3986d8:178c:f42b9
< x-amz-id-2: c7eb1c173a8121b873ce4973eb16c326b7b02a920ca4d002fd3715b7b53adbf5
< ETag: "9f8e337286aa2bf5147061f1a9b8b934"
< Last-Modified: Fri, 23 Feb 2024 11:00:16 GMT
< x-emc-mtime: 1708686016872
< x-emc-previous-object-size: 0
< x-amz-version-id: 1708686016872								<<<<<<<<<<<<<<<<<<<<<<<<<<<< Version under retention.
< Content-Length: 0
<
* Connection #0 to host loadbalancer.fq.dn left intact


Esta versão é a nossa versão "atual", um cabeçalho para este objeto exibe a retenção.
Ele também exibe nosso ID de versão 1708686016872, que colocamos sob retenção.

mathias@client:/usr/share/s3curl$ ./s3curl.pl --id=b_mathias_iam --head -- http://loadbalancer.fq.dn:9020/ObjectLockBucket/Object-under-retention
HTTP/1.1 200 OK
Date: Fri, 23 Feb 2024 11:00:54 GMT
Server: ViPR/1.0
x-amz-request-id: 0a3c0814:18dcc3986d8:1d87:6180
x-amz-id-2: c7eb1c173a8121b873ce4973eb16c326b7b02a920ca4d002fd3715b7b53adbf5
x-amz-version-id: 1708686016872												<<<<<<<<<<<<<<<<<<<<<<<<<<<<
x-amz-object-lock-mode: GOVERNANCE											<<<<<<<<<<<<<<<<<<<<<<<<<<<<
x-amz-object-lock-retain-until-date: 2024-02-28T11:00:16.872Z				<<<<<<<<<<<<<<<<<<<<<<<<<<<<
ETag: "9f8e337286aa2bf5147061f1a9b8b934"
Last-Modified: Fri, 23 Feb 2024 11:00:16 GMT
x-emc-mtime: 1708686016872  
Content-Type: application/octet-stream
Content-Length: 28


Também podemos abordar o versionID para o mesmo resultado:

mathias@client:/usr/share/s3curl$ ./s3curl.pl --id=b_mathias_iam --head -- http://loadbalancer.fq.dn:9020/ObjectLockBucket/Object-under-retention?VersionId=1708686016872
HTTP/1.1 200 OK
Date: Fri, 23 Feb 2024 11:01:41 GMT
Server: ViPR/1.0
x-amz-request-id: 0a3c0814:18dcc3986d8:ff2:25dc4f
x-amz-id-2: c7eb1c173a8121b873ce4973eb16c326b7b02a920ca4d002fd3715b7b53adbf5
x-amz-version-id: 1708686016872
x-amz-object-lock-mode: GOVERNANCE
x-amz-object-lock-retain-until-date: 2024-02-28T11:00:16.872Z
ETag: "9f8e337286aa2bf5147061f1a9b8b934"
Last-Modified: Fri, 23 Feb 2024 11:00:16 GMT
x-emc-mtime: 1708686016872
Content-Type: application/octet-stream
Content-Length: 28


A exclusão dos resultados atuais no HTTP 1/1 200 - sucesso.
Isso se deve ao controle de versão, não é uma exclusão, mas um "dmarker" é criado.
A versão permanece sob retenção. O "dmarker" tem o ID de versão 170868621362.

Deleting:
mathias@client:/usr/share/s3curl$ ./s3curl.pl --id=b_mathias_iam --head -- http://loadbalancer.fq.dn:9020/ObjectLockBucket/Object-under-retention
404 is reported correctly! The "current" for "Object-under-retention" no longer exists. But the VersionId is different:
HTTP/1.1 404 Not Found
Date: Fri, 23 Feb 2024 11:03:44 GMT
Server: ViPR/1.0
x-amz-request-id: 0a3c0814:18dcc3986d8:1d94:124b
x-amz-id-2: c7eb1c173a8121b873ce4973eb16c326b7b02a920ca4d002fd3715b7b53adbf5
Content-Type: application/xml
Date: Fri, 23 Feb 2024 11:03:44 GMT
x-amz-request-id: 0a3c0814:18dcc3986d8:1d94:124b
Server: ViPR/1.0
x-amz-delete-marker: true
x-amz-version-id: 1708686213620   <<<<<<<<<<<<<<<<<<<<<<<<<<<	


A versão do objeto 1708686016872 ainda existe e está sob retenção:

mathias@client:/usr/share/s3curl$ ./s3curl.pl --id=b_mathias_iam --head -- http://loadbalancer.fq.dn:9020/ObjectLockBucket/Object-under-retention?versionId=1708686016872
HTTP/1.1 200 OK
Date: Fri, 23 Feb 2024 11:08:20 GMT
Server: ViPR/1.0
x-amz-request-id: 0a3c0814:18dcc3986d8:1d94:36e8
x-amz-id-2: c7eb1c173a8121b873ce4973eb16c326b7b02a920ca4d002fd3715b7b53adbf5
x-amz-version-id: 1708686016872
x-amz-object-lock-mode: GOVERNANCE
x-amz-object-lock-retain-until-date: 2024-02-28T11:00:16.872Z
ETag: "9f8e337286aa2bf5147061f1a9b8b934"
Last-Modified: Fri, 23 Feb 2024 11:00:16 GMT
x-emc-mtime: 1708686016872	
Content-Type: application/octet-stream
Content-Length: 28


Esta versão não pode ser excluída:

mathias@client:/usr/share/s3curl$ ./s3curl.pl --id=b_mathias_iam --delete -- http://loadbalancer.fq.dn:9020/ObjectLockBucket/Object-under-retention?versionId=1708686016872
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><Resource>ObjectLockBucket/Object-under-retention</Resource><RequestId>0a3c0814:18dcc3986d8:1c48:26d90</RequestId></Error>

Resolução

O bloqueio de objeto no ECS exige a versão que está sendo endereçada para ver a retenção.
Novas versões podem ser criadas com o mesmo nome, também "dmarker" pode ser criado.

Consulte também a documentação do AWS S3 para esse comportamento:
https://aws.amazon.com/s3/features/object-lock/Esse hiperlink direcionará você para um site fora da Dell Technologies.
https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.htmlEsse hiperlink direcionará você para um site fora da Dell Technologies.

Produtos afetados

ECS, ECS Appliance, ECS Appliance Gen 1, ECS Appliance Gen 2, ECS Appliance Gen 3

Produtos

ECS Appliance Hardware Gen3 EX5000, ECS Appliance Hardware Gen3 EX300, ECS Appliance Hardware Gen3 EX3000, ECS Appliance Hardware Gen1 U-Series, ECS Appliance Hardware Gen1 C-Series, ECS Appliance Hardware Gen2 C-Series , ECS Appliance Hardware Gen2 D-Series, ECS Appliance Hardware Gen2 U-Series, ECS Appliance Hardware Gen3 EX500, ECS Appliance Hardware Gen3 EXF900, ECS Appliance Hardware Series, ECS Appliance Software with Encryption, ECS Appliance Software without Encryption, ECS Software ...
Propriedades do artigo
Número do artigo: 000222410
Tipo de artigo: Solution
Último modificado: 10 nov. 2025
Versão:  2
Encontre as respostas de outros usuários da Dell para suas perguntas.
Serviços de suporte
Verifique se o dispositivo está coberto pelos serviços de suporte.