Существует три основных способа предоставления доступа к частному контенту в Amazon S3.
Вариант 1: учетные данные IAM
Вы можете добавить политику в IAM Пользователь, чтобы они могли получить доступ к частному контенту. Однако такие учетные данные должны использоваться только сотрудниками вашей организации. его нельзя использовать для предоставления доступа пользователям приложения.
Вариант 2. Временные учетные данные через STS
Ваше приложение может создавать временные учетные данные с помощью AWS токена безопасности Обслуживание. Эти учетные данные могут иметь определенные разрешения c и действительны в течение ограниченного периода времени. Это идеально для предоставления мобильным приложениям доступа к Amazon S3, поскольку они могут напрямую взаимодействовать с S3 без необходимости go через фоновое приложение. Учетным данным будет предоставлен доступ только к тем ресурсам, которые им разрешено использовать.
Эти типы учетных данных также могут использоваться веб-приложениями, когда веб-приложения выполняют вызовы непосредственно к службам AWS (например, из Node / JavaScript в браузере). Однако это не подходит для вашей ситуации WordPress.
Вариант 3. Предварительно подписанные URL-адреса
Представьте себе приложение для обмена фотографиями, где пользователи могут получить доступ к своим личным фотографии, и пользователи также могут делиться фотографиями с другими пользователями. Когда пользователь запрашивает доступ к определенной фотографии (или когда фоновое приложение создает страницу HTML, в которой используется фотография), приложение может создать предварительно подписанный URL-адрес , который предоставляет временный доступ к Amazon S3. объект .
Каждый предварительно подписанный URL-адрес предоставляет доступ только к одному объекту S3 и только в течение выбранного периода времени (например, 5 минут). Это означает, что вся логика разрешений c для того, имеет ли пользователь право на доступ к файлу, может быть выполнена во внутреннем приложении. Когда внутреннее приложение предоставляет предварительно подписанный URL-адрес в браузер пользователя, пользователь может получить доступ к контенту напрямую из Amazon S3, не переходя через внутренний интерфейс.
См .: Amazon S3 pre. подписанные URL
Ваша ситуация подходит для варианта № 3. Как только вы определили, что пользователю разрешен доступ к определенному файлу на S3, он может сгенерировать предварительно подписанный URL-адрес и включить его в качестве ссылки (или даже в теги <img src=...>
). Пользователь может затем загрузить файл. В этом процессе нет необходимости использовать роли IAM .