Comment activer la suppression MFA pour mon compartiment Amazon S3 ?

Lecture de 7 minute(s)
0

Je souhaite activer la suppression par authentification multifactorielle (MFA) pour mon compartiment Amazon Simple Storage Service (Amazon S3) afin de protéger mes objets contre les suppressions involontaires.

Brève description

Avec Amazon S3 MFA Delete, vous pouvez empêcher les suppressions accidentelles d'objets. Si vous n'activez pas la suppression MFA, toute personne disposant de l'une des autorisations suivantes peut supprimer définitivement un objet Amazon S3 :

  • Mot de passe de l'utilisateur root
  • Informations d'identification d'un utilisateur ou d'un rôle AWS Identity and Access Management (IAM) suffisamment privilégié

Une fois que vous avez activé la suppression MFA, seul l'utilisateur root peut supprimer définitivement les versions des objets ou modifier la configuration de gestion des versions sur votre compartiment S3. L'utilisateur root doit être authentifié auprès d'un appareil MFA pour effectuer cette action.

Remarque : La suppression MFA n'est prise en charge que sur les compartiments dans lesquels la gestion des versions est activé. Le propriétaire du compartiment, le compte AWS qui a créé le compartiment et tous les utilisateurs IAM autorisés peuvent activer la gestion des versions. Toutefois, seul le propriétaire du compartiment du compte root peut activer la suppression MFA. 

Pour activer la suppression MFA pour votre compartiment, procédez comme suit :

  1. Générez une clé d'accès et une clé secrète pour l'utilisateur root.
  2. Activez un appareil de suppression MFA pour l'utilisateur root.
  3. Configurez l'interface de la ligne de commande AWS (AWS CLI) avec les informations d'identification de l'utilisateur root.
  4. Utilisez l'API PutBucketVersioning pour activer la fonctionnalité de suppression MFA.
  5. Vérifiez que la suppression de l'authentification MFA fonctionne. N'oubliez pas de supprimer vos clés d'accès root.

Remarque : Si vous recevez des erreurs lors de l'exécution des commandes de l'AWS CLI, assurez-vous que vous utilisez la version la plus récente de l'AWS CLI.

Résolution

Générez une clé d'accès et une clé secrète pour l'utilisateur root

Suivez les instructions de la section Création de clés d'accès pour l'utilisateur root.

Une fois que vous avez créé ces clés, vous recevez un avertissement expliquant que vous n'avez qu'une seule possibilité de les consulter ou de les télécharger. Vous ne pourrez pas récupérer ces clés ultérieurement. Veillez donc à les enregistrer pour configurer l'interface de ligne de commande AWS.

Activer un appareil MFA pour l'utilisateur root

Si aucun appareil MFA n'est activé pour l'utilisateur root, suivez les instructions de la section Activer un appareil MFA virtuel pour l'utilisateur root de votre compte AWS (console).

Si vous possédez déjà un appareil MFA activé pour l'utilisateur root, notez l'ARN.

Configurez l'interface de ligne de commande AWS avec les informations d'identification root

Exécutez la commande de configuration de l'interface de ligne de commande AWS.

  1. Lorsque vous êtes invité à saisir l'ID de clé d'accès AWS (Exemple : AKIAEXAMPLEABCQWE), collez l'ID de clé d'accès de l'utilisateur root que vous avez téléchargé à l'étape 1.
  2. Lorsque vous êtes invité à saisir la clé d'accès secrète AWS de l'utilisateur root, collez l'ID de la clé d'accès secrète. Vous pouvez trouver ces informations dans le fichier qui contient les informations d'identification de l'utilisateur root.
  3. (Facultatif) Lorsque vous faites la promotion pour le nom de région par défaut, vous pouvez ignorer le message et appuyer sur Entrée.
  4. (Facultatif) Lorsque vous êtes invité à indiquer le format de sortie par défaut, vous pouvez ignorer et appuyer sur Entrée.

Important : Si vous avez configuré des profils nommés sur l'interface de la ligne de commande AWS, vous devez créer un autre profil pour les informations d'identification de l'utilisateur root.

Pour configurer un profil nommé, exécutez la commande suivante :

aws configure --profile root_user

Utilisez l'API PutBucketVersioning pour activer la fonctionnalité de suppression du MFA S3

Pour activer la suppression MFA, exécutez la commande put-bucket-versioning :

aws s3api put-bucket-versioning --bucket mybucketname --versioning-configuration MFADelete=Enabled,Status=Enabled --mfa "arn:aws:iam::(accountnumber):mfa/root-account-mfa-device (pass)"

Exemple :

aws s3api put-bucket-versioning --bucket mybucketname --versioning-configuration MFADelete=Enabled,Status=Enabled --mfa "arn:aws:iam::1XXXXXXX6789:mfa/root-account-mfa-device 123789"

Dans cet exemple, 123789 est l'exemple de code à six chiffres généré avec le périphérique MFA.

Si vous avez utilisé un profil nommé pour l'utilisateur root, exécutez la commande suivante :

aws s3api put-bucket-versioning --bucket mybucketname --versioning-configuration MFADelete=Enabled,Status=Enabled --mfa "arn:aws:iam::1XXXXXXX6789:mfa/root-account-mfa-device 123789" --profile root_user

Si la commande aboutit, vous n'obtenez aucun résultat. Si vous recevez un message d'erreur, assurez-vous d'avoir installé la dernière version de l'interface de ligne de commande AWS. Vérifiez également que vous utilisez l'utilisateur root et que le code MFA et l'ARN sont valides.

Vérifiez que la suppression du MFA fonctionne

Vérifiez la console Amazon S3 pour vous assurer que la gestion des versions est activé pour le compartiment.

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"  
}

Après avoir activé la suppression MFA pour le compartiment, vous devez inclure l'en-tête de demande dans toutes les suppressions d'objets à venir pour supprimer définitivement une version d'objet. La valeur de l'en-tête est la chaîne du numéro de série de votre dispositif d'authentification, un espace et le code d'authentification qui y est affiché. Pour plus d'informations, consultez la section Suppression d'un objet d'un compartiment doté d'une fonctionnalité de suppression MFA. Vous pouvez utiliser l'option --mfa de la commande delete-object pour inclure la valeur de l'en-tête.

Si vous essayez de supprimer une version d'objet dans votre compartiment sans MFA, l'erreur suivante s'affiche. Cette erreur s'affiche également lorsque vous utilisez un utilisateur IAM pour essayer de supprimer la version de l'objet :

aws s3api delete-object --bucket mybucketname --key myobjectkey --version-id 3HL4kqCxf3vjVBH40Nrjkd  
An error occurred (AccessDenied) when calling the DeleteObject operation: Mfa Authentication must be used for this request

Pour utiliser l'utilisateur root pour supprimer une version d'un objet dans un compartiment avec la suppression MFA activée, exécutez la commande suivante :

aws s3api delete-object --bucket mybucketnme --key myobjectkey --version-id 3HLkqCxf3vjVBH40Nrjkd --mfa "arn:aws:iam::(accountnumber):mfa/root-account-mfa-device (pass)"  
{  
    "VersionId": "3HLkqCxf3vjVBH40Nrjkd"  
}

Remarque : Les utilisateurs ou les rôles IAM de votre compte AWS qui disposent de l'autorisation s3:DeleteObject peuvent toujours envoyer une demande de suppression d'objet réussie aux objets de votre compartiment sans spécifier d'ID de version. Dans un compartiment avec gestion des versions, cette demande crée un marqueur de suppression. La version actuelle de l'objet est conservée en tant que version précédente. La seule façon de supprimer définitivement un objet dans ces compartiments est de spécifier l'ID de version de la version de l'objet dans la demande de suppression de l'objet. Lorsque la suppression MFA est activée, seul l'utilisateur root peut supprimer les objets du compartiment en fonction de la version. L'utilisateur root doit également authentifier la demande auprès du dispositif MFA de l'utilisateur root.

Pour des raisons de sécurité, une fois que vous avez activé la suppression MFA, procédez comme suit :

Informations connexes

Configuration de la suppression MFA

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an
Aucun commentaire