Object Lock empêche la suppression des objets et de leurs versions, pendant une période définie par l'utilisateur.
La politique de rétention est définie à l'aide de l'API S3 ou des valeurs par défaut au niveau du Bucket ou directement sur l'objet.
Les objets sont verrouillés pour la durée de la période de rétention. Les scénarios de rétention légale sont également pris en charge.
Il existe deux types de protection:
Retention period: Spécifie une période de temps fixe pendant laquelle une version d'objet est verrouillée. Pendant cette période, votre version de l'objet est protégée en écriture et ne peut pas être modifiée ou supprimée.
Legal hold: Offre la même protection qu'une période de rétention, mais sans date d'expiration. Au contraire, Legal hold reste en place jusqu'à ce que vous la désactiviez explicitement. Les legal hold sont indépendantes des périodes de rétention.
Il existe deux modes pour la période de rétention :
Avec le mode conformité, si vous appliquez une période de rétention par erreur (par exemple 6 ans au lieu de 6 jours), cegedim.cloud n'a aucune possibilité de supprimer ou de réduire la période de rétention.
Une bonne pratique consiste à commencer avec le mode gouvernance pour effectuer des tests, puis de passer ensuite, en mode conformité.
Pour plus d'informations, voir :
Object Lock nécessite la désactivation de la fonctionnalité ADO (Access During Outage) au niveau du magasin d'objets.
Les Object Stores sans ADO ne peuvent pas être créés au travers d'ITCare et doivent manuellement par les équipes de cegedim.cloud.
Object Lock ne fonctionne qu'avec les Object Users de type IAM.
Object Lock ne fonctionne qu'avec des Buckets où le versionnage est activé.
L'activation de Object Lock sur le Bucket active automatiquement le versionnage .
Une fois Object Lock activé, il n'est pas possible de le désactiver ou de suspendre le versionnage au niveau du Bucket.
Object Lock n'est pas compatible avec les Buckets où la fonctionnalité "système de fichiers" est activée.
Object Lock est uniquement supporté l'API S3.
Un Bucket peut avoir une configuration Object Lock par défaut comprenant un mode de rétention (gouvernance ou conformité) et une période de rétention (exprimée en jours ou en années).
Object Lock s'appliquent uniquement aux versions individuelles des objets
Les différentes versions d'un même objet peuvent avoir des modes et des périodes de rétention différents.
Object Lock empêche la suppression ou la modification d'un objet. La modification ne signifie pas que de nouvelles versions ne peuvent pas être créées (de nouvelles versions peuvent être créées avec leurs propres paramètres de rétention).
Un objet peut toujours être supprimé en fonction de sa version. Un marqueur de suppression est créé. La version existe toujours et est verrouillée.
Le mode conformité est plus strict : les périodes de rétention ne peuvent pas être supprimées, réduites ou déclassés en mode gouvernance.
Le mode gouvernance est moins strict : les période de rétention peuvent être supprimées, contournées, ou même élevés en mode conformité.
La mise à jour des métadonnées d'une version d' un objet, qui se produit lorsque vous placez ou modifiez Object Lock, n'écrase pas la version de l'objet et ne réinitialise pas son horodatage "Last-Modified".
La période de rétention peut être placée explicitement sur un objet ou implicitement, par le biais d'une configuration Object Lock définit au niveau du Bucket.
Le fait de placer une une configuration Object Lock sur un Bucket n'a aucun effet les objets déjà présents dans le Bucket.
La modification de période de rétention définit au niveau du Bucket ne change pas la période de rétention sur les objets déjà présent dans le Bucket.
Les objets sous verrou sont protégés contre les suppressions de cycle de vie.
La logique du cycle de vie est rendue difficile en raison de la variété des comportements des différents verrous.
Du point de vue du cycle de vie, il existe des verrous sans date, des verrous dont la date peut être prolongée et des verrous dont la date peut être réduite.
Pour le Mode de conformité : la date de conservation ne peut pas être réduite, mais elle peut être augmentée.
Pour le Mode de gouvernance : la date de verrouillage peut augmenter, diminuer ou être supprimée.
Pour la protection de type Legal Hold, la rétention est indéfinie.
Le contrôle d'accès au travers des politiques IAM est une partie importante de la fonctionnalité Object Lock.
La permission s3:BypassGovernanceRetention
est importante car elle permet supprimer un objet protégé par Object Lock avec une configuration en mode gouvernance.
Les conditions des politiques IAM sont décrites ci-dessous et vous permettent de limiter la période de rétention et le type de protection (Legal Hold) spécifiés sur les objets.
Il n'est pas possible de gérer les politiques IAM avec ITCare.
Ces condition peuvent être utilisées dans les politiques de gestion des Buckets et IAM pour contrôler les comportements de Objet Lock sur objets.
Par exemple: s'assurer à ce que la période de rétention ne dépasse pas 5 ans.
Nous utilisons les utilitaires aws s3 et aws s3api issues du client S3 AWSCLIv2 sur Linux. ${S3_ENDPOINT}
& ${S3_PROFILE}
sont des variables d'environnement.
Créez un Bucket avec le Object Lock activé :
Vous ne pouvez activer Object Lock uniquement à la création d'un Bucket.
Vous ne pouvez pas activer Object Lock sur un Bucket existant.
Ajoutez une configuration Object Lock sur votre Bucket :
Obtenir la configuration Object Lock actuelle d'un Bucket :
Dans ce contexte, il n'y a pas de configuration Object Lock définie au niveau du Bucket.
Mais le Bucket a été créé avec le paramètre --object-lock-enabled-for-bucket.
Nous utilisons les utilitaires aws s3 et aws s3api issues du client S3 AWSCLIv2 sur Linux. ${S3_ENDPOINT}
& ${S3_PROFILE}
sont des variables d'environnement.
Téléchargez un objet dans un Bucket :
Appliquez la période de rétention sur l'objet :
Utilisez head-object
pour obtenir les métadonnées de l'objet et les informations sur la rétention :
Augmentez la rétention (+1 jours) :
Supprimez l'objet :
Vérifiez la version :
Cela affichera toutes les versions de l'objet ainsi que le marqueur de suppression
(DeleteMarker)
, créé lorsque nous avons supprimé l'objet.
Supprimez le marqueur de suppression
(DeleteMarker)
en utilisant l'identifiant de la version :
Uploadez une nouvelle version de l'objet :
Nous avons maintenant 2 versions de l'objet feather.ttf.
Supprimez une version spécifique :
La version de l'objet supprimée "devient" un marqueur de suppression
(DeleteMarker).
Lister les versions :
Utilisez l'option --bypass-governance-retention
pour contourner la mode gouvernance et supprimer le marqueur de suppression
(DeleteMarker)
:
Lister les versions :
Supprimer la dernière version de l'objet avec --bypass-governance-retention
:
Lister les versions :
Résultat vide.
Résultat vide - bucket vide.
Les configurations Object Lock peuvent être appliquées au niveau du Bucket.
La rétention sera appliquée sur chaque objet mis dans le Bucket.
Definition d'une configuration Object Lock
La configuration Object Lock est un document JSON :
Le mode de rétention par défaut que vous souhaitez appliquer aux nouveaux objets placés dans le Bucket. Doit être utilisé avec Jours ou Années.
Les valeurs possibles sont COMPLIANCE ou GOVERNANCE.
Le nombre de jours de la période de rétention appliquée par défaut. Doit être utilisé avec Mode.
Années
Le nombre d'années de la période de rétention appliquée par défaut. Doit être utilisé avec Mode. Les jours et les années sont mutuellement exclusif.
s3Browser est un client Windows freeware pour Amazon S3.
s3Browser ne vous permet pas de gérer les configurations Object Lock sur les Buckets ou les objets.
Avec s3Browser, vous pouvez voir les métadonnées des objets et obtenir la configuration Object Lock actuellement définie sur l'objet :
Cela signifie que, sans ADO, toutes opérations (lecture, création, mise à jour et suppression ainsi que lister des buckets), sur un site qui n'est pas propriétaire de l'objet ou du bucket, échoueront.
Les Object Users de type IAM ne peuvent pas être gérés au travers d'ITCare et doivent être créés manuellement par les équipes de cegedim.cloud.
Condition | Description |
---|---|
s3:object-lock-legal-hold
Permet l'application de la protection "Legal Hold" sur l'objet spécifié.
s3:object-lock-mode
Active l'application de la protection "Retention Period" sur l'objet spécifié.
s3:object-lock-retain-until-date
Permet l'application d'une date de conservation spécifique.
s3:object-lock-remaining-retention-days
Permet l'exécution d'un objet par rapport aux jours de rétention restants.