Comment autoriser les utilisateurs à charger uniquement certains types de fichiers dans mon compartiment Amazon S3 ?

Lecture de 2 minute(s)
0

Je souhaite stocker uniquement certains types de fichiers dans mon compartiment Amazon Simple Storage Service (Amazon S3). Je souhaite limiter les chargements afin que mon compartiment n'accepte que ces types de fichiers.

Résolution

Ajoutez à votre politique de compartiment des instructions autorisant ou refusant les actions suivantes :

  • N'autorisez l'action s3:PutObject que pour les objets dont l'extension est celle du type de fichier souhaité.
  • Refusez explicitement l'action s3:PutObject pour les objets qui ne possèdent pas l'extension du type de fichier souhaité.
    Remarque : cette instruction de refus explicite applique l'exigence file-type aux utilisateurs disposant d'un accès complet à vos ressources Amazon S3.

Par exemple, cette politique de compartiment autorise l'action S3:PutObject à exempleuser uniquement pour les objets ayant les extensions de fichier .jpg, .png ou .gif :

Avertissement : cet exemple de politique de compartiment inclut une instruction de refus explicite. Si un utilisateur ne remplit pas les conditions spécifiées, y compris celui qui définit la politique de compartiment, il peut se voir refuser l'accès au compartiment. Par conséquent, examinez attentivement la politique de compartiment avant de l'enregistrer. Si vous verrouillez accidentellement le compartiment, vous verrez s'afficher le message J'ai accidentellement refusé à tout le monde l'accès à mon compartiment Amazon S3. Comment 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 noms Amazon Resource Names (ARN) des utilisateurs auxquels vous souhaitez accorder des autorisations de chargement.
  • Pour les valeurs Resource et NotResource, remplacez DOC-EXAMPLE-BUCKET par le nom de votre compartiment.
  • Lorsque vous spécifiez des ressources dans la politique de compartiment, l'évaluation de cette dernière fait la distinction entre majuscules et minuscules. Une politique de compartiment qui refuse les actions s3:putObject sur un fichier arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.jpg NotResource vous permet de charger un fichier my_image.jpg. Toutefois, si vous tentez de charger un fichier my_image.JPG, Amazon S3 affichera le message d'erreur Accès refusé.
AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 8 mois