Gestion des versions d'Object Storage

Découvrez comment utiliser la gestion des versions d'objet pour appliquer la protection des données contre la mise à jour ou la suppression accidentelles ou malveillantes d'objets Object Storage.

La gestion des versions d'objet est activée au niveau du bucket. La gestion des versions indique à Object Storage de créer automatiquement une version d'objet chaque fois qu'un nouvel objet est téléchargé vers le serveur, qu'un objet existant est écrasé ou qu'un objet est supprimé. Vous pouvez activer la gestion des versions d'objet lors de la création du bucket ou l'activer sur un bucket existant pour lequel la gestion des versions d'objet n'a jamais été activée auparavant, ou dont la gestion des versions d'objet a été suspendue.

Un bucket pour lequel la gestion des versions est activée peut contenir de nombreuses versions d'un objet. Il existe toujours une dernière version de l'objet et aucune ou plusieurs versions précédentes.

Chaque version d'objet a un ID de version unique. Certaines tâches lors de l'utilisation de l'interface de ligne de commande ou de l'API, telles que la suppression ou la récupération d'une version d'objet, nécessitent l'inclusion de l'ID de version d'objet. Vous pouvez trouver l'ID de version en exécutant les commandes ou opérations suivantes :

Pour plus d'informations sur l'obtention de l'ID de version d'un objet, reportez-vous à Liste des versions d'objet dans un bucket.

Important

La tarification Oracle Cloud Infrastructure standard s'applique à chaque bucket pour lequel la gestion des versions est activée. Vous êtes facturé pour l'ensemble des dernières versions d'objet et des versions d'objet précédentes (y compris les versions supprimées) stockées dans le bucket. Les versions d'objet précédentes sont conservées jusqu'à ce que vous les supprimiez explicitement.

La gestion des versions d'objet augmente vos coûts de stockage. Envisagez d'utiliser la gestion du cycle de vie des objets pour gérer automatiquement les versions d'objet.

Vous pouvez effectuer les tâches de gestion des versions d'objet suivantes :

Statut de la gestion des versions d'objet

Pour chaque bucket Object Storage, la gestion des versions d'objet a le statut Désactivé, Activé ou Suspendu. Par défaut, la gestion des versions d'objet est désactivée sur les buckets. Il est important de comprendre le comportement associé à chaque statut de gestion des versions d'objet.

Désactivé

Si la gestion des versions d'objet est désactivée sur un bucket :

  • La gestion des versions d'objet n'a jamais été activée sur le bucket.

  • Lorsque vous téléchargez vers le serveur un objet portant le même nom qu'un objet existant, l'objet est écrasé et ce dernier n'est pas conservé ni récupérable.

  • Lorsque vous supprimez un objet, la suppression est définitive et les objets ne peuvent pas être récupérés.

Activé

Si la gestion des versions d'objet est activée sur un bucket :

  • Lorsque vous téléchargez un objet portant le même nom qu'un objet existant, ce dernier devient une version précédente et le nouvel objet téléchargé devient la dernière version.

  • Un identificateur de version unique est affecté à chaque objet téléchargé. L'identificateur vous permet d'orienter les actions Object Storage vers une version spécifique.

  • Lorsque vous supprimez un objet, Object Storage conserve une version de l'objet supprimé. Pour plus d'informations sur la suppression d'objets, reportez-vous à Suppression de versions d'objet.

  • Vous ne pouvez pas désactiver la gestion des versions d'objet. Vous pouvez toutefois suspendre la gestion des versions.

Suspendu

Si la gestion des versions d'objet est suspendue sur un bucket :

  • Le comportement de téléchargement et de suppression est le même que pour un bucket dont la gestion des versions est désactivée.

  • Les versions d'objet créées avant la suspension de la gestion des versions sont conservées, sauf si vous prenez des mesures explicites pour les supprimer.

  • Vous pouvez à tout moment réactiver la gestion des versions d'objet.

Suppression de version d'objet

Aucun objet n'est physiquement supprimé d'un bucket pour lequel la gestion des versions est activée tant que vous n'effectuez pas explicitement cette action. Lorsque vous supprimez un objet sans cibler de version spécifique, la dernière version de l'objet devient une version précédente et un marqueur de suppression spécial est créé pour marquer le point de suppression. Un marqueur de suppression ne contient que des métadonnées minimales. Si vous supprimez un dossier, un marqueur de suppression est créé pour chaque objet du dossier. Supprimez le marqueur de suppression pour que la version supprimée devienne la dernière version d'objet.

Lorsque vous téléchargez un objet portant le même nom que le marqueur de suppression, l'objet téléchargé devient la dernière version de l'objet. Le marqueur de suppression est conservé. Un objet peut comporter plusieurs marqueurs de suppression et vous pouvez récupérer n'importe quelle version d'objet précédente.

La suppression des versions d'objet est différente. Lorsque vous supprimez une version d'objet, celle-ci est définitivement supprimée. La suppression définitive se produit également si vous supprimez explicitement la dernière version par ID de version. Toutes les opérations de suppression ciblant un ID de version d'objet spécifique suppriment définitivement les données.

Stratégies IAM requises

Pour utiliser Oracle Cloud Infrastructure, un administrateur doit vous accorder un accès sécurisé dans une stratégie. Cet accès est requis que vous utilisiez la console ou l'API REST avec un kit SDK, l'interface de ligne de commande ou un autre outil. Si un message vous indique que vous ne disposez pas des droits d'accès ou des autorisations nécessaires, vérifiez auprès de l'administrateur le type d'accès qui vous a été accordé et le compartiment dans lequel vous devez travailler.

Si vous ne connaissez pas les stratégies, reportez-vous à Introduction aux stratégies et à Stratégies courantes.

Pour les administrateurs :

  • Vous pouvez créer une stratégie qui permet au groupe IAM indiqué de gérer les espaces de noms Object Storage, les buckets et les objets associés dans tous les compartiments de la location. Par exemple, pour que le groupe IAM StorageAdmins puisse effectuer n'importe quelle opération dans la location :
    Allow group StorageAdmins to manage object-family in tenancy
  • Vous pouvez également créer des stratégies qui réduisent la portée de l'accès. Par exemple, vous pouvez créer des stratégies permettant au groupe StorageAdmins de gérer uniquement les buckets et les objets d'un compartiment de la location appelé ObjectStore :
    Allow group StorageAdmins to manage buckets in compartment ObjectStore
    Allow group StorageAdmins to manage objects in compartment ObjectStore
  • Si vous créez des stratégies plus restrictives qui octroient des droits d'accès individuels, BUCKET_UPDATE est requis pour activer la gestion des versions. Le téléchargement d'objets, l'écrasement d'objets existants ou la suppression d'objets requiert les droits d'accès standard nécessaires à ces opérations. OBJECT_VERSION_DELETE est requis pour supprimer des versions d'objet. Par exemple, pour autoriser un groupe appelé StorageSupport à gérer les ressources Object Storage, mais empêcher ce groupe de supprimer définitivement les versions d'objet, utilisez ce qui suit :
    Allow group StorageSupport to manage object-family in tenancy where request.operation != 'DeleteObjectVersion'

Pour plus d'informations sur les alternatives en matière d'écriture de stratégies, reportez-vous à Détails relatifs à Object Storage, Archive Storage et Transfert de données.

Portée et contraintes

  • La gestion des versions peut être appliquée à un bucket appartenant au niveau Standard (Object Storage) ou Archive Storage.
  • La restauration d'un objet archivé est une opération avec réutilisation de la mémoire qui ne crée pas de version d'objet.
  • Vous pouvez renommer la dernière version d'un objet mais vous ne pouvez pas renommer une version d'objet précédente. La modification du nom d'un objet crée un autre objet.

Interaction entre la gestion des versions et d'autres fonctionnalités Object Storage

Cette section décrit certains éléments clés à connaître à propos de l'interaction entre la gestion des versions d'objet et d'autres fonctionnalités Object Storage.

Recryptage de bucket

Le recryptage du bucket (à l'aide de la clé de cryptage Oracle ou de votre propre clé de cryptage maître) recrypte également toutes les versions d'objet existantes.

Gestion du cycle de vie

Les stratégies de cycle de vie peuvent archiver la dernière version ou les versions précédentes d'un objet. Lorsque des stratégies de cycle de vie suppriment la dernière version d'un objet, cet objet devient une version précédente et un marqueur de suppression est créé. Lorsque des stratégies de cycle de vie suppriment la version précédente d'un objet, cette suppression est définitive.

Copie d'objets

Si vous copiez la dernière version d'un objet vers un autre bucket, seul l'objet est copié. Aucune des versions précédentes de l'objet n'est copiée. Vous pouvez copier une version précédente d'un objet vers un autre bucket, mais cette action crée soit la dernière version d'un nouvel objet ou soit une version d'objet dans le bucket de destination.

Réplication

  • La réplication ne peut pas répliquer les versions d'objet précédentes.
  • Vous ne pouvez pas activer la gestion des versions sur un bucket de destination de réplication. Un bucket de destination est en lecture seule.

Règles de conservation

  • Vous ne pouvez pas ajouter de règles de conservation à un bucket pour lequel la gestion des versions est activée.
  • Vous ne pouvez pas activer la gestion des versions sur un bucket avec des règles de conservation actives.
  • Vous pouvez ajouter des règles de conservation à un bucket dont la gestion des versions est suspendue. Toutefois, vous ne pouvez pas reprendre la gestion des versions avec des règles de conservation actives.