Pourquoi le message d'erreur « Accès refusé » s'affiche-t-il lorsque je télécharge des fichiers sur mon compartiment Amazon S3 associé à un chiffrement par défaut AWS KMS ?

Date de la dernière mise à jour 19/10/2020

Mon compartiment Amazon Simple Storage Service (Amazon S3) a un chiffrement par défaut AWS Key Management Service (AWS KMS). Mon utilisateur ou mon rôle AWS IAM (AWS Identity and Access Management) dispose de l'autorisation s3:PutObject sur le compartiment. J'essaie de charger des fichiers dans le compartiment, mais Amazon S3 renvoie un message d'erreur « Accès refusé ». Comment puis-je corriger ce problème ?

Résolution

Mettez à jour les autorisations AWS KMS de votre utilisateur ou de votre rôle IAM en fonction du message d'erreur que vous recevez.

Important : si la clé KMS AWS et l'utilisateur ou le rôle IAM appartiennent à des comptes AWS différents, vous devez ajouter les autorisations KMS à la stratégie IAM et à la stratégie de clé KMS.

« Une erreur s'est produite (AccessDenied) lors de l'appel de l'opération PutObject : Accès refusé »

Ce message d'erreur indique que votre utilisateur ou votre rôle IAM a besoin d'une autorisation pour l'action kms:GenerateDataKey. Cette autorisation est requise pour les compartiments qui utilisent le chiffrement par défaut avec une clé AWS KMS personnalisée. Procédez comme suit pour ajouter une autorisation pour kms:GenerateDataKey :

  1. Ouvrez la console IAM.
  2. À partir de la console, ouvrez l'utilisateur ou le rôle IAM que vous utilisez pour télécharger des fichiers dans le compartiment Amazon S3.
  3. Dans l'onglet Autorisations de l'utilisateur ou du rôle IAM que vous utilisez, développez chaque stratégie pour afficher son document de stratégie JSON.
  4. Dans les documents de stratégie JSON, recherchez les stratégies liées à l'accès AWS KMS. Examiner les instructions avec « Exécuter » : « Autoriser » pour vérifier si l'utilisateur ou le rôle dispose des autorisations pour l'action kms:GenerateDataKey sur la clé KMS AWS du compartiment. Si cette autorisation est manquante, ajoutez l'autorisation à la stratégie appropriée. Pour obtenir des instructions, consultez Ajout d'autorisations à un utilisateur (console) ou Modification d'une stratégie d'autorisations de rôle (console).
  5. Dans les documents de stratégie JSON, recherchez les instructions avec « Exécuter » : « Refuser ». Ensuite, confirmez que ces instructions ne refusent pas à votre utilisateur IAM ou à votre rôle l'accès à l'action kms:GenerateDataKey sur la clé utilisée pour chiffrer le compartiment.

« Une erreur s'est produite (AccessDenied) lors de l'appel de l'opération CreateMultipartUpload : Accès refusé »

Ce message d'erreur indique que votre utilisateur ou votre rôle IAM a besoin d'une autorisation pour les actions kms:GenerateDataKey et kms:Decrypt. Ces autorisations sont requises pour des chargements partitionnés sur un compartiment avec chiffrement AWS KMS par défaut. Procédez comme suit pour ajouter des autorisations pour kms:GenerateDataKey et kms:Decrypt :

  1. Ouvrez la console IAM.
  2. À partir de la console, ouvrez l'utilisateur ou le rôle IAM que vous utilisez pour télécharger des fichiers dans le compartiment Amazon S3.
  3. Dans l'onglet Autorisations de l'utilisateur ou du rôle IAM que vous utilisez, développez chaque stratégie pour afficher son document de stratégie JSON.
  4. Dans les documents de stratégie JSON, recherchez les stratégies liées à l'accès AWS KMS. Examiner les instructions avec « Exécuter » : « Autoriser » pour vérifier si l'utilisateur ou le rôle dispose des autorisations pour kms:GenerateDataKey et kms:Decrypt sur la clé AWS KMS du compartiment. Si ces autorisations sont manquantes, ajoutez les autorisations à la stratégie appropriée. Pour obtenir des instructions, consultez Ajout d'autorisations à un utilisateur (console) ou Modification d'une stratégie d'autorisations de rôle (console).
  5. Dans les documents de stratégie JSON, recherchez les instructions avec « Exécuter » : « Refuser ». Ensuite, confirmez que ces instructions ne refusent pas à votre utilisateur IAM ou à votre rôle l'accès à kms:GenerateDataKey et kms:Decrypt sur la clé utilisée pour chiffrer le compartiment.

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?