Je souhaite configurer un compartiment S3 afin de pouvoir récupérer les fichiers que je supprime de ce compartiment.

Pour vous protéger contre toute suppression accidentelle de fichiers dans un compartiment S3, vous pouvez activer le contrôle de version S3, ainsi que la prise en charge de la suppression via l'authentification multi-facteurs (MFA) du compte racine pour le compartiment correspondant. Si vous activez ces deux fonctions, tous les fichiers supprimés du compartiment sont marqués pour suppression. Les utilisateurs qui ne se connectent pas avec l'authentification multi-facteurs ne peuvent plus les voir, même s'ils sont propriétaires du compartiment en question. Dans ce scénario, seul le propriétaire du compartiment peut supprimer de manière permanente les fichiers marqués pour suppression, à condition qu'il se connecte au compte racine via l'authentification multi-facteurs.

Lorsque le contrôle de version et la prise en charge de la suppression via l'authentification multi-facteurs sont activés pour un compartiment S3 et que vous supprimez un fichier de ce compartiment, les utilisateurs ne peuvent plus y accéder. Par ailleurs, un ID de version DeleteMarker est ajouté à ce fichier. Pour annuler la suppression de ce fichier et permettre ainsi aux utilisateurs d'y accéder normalement, connectez-vous au compte racine via l'authentification multi-facteurs, puis supprimez l'ID de version de fichier DeleteMarker.

Remarque
L'annulation de la suppression des fichiers dans des compartiments S3 lorsque le contrôle de version S3 et la prise en charge de l'authentification multi-facteurs via le compte racine sont activés n'est pas anodine, notamment lorsque vous passez par l'interface de ligne de commande AWS. Compte tenu de la charge de travail que peut entraîner l'annulation de la suppression d'un grand nombre de fichiers, nous vous conseillons d'utiliser cette fonctionnalité avec parcimonie. Certains utilitaires tiers prennent en charge la suppression via l'authentification multi-facteurs et vous facilitent ainsi la tâche. Toutefois, cela n'empêche pas que vous devez taper le code MFA requis chaque fois qu'un objet est supprimé d'un compartiment.

Cet exemple utilise l'interface de ligne de commande AWS pour protéger le contenu d'un compartiment S3 contre toute suppression permanente en activant le contrôle de version et la prise en charge de la suppression via l'authentification multi-facteurs. Lorsqu'un compartiment S3 est configuré avec le contrôle de version et la prise en charge de la suppression via l'authentification multi-facteurs à partir du compte racine, vous pouvez restaurer tous les fichiers supprimés par les utilisateurs dans la mesure où vous disposez des autorisations de propriétaire pour ce compartiment et où vous vous connectez au compte racine avec l'authentification multi-facteurs.

Remarque
Pour les besoins de cet exemple, l'interface de ligne de commande AWS est configurée avec le format de sortie par défaut json, et les exemples de valeurs suivant sont utilisés :

  • Nom du compartiment : protectedbucket
  • Numéro de compte AWS : 2222-3333-4444
  • Nom de fichier : undelete.txt

Important
L'interface de ligne de commande AWS a été installée sur Linux pour cet exemple : si vous utilisez une autre plateforme, consultez la section Spécification des valeurs des paramètres pour l'interface de ligne de commandes AWS pour en savoir plus sur la syntaxe à utiliser.

1. Exécutez la commande de l'interface en ligne de commande AWS permettant de créer un compartiment S3. Si l'opération aboutit, cette commande renvoie le nom du compartiment.

aws s3 mb s3://protectedbucket

make_bucket: s3://protectedbucket/

2. Activez le contrôle de version et la prise en charge de la suppression via l'authentification multi-facteurs pour ce compartiment :

aws s3api put-bucket-versioning --bucket protectedbucket

--versioning-configuration '{"MFADelete":"Enabled","Status":"Enabled"}'

--mfa 'arn:aws:iam::222233334444:mfa/root-account-mfa-device token' --d

Remarque
Remplacez protectedbucket, le numéro de compte AWS (222233334444 dans cet exemple) et token par les valeurs appropriées. Pour obtenir la valeur correspondant à l'attribut « token » (jeton d'authentification), utilisez l'appareil MFA associé à votre compte racine. Si vous exécutez cette commande à partir d'une invite de commande Windows ou d'une invite Windows PowerShell, consultez la section Spécification des valeurs des paramètres pour l'interface de ligne de commandes AWS pour en savoir plus sur la syntaxe à utiliser. Le paramètre --d spécifié à la fin de la commande correspond à la version abrégée de --debug.

3. Pour vérifier que le contrôle de version et la prise en charge de la suppression via l'authentification multi-facteurs sont activés, exécutez la commande suivante.

aws s3api get-bucket-versioning --bucket protectedbucket

Si l'opération aboutit, la commande renvoie les résultats suivants :

{

    "Status": "Enabled",

    "MFADelete": "Enabled"

}

4. Importez un fichier dans votre compartiment S3 via la commande suivante en remplaçant undelete.txt par le nom de votre fichier. Si l'opération aboutit, la commande renvoie le chemin d'accès du fichier.

aws s3 cp undelete.txt s3://protectedbucket/

Télécharger: .\undelete.txt to s3://protectedbucket/undelete.txt

5. Utilisez la commande suivante pour vérifier que le fichier a bien été importé dans le compartiment S3. Cette commande renvoie le contenu du compartiment et devrait répertorier le fichier que vous avez importé, avec sa taille et l'heure de l'importation.

aws s3 ls s3://protectedbucket

6. Exécutez la commande suivante pour supprimer le fichier. Comme le contrôle de version et la prise en charge de la suppression via l'authentification multi-facteurs sont activés pour ce compartiment, le fichier semble ne plus être là. Cependant, il a uniquement été marqué pour suppression avec l'ID de version de fichier DeleteMarker.

aws s3 rm s3://protectedbucket/undelete.txt

Renouvelez l'étape 5 afin de vérifier que le fichier ne figure pas dans la liste de fichiers normaux du compartiment.

7. Exécutez la commande suivante pour répertorier tous les objets avec version du compartiment. Cette commande affiche les objets masqués. Cette commande renvoie un ID de version de fichier appelé DeleteMarker.

aws s3api list-object-versions --bucket protectedbucket

{

    "DeleteMarkers": [

        {

            "Propriétaire": {

                "DisplayName": "AwsTestAcct",

                "ID": "2998…6d9810"

            },

            "IsLatest": true,

            "VersionId": "Faq.NOzHyd6tjAKF1iObKbEnNQkIMPjj",

            "Key": "undelete.txt",

            "LastModified": "2016-12-09T15:13:45.000Z"

        }

    ],

    "Versions": [

        {

            "LastModified": "2016-12-09T15:02:26.000Z",

            "VersionId": "IIBiXG2zzrA5KZTCbTKOln2.V_lujWiG",

            "ETag": "\"252dcf1430a022a1cc346779e3cb19b9\"",

            "StorageClass": "STANDARD",

            "Key": "undelete.txt",

            "Propriétaire": {

                "DisplayName": "AwsTestAcct",

                "ID": "2998…6d9810"

            },

            "IsLatest": false,

            "Size": 540

        }

    ]

}

8. Exécutez la commande suivante pour essayer de supprimer l'ID de version de fichier DeleteMarker.

aws s3api delete-object --bucket protectedbucket --version-id 'Faq.NOzHyd6tjAKF1iObKbEnNQkIMPjj'

–-key undelete.txt

Cet tentative échoue, car le compartiment est configuré avec la prise en charge de la suppression via l'authentification multi-facteurs. Un message d'erreur similaire à celui qui apparaît ci-dessous devrait être renvoyé.

A client error (AccessDenied) occurred when calling the DeleteObject operation: Mfa Authentication must be used for this request

9. Exécutez la commande suivante avec l'authentification multi-facteurs pour supprimer l'ID de version de fichier DeleteMarker. Le statut du fichier redeviendra normal, ce qui permettra aux utilisateurs disposant des autorisations appropriées de voir le fichier dans le compartiment sans avoir besoin de l'authentification multi-facteurs.

aws s3api delete-object --bucket protectedbucket --version-id "Faq.NOzHyd6tjAKF1iObKbEnNQkIMPjj"

--key undelete.txt --mfa 'arn:aws:iam::222233334444:mfa/root-account-mfa-device token' --d

10. Pour vérifier que le fichier précédemment supprimé est désormais visible, exécutez la commande suivante :

aws s3 ls s3://protectedbucket

11. Au besoin, vous pouvez exécuter la commande suivante pour désactiver le contrôle de version et la prise en charge de la suppression via l'authentification multi-facteurs.

aws s3api put-bucket-versioning --bucket protectedbucket

--versioning-configuration '{"MFADelete":"Disabled","Status":"Suspended"}'

--mfa 'arn:aws:iam::222233334444:mfa/root-account-mfa-device token' --d

12. Pour vérifier que le contrôle de version et la prise en charge de la suppression via l'authentification multi-facteurs sont désactivés, exécutez la commande suivante.

aws s3api get-bucket-versioning –-bucket protectedbucket

Si le contrôle de version et la prise en charge de la suppression via l'authentification multi-facteurs sont désactivés, la commande renvoie les résultats suivants.

{

     "Status": "Suspended",

     "MFADelete": "Disabled"

}

Pour plus d'informations sur la suppression via l'authentification multi-facteurs, consultez la section Fonction Supprimer MFA.

Amazon S3, authentification multi-facteurs, MFA, supprimer, annuler la suppression, protéger, compartiment, fichiers


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 31/12/2015