#java #spring-boot #amazon-s3 #amazon-s3-bucket
Вопрос:
Каков хороший способ разрешить доступ к корзине только определенному веб-приложению? Мне нужно, чтобы приложение могло получать доступ к ним по URL-адресу, но я не хочу, чтобы кто-либо, не использующий его, мог использовать URL-адрес объекта корзины для просмотра его в браузере.
Я попробовал другую политику корзины, которая разрешала бы только определенные ip-адреса, но я не смог правильно отформатировать ее.
В настоящее время в разделе «Блокировать публичный доступ (настройки корзины)» ничего не заблокировано.
Политика Ведра:
{ "Version": "2008-10-17", "Statement": [ { "Sid": "AllowPublicRead", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::nameofthebucket/*" } ] }
Политика CORS
[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "PUT", "POST", "DELETE" ], "AllowedOrigins": [ "http://www.example1.com" ], "ExposeHeaders": [] }, { "AllowedHeaders": [], "AllowedMethods": [ "GET" ], "AllowedOrigins": [ "*" ], "ExposeHeaders": [] } ]
Комментарии:
1. Итак, чего именно вы хотите достичь ?
2. Мое приложение SpringApp использует методы Put, Get и Delete для загрузки, загрузки и получения файлов из корзины s3, поэтому мне нужен этот доступ. А затем в интерфейсе я использую wavesurfer.js чтобы прочитать URL-адрес файла из скрытого текстового поля на странице jsp. Это скрытое значение URL-адреса видно из окна проверки браузера, поэтому мне нужно, чтобы приложение могло его прочитать, но также отказывало в доступе любому, кто пытается получить доступ к URL-адресу непосредственно в браузере.