Sauvegardes S3 immuables

Procédure de configuration d'immutabilité des objets S3

Vous pouvez utiliser S3 Object Lock pour stocker des objets à l'aide d'un modèle WORM (Write-Once-Read-Many). Le verrouillage d'objet peut aider à empêcher la suppression ou l'écrasement d'objets pendant une durée déterminée ou indéfiniment. Vous pouvez utiliser S3 Object Lock pour répondre aux exigences réglementaires qui nécessitent un stockage WORM, ou ajouter une couche supplémentaire de protection contre les modifications et la suppression des sauvegardes.

Droits AWS requis pour effectuer l'opération:

  • s3:PutObjectLockConfiguration
  • s3:PutBucketVersioning 

Activation de la fonctionnalité Object Lock

  • Il n'est possible d'activer Object Lock que pour les nouveaux compartiments S3. Pour activer Object Lock pour un compartiment existant, il est nécessaire de contacter le support AWS pour avoir un devis tarifaire.
  • Lorsque vous créez un compartiment avec Object Lock activé, Amazon S3 active automatiquement la gestion des versions pour le compartiment.
  • Si vous créez un compartiment avec le verrouillage d'objet activé, vous ne pouvez pas désactiver le verrouillage d'objet ni suspendre la gestion des versions pour le compartiment.

Premier cas: Le compartiment s3 n'existe pas

Lorsque vous êtes dans le centre de management de bucket S3, cliquez sur Paramètres Avancés puis sélectionnez Activer:

Configurez ensuite le reste de votre compartiment.

Vous avez ensuite deux choix de configuration d'Object Lock:

Mode Gouvernance: Les objets dans le compartiment ne peuvent être supprimés sans disposer de droits élevés et posséder l'autorisation AWS s3:BypassGovernanceRetention.

Mode Conformité: Ce mode procure le plus haut niveau d'immutabilité existant. Il est impossible de supprimer les compartiments configurés via ce mode, même en possédant les droits du compte root AWS.

Nous vous invitons à configurer vos sauvegardes essentielles via le mode Conformité.

Enfin, choisissez votre durée de rétention des objets en la configurant en fonction de votre politique de sauvegarde.

Sources:

  • https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-overview.html
  • https://aws.amazon.com/fr/blogs/storage/how-to-manage-retention-periods-in-bulk-using-amazon-s3-batch-operations/

2ème cas: Le compartiment s3 existe

Vous avez contacté le support AWS et l'opération de copie des objets de votre compartiment existant vers le compartiment avec la fonctionnalité Object Lock est trop couteuse.

Nous vous recommandons alors de configurer vos futures sauvegardes via l'étape 1 de ce guide et d'appliquer les mesures de sécurité suivantes sur vos sauvegardes précédentes:

Configuration du MFA Delete

Une fois que vous avez activé le MFA delete, seul l'utilisateur root peut supprimer définitivement des objets s3 ou modifier la configuration du versionnage sur votre bucket S3. L'utilisateur root doit être authentifié par un dispositif MFA pour effectuer cette action.

Pour activer le MFA delete pour votre bucket, suivez les étapes suivantes :

  • Générez une clé d'accès et une clé secrète pour l'utilisateur root.
  • Configurez un dispositif MFA pour l'utilisateur root (si ce n'est pas déjà effectué).
  • Configurez l'interface de ligne de commande AWS (AWS CLI) avec les informations d'identification de l'utilisateur root.
  • Utiliser l'API PutBucketVersioning pour activer la fonction de suppression MFA.
    • aws s3api put-bucket-versioning --bucket mybucketname --versioning-configuration MFADelete=Enabled,Status=Enabled --mfa "arn:aws:iam::(accountnumber):mfa/root-account-mfa-device (pass)"

Vérifiez ensuite que la configuration s'est effectuée normalement:

Vérifiez dans la console Amazon S3 que le Versioning est activé pour le bucket.

Pour vérifier que la suppression MFA est activée, utilisez l'API GetBucketVersioning :

aws s3api get-bucket-versioning --bucket mybucketname  
{
    "Status": "Enabled",
    "MFADelete": "Enabled"
}

 

Si le résultat de l'objet JSON de MFADelete est Enabled, la configuration s'est bien terminée.