Политика Amazon Bucket только для доступа к мобильным приложениям
У меня есть корзина в Amazon S3, и я устанавливаю данные внутри только для чтения для всех. Однако это не то, что я хочу. Я хотел бы, чтобы эти данные были доступны только из моего мобильного приложения и ограничивали их загрузку по URL.
Это возможно? если так, как реализовать такую политику ведра?
2 ответа
Традиционно доступ к мобильному приложению осуществляется следующим образом:
- Пользователь мобильного приложения проходит аутентификацию на вашем сервере (через ваше мобильное приложение). Это может быть сделано с помощью Amazon Cognito или с вашей собственной базой данных имени пользователя / пароля.
- Ваше приложение проверяет их личность и определяет, к каким данным им разрешен доступ. Затем он использует сервис маркеров безопасности AWS (STS) для генерации ограниченных по времени учетных данных с ограниченными разрешениями (например, доступ к определенному каталогу в сегменте S3). Внутреннее приложение отправляет эти учетные данные в мобильное приложение.
- Затем мобильное приложение может использовать учетные данные для вызова API-интерфейсов для AWS (без необходимости проходить через ваш внутренний сервер).
Если вы хотите, чтобы любой пользователь в вашем мобильном приложении имел доступ к корзине S3, то пользователю не нужно проходить аутентификацию на первом шаге - просто ваше мобильное приложение запросило некоторые временные учетные данные.
Ничто из вышеперечисленного не требует Bucket Policy. Разрешения будут предоставляться для учетных данных службы STS, а не для него.
Не существует прямого способа установить специфичные для клиента политики в сегментах S3, но ваш вариант использования может быть реализован другими способами.
Способ 1 - Установите реферер HTTP-запросов в своих мобильных приложениях и создайте политики на S3, которые соответствуют этому рефереру.
Способ 2 - перенаправить все ваши запросы через сервер, который соответствует типу клиента и добавляет несколько условий в запросе. Эти условия могут быть обработаны в политиках S3.
Способ 3 - перенаправить все запросы вашего приложения через сервер, ip которого занесен в белый список в корзине S3. Хотя здесь вы должны использовать какой-нибудь прокси-сервер или loadbalancer.
Вот официальный документ S3 для политик и условий доступа - http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html
Надеюсь это поможет!