Comment activer la suppression de MFA pour mon compartiment Amazon S3 ?

Lecture de 6 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

Lorsque vous ne configurez pas la suppression de MFA, toute personne disposant de l'une des autorisations suivantes peut supprimer définitivement un objet Amazon S3 :

  • Mot de passe de l'utilisateur racine
  • Informations d'identification d’utilisateur ou de rôle AWS Identity and Access Management (IAM) avec autorisation de suppression

Lorsque vous configurez la suppression de MFA, seul l'utilisateur racine peut supprimer définitivement les versions d’objet ou modifier la configuration de gestion des versions sur votre compartiment S3. Vous devez utiliser un périphérique MFA pour authentifier l'utilisateur racine afin d'effectuer l'action de suppression.

Pour configurer la suppression de 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 racine.
  2. Activer un périphérique MFA pour l'utilisateur racine.
  3. Configurez l'interface de ligne de commande AWS avec les informations d'identification de l’utilisateur racine.
  4. Configurez la suppression de MFA.
  5. Vérifiez que la suppression de MFA fonctionne et supprimez vos clés d'accès racine.

Vous pouvez utiliser la suppression de MFA uniquement sur les compartiments pour lesquels vous avez activé la gestion des versions S3. 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 compte utilisateur racine peut activer la suppression du MFA. Pour activer la suppression de MFA, vous devez utiliser l'AWS CLI ou l'API REST Amazon S3.

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'interface.

Résolution

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

Tout d'abord, créez des clés d'accès pour l'utilisateur racine. Après avoir créé ces clés, vous devez immédiatement les télécharger et les enregistrer. Vous ne pourrez pas récupérer ces clés ultérieurement.

Activer un périphérique MFA pour l'utilisateur racine

Si vous n'avez pas activé de périphérique MFA pour l'utilisateur racine, consultez la section Activer un périphérique MFA virtuel pour l'utilisateur racine (console). Si vous avez déjà activé un périphérique MFA pour l'utilisateur racine, notez l'ARN.

Configurer l'interface de ligne de commande AWS avec les informations d'identification de l’utilisateur racine

Procédez comme suit :

  1. Exécutez la commande configure de l'interface de ligne de commande AWS.
  2. Pour l'ID de clé d'accès AWS, par exemple AKIAEXAMPLEABCQWE, entrez l'ID de clé d'accès de l'utilisateur racine.
  3. Pour la clé d'accès secrète AWS de l'utilisateur racine, entrez l'ID de la clé d'accès secrète. La clé d'accès secrète se trouve dans le fichier contenant les informations d'identification de l'utilisateur racine.
  4. (Facultatif) Pour le nom de la région par défaut, vous pouvez entrer la région AWS par défaut.
  5. (Facultatif) Pour le format de sortie par défaut, vous pouvez entrer le format de sortie.

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 racine. Pour configurer un profil nommé, exécutez la commande configure suivante :

aws configure --profile root_user

Activer la suppression de MFA S3

Pour activer la suppression de 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::1XXXXXXX6789:mfa/root-account-mfa-device 123789"

Remarque : Dans la commande précédente, remplacez 1XXXXXXX6789 par l'ID de votre compte et 123789 par le numéro de série généré par le périphérique MFA.

Si vous utilisez un profil nommé pour l'utilisateur racine, exécutez la commande put-bucket-versioning 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 obtenez une sortie contenant une erreur, vérifiez que vous utilisez l'utilisateur racine et que les numéros de série ARN et MFA sont valides.

Vous pouvez également appeler l'API PutBucketVersioning pour activer la suppression de MFA.

Remarque : Vous ne pouvez pas utiliser la suppression de MFA avec les configurations de cycle de vie. S'il existe une configuration de cycle de vie sur le compartiment et que vous exécutez la commande put-bucket-versioning précédente, l'erreur suivante s'affiche :

« An error occurred (InvalidBucketState) when calling the PutBucketVersioning operation: Mfa Authentication is not supported on a bucket with lifecycle configuration. Delete lifecycle configuration before enabling Mfa Authentication. » (Une erreur s'est produite (InvalidBucketState) lors de l'appel de l'opération PutBucketVersioning : Mfa Authentication n’est pas pris en charge sur un compartiment avec la configuration du cycle de vie. Supprimez la configuration du cycle de vie avant d'activer l'authentification multifactorielle)

Vérifier que la suppression de MFA fonctionne

Tout d'abord, assurez-vous d'avoir activé la gestion des versions S3. Vous pouvez utiliser la console Amazon S3 ou l'API GetBucketVersioning :

aws s3api get-bucket-versioning --bucket mybucketname

Exemple de sortie :

{    
    "Status": "Enabled",    
    "MFADelete": "Enabled"    
}

Pour supprimer définitivement une version d'objet, vous devez inclure l'en-tête de requête x-amz-mfa. Vous pouvez utiliser l'option --mfa de la commande delete-object pour inclure la valeur de l'en-tête. 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. Pour plus d'informations, consultez la section Suppression d'un objet d'un compartiment activé pour la suppression de MFA.

Si vous n'activez pas la suppression de MFA et que vous essayez de supprimer la version d'un objet, le message d'erreur suivant s'affiche. L’erreur suivante 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. » (aws s3api delete-object --bucket mybucketname --key myobjectkey --version-id 3HL4kqCxf3vjVBH40Nrjkd (Une erreur s’est produite (AccessDenied) lors de l’appel de l’opération DeleteObject : l’authentification multifactorielle doit être utilisée pour cette requête.)

Pour utiliser l'utilisateur racine afin de supprimer une version d'un objet dans un compartiment avec la suppression de MFA activée, exécutez la commande delete-object suivante :

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

Remarque : Pour autoriser les utilisateurs ou les rôles IAM de votre compte à utiliser la requête delete-object sans ID de version, accordez-leur l’autorisation s3:DeleteObject. Pour les compartiments activés pour la gestion des versions, la requête delete-object crée uniquement un marqueur de suppression. Elle ne supprime pas définitivement la version de l'objet. Pour supprimer définitivement un objet, vous devez spécifier son ID de version.

Après avoir activé la suppression de l'authentification multifactorielle (MFA), prenez les mesures suivantes à titre de bonne pratique de sécurité :

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 3 mois