Wie erlaube ich Benutzern, nur bestimmte Dateitypen in meinen AmazonS3-Bucket hochzuladen?
Ich möchte nur bestimmte Dateitypen in meinem Amazon Simple Storage Service (Amazon S3)-Bucket speichern. Ich möchte Uploads einschränken, damit mein Bucket nur diese Dateitypen akzeptiert.
Lösung
Mit einer Bucket-Richtlinie, die Anweisungen zum Zulassen und Verweigern kombiniert, kannst du Datei-Uploads auf bestimmte Dateitypen beschränken. Bei diesem Ansatz wird ein Musterabgleich für den Objektschlüssel verwendet, um die Anforderungen an Dateierweiterungen durchzusetzen.
Hinweis: Diese Methode filtert auf Grundlage der Dateierweiterungen im Objektschlüssel, nicht des tatsächlichen Dateiinhalts oder des Multipurpose Internet Mail Extensions (MIME)-Typs. Benutzer können diese Einschränkung umgehen, wenn sie Dateien umbenennen. Für die inhaltsbasierte Validierung solltest du zusätzliche Prüfungen in der Anwendungsebene in Betracht ziehen.
Verwende die folgenden zwei Arten von Anweisungen in der Bucket-Richtlinie:
-
Zulassungs-Anweisungen erlauben s3:PutObject-Aktionen nur für Objekte, die den genehmigten Dateitypen entsprechen.
-
Verweigerungs-Anweisungen verweigern s3:PutObject-Aktionen bei Objekten, die nicht den genehmigten Dateitypen entsprechen.
Hinweis: Die explizite Verweigerungsanweisung verhindert das Hochladen nicht autorisierter Dateitypen auch durch Benutzer mit umfassenden S3-Berechtigungen, wie z. B. dem Administratorzugriff.
Diese Bucket-Richtlinie ermöglicht beispielsweise die PutObject-Aktion für exampleuser nur für Objekte mit den Dateierweiterungen JPG, PNG oder GIF:
{ "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" ] } ] }
Hinweis: Ersetze DOC-EXAMPLE-BUCKET durch den Namen deines Buckets.
Gib für den ersten Prinzipal-Wert die Amazon-Ressourcennamen (ARNs) der Benutzer an, denen du Upload-Berechtigungen erteilen möchtest.
Hinweis: Wenn du Ressourcen in der Bucket-Richtlinie angibst, wird bei der Auswertung der Bucket-Richtlinie zwischen Groß- und Kleinschreibung unterschieden. Eine Bucket-Richtlinie, die s3:PutObject-Aktionen für NotResource arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.jpg verweigert, ermöglicht es dir, my_image.jpg hochzuladen. Wenn du jedoch versuchst, my_image.JPG hochzuladen, gibt Amazon S3 den Access Denied-Fehler zurück. Um beide Fälle zu unterstützen, nimm die Erweiterungen *.jpg und *.JPG in die Richtlinie auf.
Diese Beispiel-Bucket-Richtlinie beinhaltet eine explizite Verweigerungsanweisung. Wenn ein(e) Benutzer:in die Bedingungen nicht erfüllt, kann selbst der/die Benutzer:in, der/die die Bucket-Richtlinie einrichtet, seinen/ihren Zugriff auf den Bucket verlieren. Überprüfe daher die Bucket-Richtlinie sorgfältig, bevor du sie speicherst. Wenn du den Bucket versehentlich sperrst, findest du weitere Informationen unter Wie kann ich wieder auf meinen Amazon-S3-Bucket zugreifen, nachdem ich versehentlich allen Zugriff verweigert habe?
Verwende Amazon-GuardDuty-Malware-Schutz für S3 oder Amazon Macie, um einen Amazon-S3-Bucket auf der Grundlage anderer Kriterien als des Dateityps zu schützen. Die Scan-Engine des Amazon-GuardDuty-Malware-Schutzes überprüft alle hochgeladenen Dateien auf Malware. Amazon Macie meldet Erkenntnisse zu sensiblen Daten in unterstützten Dateiformaten, die du auf S3 hochgeladen hast. Es verwendet integrierte Kriterien oder deine benutzerdefinierten Datenkennungen.
- Themen
- Storage
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 10 Monaten