Как безопасно обслуживать потоки HLS из S3 (авторизовано и аутентифицировано)

Проблема:

Я храню количествоHLS потоки вS3 с заданной файловой структурой:

Video1
  ├──hls3
      ├──hlsv3-master.m3u8
      ├──media-1
      ├──media-2
      ├──media-3
      ├──media-4
      ├──media-5
  ├──hls4
      ├──hlsv4-master.m3u8
      ├──media-1
      ├──media-2
      ├──media-3
      ├──media-4
      ├──media-5

В моем пользователеAPI Я знаю, какой именно пользователь имеет доступ к какому-либо видеоконтенту, но я также должен убедиться, что ссылки на видео не доступны для общего доступа и доступны только пользователям с соответствующими правами.

Решения:

1) Используйте подписанный / временныйS3 URL для частногоS3 содержание. Когда клиент хочет воспроизвести какое-то конкретное видео, он отправляет запрос на мойAPI, Если пользователь имеет права доступа,API генерирует подписанный URL и возвращает его обратно клиенту, который передает его игроку.

Проблема, которую я вижу здесь, состоит в том, что реальный видеоконтент хранится в десятках файлов сегментов всредства массовой информации-* каталоги, и я не вижу, как я могу защитить их все - нужно ли подписывать каждый URL-адрес файла сегмента отдельно?

2)S3 содержание является частным. Запросы видео потоков, сделанные игроками, проходят через мойAPI или отдельнообратный прокси, Поэтому, когда клиент решает воспроизвести конкретное видео,API / обратный прокси получает запрос, выполняет аутентификацию и авторизацию и передает нужный контент (файлы и сегменты основного списка воспроизведения).

В этом случае мне еще нужно сделатьS3 контент частный и доступен только моимAPI / обратный прокси, Какой должен быть рекомендуемый путь здесь?S3 rest аутентификация через токены?

3) Используйте шифрование с защищенным ключом. В этом случае все сегменты видео зашифрованы и доступны для общественности. Ключ также хранится вS3 но не является общедоступным. Каждый запрос ключа, сделанный игроком, аутентифицирован и авторизован моимAPI / обратный прокси.

Это 3 решения, которые я сейчас имею в виду. Не убежден во всех из них. Я ищу что-то простое и безопасное. Любые рекомендации / предложения?

Используемая технология:

FFmpeg для кодирования видео на разные битрейты

bento4 для сегментации видео

Ответы на вопрос(1)

Ваш ответ на вопрос