Pourquoi obtiens-je une erreur HTTP 403 Interdit lorsque j'essaie de charger des fichiers à l'aide de la console Amazon S3 ?

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

J'essaie de charger des fichiers dans mon compartiment Amazon Simple Storage Service (Amazon S3) à l'aide de la console Amazon S3. Toutefois, je reçois l'erreur HTTP 403 Interdit à la place. Comment puis-je résoudre ce problème ?

Brève description

Pour résoudre l'erreur HTTP 403 Interdit de la console Amazon S3, vérifiez les points suivants :

  • Autorisations manquantes pour s3:PutObject ou s3:PutObjectAcl
  • Autorisations manquantes pour utiliser une clé AWS Key Management Service (AWS KMS)
  • Instruction de rejet explicite dans la stratégie de compartiment 
  • La liste de contrôle d'accès (ACL) du compartiment n'autorise pas l'utilisateur racine du compte AWS à écrire des objets.
  • La stratégie de contrôle du service AWS Organizations n'autorise pas l'accès à Amazon S3

Résolution

Autorisations manquantes pour s3:PutObject ou s3:PutObjectAcl

Vérifiez que l'utilisateur ou le rôle AWS Identity and Access Management (IAM) que vous utilisez dispose des autorisations pour l'action s3:PutObject sur le compartiment. Sans cette autorisation, vous obtenez une erreur HTTP 403 Interdit. 

Si vous essayez de modifier la liste ACL de l'objet pendant le téléchargement, votre utilisateur ou votre rôle IAM doit également disposer des autorisations pour l'action s3:PutObjectAcl 

Autorisations manquantes pour utiliser une clé AWS KMS

Pour accéder à un compartiment S3 qui utilise le chiffrement par défaut avec une clé AWS KMS personnalisée, vous devez disposer des autorisations nécessaires pour utiliser la clé. 

Pour obtenir les autorisations d'utilisation de la clé, un administrateur de clé doit vous accorder des autorisations sur la stratégie de clé. Pour télécharger un objet dans un compartiment chiffré, votre utilisateur ou votre rôle IAM doit disposer au minimum des autorisations pour kms:Encrypt et kms:GenerateDataKey

Instruction de rejet explicite dans la stratégie de compartiment

Passez en revue la stratégie de compartiment pour toutes les instructions qui refusent explicitement (« Exécuter » : « Refuser ») l'autorisation pour s3:putObject sauf si certaines conditions sont remplies. Vérifiez que votre téléchargement répond aux exigences de la stratégie de compartiment pour l'accès à l'action s3:PutObject

Par exemple, si votre stratégie de compartiment refuse explicitement s3:PutObject sauf si la demande inclut le chiffrement côté serveur à l'aide de clés de chiffrement AWS KMS ou gérées par Amazon S3, vérifiez que vous utilisez le chiffrement correct pour télécharger des objets.

L'exemple d'instruction suivant dans une stratégie de compartiment refuse explicitement l'accès à S3:putObject sur le compartiment awsdoc-example-bucket sauf si la demande de téléchargement inclut le chiffrement avec la clé AWS KMS arn:aws:kms:us-east-1:111122223333:key :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ExampleStmt",
      "Action": [
        "s3:PutObject"
      ],
      "Effect": "Deny",
      "Resource": "arn:aws:s3:::awsdoc-example-bucket/*",
      "Condition": {
        "StringNotLikeIfExists": {
          "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:111122223333:key/*"
        }
      },
      "Principal": "*"
    }
  ]
}

Avertissement : avant d'enregistrer une stratégie de compartiment avec une instruction de refus explicite, vous devez examiner attentivement les paramètres du refus d'accès explicite. Si vous avez accidentellement refusé un accès, consultez la section J'ai accidentellement refusé l'accès à mon compartiment Amazon S3 à tout le monde. Comment puis-je rétablir l'accès ?

La liste ACL du compartiment ne permet pas à l'utilisateur d'écrire des objets

Si vous utilisez le compte d'utilisateur racine pour télécharger des objets dans le compartiment S3, vérifiez que la liste ACL du compartiment accorde à l'utilisateur racine l'accès aux objets en écriture. Pour plus d'informations, voir Comment puis-je définir les autorisations de compartiment ACL ? 

La stratégie de contrôle du service AWS Organizations n'autorise pas l'accès à Amazon S3

Si vous utilisez AWS Organizations, vérifiez les politiques de contrôle des services pour vous assurer que l'accès à Amazon S3 est autorisé.

Par exemple, la politique suivante entraîne l'erreur HTTP 403 Interdit lorsque vous tentez d'accéder à Amazon S3 parce qu'il refuse explicitement l'accès :

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Deny",
    "Action": "S3:*",
    "Resource": "*"
  }]
}

Pour plus d'informations sur les fonctionnalités d'AWS Organizations, consultez la section Activation de toutes les fonctions dans votre organisation.


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


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