Stockage Objet – Object Lock

Vue d’ensemble de la fonctionnalité

La fonctionnalité Object Lock (verrouillage d’objet) permet de stocker des objets suivant un modèle WORM (write once read many).

Elle empêche les objets d’être modifiés ou effacés pendant un certain temps. La durée est soit limitée (fonction retention period) soit illimitée (fonction legal hold).


Cas d’usage typique: obligation réglementaire ou protéger plus vos données (par exemple, sauvegarde immuable).


Quelques remarques:

  • la fonction retention period propose 2 modes qui changent son comportement
  • les 2 fonctions peuvent être utilisées ensemble ou séparément
  • la fonctionnalité (Object Lock) doit être activée à la création du bucket
  • cela requiert l’activation du versioning pour le bucket (automatique)


Avertissement:

  • parce que le versioning est activé, vous pouvez toujours supprimer un objet
    • cela crée un delete marker qui devient la version courante
    • l’objet initial reste inchangé (et protégé)

Fonction Retention Period (période de rétention)

La période de rétention peut être configurée:

  • par défaut pour un bucket (en jours ou années, s’appliquant aux nouveaux objets)
  • spécifiquement pour un objet (en utilisant un timestamp limite « RetainUntilDate »)
  • indépendamment de la fonction legal hold


Le mode de rétention doit être configuré en même temps:

  • le mode governance permet la modification avec des droits spécifiques (réduire, augmenter ou supprimer la rétention)
  • le mode compliance ne permet aucune modification (y compris par le propriétaire de l’account)

Fonction Legal Hold (« conservation légale »)

Le legal hold peut être configuré:

  • spécifiquement pour un objet
  • indépendamment de la fonction retention period

Cas d’usage avec AWS CLI

AWS CLI (Command Line Interface) est un outil à code source libre permettant de configurer et d’utiliser le stockage objet en passant des commandes dans un interface textuelle (un shell Linux ou la ligne de commande Windows).

Un guide utilisateur de l’outil est disponible sur https://docs.aws.amazon.com/cli/latest/userguide/.

Prérequis : activation de Object Lock

Ceci n’est possible qu’au moment de la création du bucket avec --object-lock-enabled-for-bucket.

Rétention par défaut d’un bucket

Le réglage nécessite à la fois un mode (GOVERNANCE ou COMPLIANCE) et une période (Days or Years).

Attention : le mode COMPLIANCE ne peut pas être contourné (même en utilisant une Access Key root d’account).

Mode GOVERNANCE et période de 1 jour:

Après réglage, tout nouvel objet possède une metadata « rétention jusque la date » (ObjectLockRetainUntilDate):

Vous ne pouvez pas supprimer l’objet avant que la date soit atteinte :

Cependant en mode GOVERNANCE, vous pouvez contourner la période de rétention avec --bypass-governance-retention:

Prolongation de la période de rétention d’un objet

Vous pouvez prolonger la période de rétention (en changeant l’horodatage RetainUntilDate). Vous ne pouvez pas la réduire.

Le nouvel horodatage doit être postérieur à l’actuel.


Prolongation en mode GOVERNANCE (avec --bypass-governance-retention):

Prolongation en mode COMPLIANCE :

Activation du legal hold d’un objet

Legal hold ON :

Après activation, l’objet possède une metadata « état legal hold » (ObjectLockLegalHoldStatus):

Legal hold OFF :

Obtention des informations object lock

Le plus simple est d’obtenir les métadonnées. Elles contiennent à la fois la période de rétention et le legal hold (si configurés).

Il est également possible de consulter spécifiquement la période de rétention ou le legal hold.


Métadonnées d’objet :


Période de rétention seule :


Legal hold seul :

Combinaison de la période de rétention et de legal hold

Un objet peut avoir une période de rétention et un legal hold.

Pour effacer cet objet, vous devez:

  • désactiver le legal hold (si permis)
    • (et) attendre 2023
    • (ou) contourner la période de rétention (si permis)

A propos de sécurité

N’utilisez jamais une Access Key root

Avec une AK root, vous pouvez contourner la rétention en mode GOVERNANCE et désactiver le legal hold.

Seul le mode COMPLIANCE ne peut pas être contourné.

Réduisez les permissions

Pour un usage normal (PUT d’objets dans un bucket), vous devriez appliquer une policy supprimant les permissions suivantes:

  • s3:BypassGovernanceRetention
  • s3:PutObjectLegalHold
  • s3:PutObjectRetention