Comment autoriser uniquement certains types de fichiers à être téléchargés dans mon compartiment Amazon S3 ?

Dernière mise à jour : 22/07/2021

Je souhaite restreindre à certains types de fichiers le contenu stocké dans mon compartiment Amazon Simple Storage Service (Amazon S3). Comment puis-je restreindre les types de fichiers pouvant être chargés dans mon compartiment ?

Solution

Ajoutez des instructions à votre stratégie de compartiment avec les effets suivants :

  • Autoriser l'action s3:PutObject uniquement pour les objets qui possèdent l'extension du type de fichier que vous souhaitez.
  • Refuser explicitement l'action s3:PutObject pour les objets qui ne possèdent pas l'extension du type de fichier que vous souhaitez.
    Remarque : cette instruction de refus explicite applique les exigences en matière de type de fichier aux utilisateurs disposant d'un accès complet à vos ressources Amazon S3.

Par exemple, la stratégie de compartiment suivante autorise l'action s3:PutObject à exampleuser uniquement pour les objets qui possèdent l'extension .jpg, .png ou .gif :

Avertissement : cet exemple de stratégie de compartiment inclut une instruction de refus explicite. Si un utilisateur ne remplit pas les conditions spécifiées, même l'utilisateur qui entre dans la politique de compartiment peut se voir refuser l'accès à celui-ci. Vous devez donc examiner attentivement la politique de compartiment avant de l'enregistrer. Si vous avez accidentellement verrouillé le compartiment, consultez J'ai accidentellement refusé à tout le monde l'accès à mon compartiment Amazon S3. Comment puis-je rétablir l'accès ?

{
  "Version": "2012-10-17",
  "Id": "Policy1464968545158",
  "Statement": [
    {
      "Sid": "Stmt1464968483619",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111111111111:user/exampleuser"
      },
      "Action": "s3:PutObject",
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.jpg",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.png",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.gif"
      ]
    },
    {
      "Sid": "Stmt1464968483619",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "NotResource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.jpg",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.png",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.gif"
      ]
    }
  ]
}

Remarque :

  • Pour la première valeur Principal, répertoriez les Amazon Resource Names (ARN) des utilisateurs auxquels vous souhaitez accorder des autorisations de téléchargement.
  • Pour les valeurs Resource et NotResource, assurez vous de remplacer DOC-EXAMPLE-BUCKET par le nom de votre compartiment.
  • Lorsque vous spécifiez des ressources dans la politique de compartiment, l'évaluation de la politique de compartiment est sensible à la casse. Une politique de compartiment qui refuse les actions s3:PutObject pour NotResource « arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.jpg » vous permettra de télécharger « my_image.jpg ». Toutefois, si vous essayez de télécharger « my_image.JPG », Amazon S3 renvoie une erreur Accès refusé.

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


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