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 accidentelle ou malveillante 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 d'un bucket ou l'activer sur un bucket existant pour lequel la gestion des versions d'objet n'avait jamais été activée auparavant, ou pour lequel la gestion des versions d'objet avait é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 :
- CLI : oci os object list-object-versions
- API : ListObjectVersions
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.
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 :
Répertoriez les objets et leurs versions dans un bucket.
Activez la gestion des versions d'objet lors de la création d'un bucket.
Obtenir les détails d'une version d'objet.
Activez ou désactivez la gestion des versions dans un bucket existant.
Statut de la gestion des versions d'objet
Pour chaque bucket Object Storage, la gestion de 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. Le tableau suivant décrit le comportement associé à chaque statut de gestion des versions d'objet.
| Statut | Description |
|---|---|
| Désactivé | Si la gestion des versions d'objet est désactivée sur un bucket :
|
| Activé | Si la gestion des versions d'objet est activée sur un bucket :
|
| Suspendu | Si la gestion des versions d'objet est suspendue sur un bucket :
|
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 une version spécifique, la dernière version de l'objets 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 supprimer pour que cette 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 différents 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.
Nous vous recommandons de supprimer les versions d'objet anciennes ou inutiles pour réduire les coûts de stockage. Envisagez d'utiliser la gestion du cycle de vie des objets pour gérer automatiquement les versions d'objet.
Stratégies IAM requises
Pour utiliser Oracle Cloud Infrastructure, un administrateur doit être membre d'un groupe auquel un administrateur de location a accordé un accès de sécurité dans une stratégie . Cet accès est requis, que vous utilisiez la console ou l'API REST avec un kit SDK, une interface de ligne de commande ou un autre outil. Si un message vous informe que vous n'avez pas d'autorisation ou que vous n'êtes pas autorisé, vérifiez auprès de l'utilisateur le type d'accès qui vous est accordé et le compartiment dans lequel vous travaillez.
Si vous ne connaissez pas les stratégies, reportez-vous à Gestion des domaines d'identité 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 activée sur un bucket du 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.
| Fonction | Description |
|---|---|
| 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 n'êtes pas autorisé à ajouter des règles de conservation à un bucket dont la gestion des versions est activée. Vous n'êtes pas autorisé à 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. |