Controle de Versão do Serviço Object Storage

Saiba como usar o controle de versão do objeto para aplicar proteção de dados contra a atualização ou exclusão acidental ou maliciosa de objetos do serviço Object Storage.

O controle de versão do objeto está ativado no nível do bucket. O controle de versão direciona o serviço Object Storage para criar automaticamente uma versão de objeto sempre que é feito o upload de um novo objeto, um objeto existente é substituído ou quando um objeto é excluído. Você pode ativar o controle de versão do objeto no momento da criação do bucket ou ativá-lo em um bucket existente que nunca teve o controle de versão do objeto ativado antes ou que teve seu controle de versão do objeto suspenso.

Um bucket ativado para controle de versão pode ter muitas versões de um objeto. Há sempre uma versão mais recente do objeto e zero ou mais versões anteriores.

Cada versão do objeto tem um ID de versão exclusivo. Determinadas tarefas ao usar a CLI (Command Line Interface) ou a API, como excluir ou recuperar uma versão de objeto, exigem a inclusão do ID da versão do objeto. Você pode encontrar o ID da versão executando os seguintes comandos ou operações:

Consulte Listando Versões de Objeto em um Bucket para obter mais informações sobre como obter o ID da versão de um objeto.

Importante

O preço padrão do Oracle Cloud Infrastructure é aplicado a cada bucket ativado para controle de versão. Você pagou por todas as versões mais recentes do objeto e por versões anteriores do objeto (incluindo versões excluídas) armazenadas no bucket. As versões anteriores do objeto são mantidas até que sejam excluídas explicitamente.

O controle de versão do objeto aumenta os custos de armazenamento. Considere o uso do Gerenciamento do Ciclo de Vida do Objeto para ajudá-lo a gerenciar versões do objeto automaticamente.

Você pode executar as seguintes tarefas de controle de versão do objeto:

Status do Versão do Objeto

Cada bucket do serviço Object Storage tem o status de controle de versão de objeto desativado, ativado ou suspenso. Por padrão, o controle de versão do objeto fica desativado em um bucket. É importante entender o comportamento associado a cada status de controle de versão do objeto.

Desativado

Se o controle de versão do objeto estiver desativado em um bucket:

  • O controle de versão do objeto nunca foi ativado no bucket.

  • Quando você faz upload de um objeto com o mesmo nome de um objeto existente, ele é substituído e o objeto substituído não é retido ou recuperável.

  • Quando você exclui um objeto, a exclusão é permanente e os objetos não são recuperáveis.

Ativado

Se o controle de versão do objeto estiver ativado em um bucket:

  • Quando você faz upload de um objeto com o mesmo nome de um objeto existente, o objeto existente torna-se uma versão anterior e o objeto recém-transferido por upload torna-se a versão mais recente.

  • Cada objeto de upload recebe um identificador de versão exclusivo. O identificador permite que você direcione ações do serviço Object Storage para uma versão específica.

  • Quando você exclui um objeto, serviço Object Storage mantém uma versão do objeto excluído. Para obter mais informações sobre exclusão de objeto, consulte Exclusão de Versão de Objeto.

  • Não é possível desativar o controle de versão do objeto. No entanto, você pode suspender o controle de versão.

Suspenso

Se o controle de versão do objeto for suspenso em um bucket:

  • O comportamento de upload e exclusão é igual a um bucket que tem controle de versão desativado.

  • As versões do objeto criadas antes da suspensão do controle de versão são mantidas, a menos que você execute uma ação explícita para excluí-las.

  • Você pode reativar o controle de versão do objeto a qualquer momento.

Exclusão da Versão do Objeto

Nenhum objeto é excluído fisicamente de um bucket com controle de versão ativado até que você execute uma ação explícita para fazer isso. Quando você exclui um objeto sem direcionar uma versão específica, a versão mais recente do objeto torna-se uma versão anterior do objeto e um marcador de exclusão especial é criado para marcar o ponto de exclusão. Um marcador de exclusão contém apenas metadados mínimos. Se você excluir uma pasta, um marcador de exclusão será criado para cada objeto da pasta. Exclua o marcador de exclusão para tornar essa versão excluída a versão mais recente do objeto.

Quando você faz upload de um objeto com o mesmo nome do marcador de exclusão, o objeto transferido por upload torna-se a versão mais recente do objeto. O marcador de exclusão permanece. Pode haver vários marcadores de exclusão para um objeto e você pode recuperar qualquer uma das versões anteriores do objeto.

A exclusão da versão do objeto é diferente. Quando você exclui uma versão de objeto, ela é excluída permanentemente. A exclusão permanente também ocorrerá se você excluir explicitamente a versão mais recente por ID de versão. Todas as operações de exclusão que direcionam um ID de versão de objeto específico excluem permanentemente os dados.

Políticas Obrigatórias do Serviço IAM

Para usar o Oracle Cloud Infrastructure, você deve receber de um administrador o acesso de segurança em uma política . Esse acesso é necessário, quer você esteja usando a Console ou a API REST com um SDK, uma CLI ou outra ferramenta. Se você receber uma mensagem de que não tem permissão ou que não está autorizado, verifique com o administrador qual tipo de acesso você tem e em qual compartimento vai trabalhar.

Se você for iniciante em políticas, consulte Conceitos Básicos de Políticas e Políticas Comuns.

Para administradores:

  • Você pode criar uma política que permita que o grupo do serviço IAM especificado gerencie namespaces, buckets e seus objetos associados do serviço Object Storage em todos os compartimentos da tenancy. Por exemplo, para permitir que o grupo StorageAdmins do serviço IAM faça tudo na tenancy:
    Allow group StorageAdmins to manage object-family in tenancy
  • Como alternativa, você pode criar políticas que reduzam o escopo do acesso. Por exemplo, você pode criar as políticas para permitir que o grupo StorageAdmins gerencie apenas buckets e objetos em um compartimento chamado ObjectStore na tenancy:
    Allow group StorageAdmins to manage buckets in compartment ObjectStore
    Allow group StorageAdmins to manage objects in compartment ObjectStore
  • Se você criar políticas mais restritivas que concedam permissões individuais, será obrigatória a permissão BUCKET_UPDATE para ativar o controle de versão. O upload de objetos, a substituição de objetos existentes ou a exclusão de objetos exige as permissões habituais necessárias para essas operações. A permissão OBJECT_VERSION_DELETE é necessária para excluir versões de objetos. Por exemplo, para permitir que um grupo chamado StorageSupport gerencie recursos do serviço Object Storage, mas impedir que esse grupo remova permanentemente versões do objeto:
    Allow group StorageSupport to manage object-family in tenancy where request.operation != 'DeleteObjectVersion'

Para obter mais informações sobre outras alternativas para gravar políticas, consulte Detalhes para os Serviços Object Storage, Archive Storage e Data Transfer.

Escopo e Restrições

  • O controle de versão pode ser ativado em um bucket na camada Padrão (Object Storage) ou Archive Storage.
  • A restauração de um objeto arquivado é uma operação local e não cria uma versão do objeto.
  • Você pode renomear a versão mais recente de um objeto, mas não a versão anterior. A renomeação de um objeto cria um novo objeto.

Interação entre Controle de Versão e Outros Recursos do Serviço Object Storage

Esta seção descreve algumas questões importantes que você precisa saber sobre a interação entre controle de versão de objeto e outros recursos do serviço Object Storage.

Recriptografia de Bucket

A nova criptografia do bucket (usando a chave principal de criptografia da Oracle ou sua própria) também criptografa novamente qualquer versão existente do objeto.

Gerenciamento de Ciclo de Vida

As políticas de ciclo de vida podem arquivar a versão mais recente ou as versões anteriores de um objeto. Quando as políticas de Ciclo de Vida excluem a versão mais recente de um objeto, esse objeto torna-se uma versão anterior e um marcador de exclusão é criado. Quando as políticas de Ciclo de Vida excluem uma versão anterior de um objeto, essa exclusão é permanente.

Copiando Objetos

Se você copiar a versão mais recente de um objeto para outro bucket, apenas o objeto será copiado. Nenhuma das versões anteriores do objeto será copiada. Você pode copiar uma versão anterior de um objeto para outro bucket, mas essa ação cria a versão mais recente de um novo objeto ou uma nova versão do objeto no bucket de destino.

Replicação

  • A replicação não pode replicar versões anteriores do objeto.
  • Não é possível ativar o controle de versão em um bucket de destino de replicação. Um bucket de destino é somente para leitura.

Regras de Retenção

  • Não é possível adicionar regras de retenção a um bucket com controle de versão ativado.
  • Não é possível ativar o controle de versão em um bloco com regras de retenção ativas.
  • Você pode adicionar regras de retenção ao bucket que tem controle de versão suspenso. No entanto, não é possível retomar o controle de versão com regras de retenção ativas.