Предотвратить горячее связывание файлов Amazon S3?

Я хотел бы разрешить любому воспроизводить видео, расположенное в моем s3, на моем сайте как srcв теге , но не позволять людям использовать его как srcна своем сайте. или , чтобы воспроизвести видео напрямую, введя URL-адрес в строку браузера.

Я не хочу, чтобы люди этим занимались:

enter image description here

и я не хочу, чтобы следующий HTML отображался на http :// ваш-site.com но только на http :// мой-site.com:


    

Я видел некоторые SO-ссылки по этому вопросу, но я хотел поговорить о коде, так как не смог заставить эти решения работать на меня.

Вот моя политика корзины, которая в настоящее время НЕ работает:

{
"Version": "2008-10-17",
"Statement": [
    {
        "Sid": "AllowPublicRead",
        "Effect": "Allow",
        "Principal": {
            "AWS": "*"
        },
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::my-bucket/*",
        "Condition": {
            "StringLike": {
                "aws:Referer": [
                    "https://my-site.com/*"
                ]
            }
        }
    }
  }

Два вопроса:

  1. Чтобы проверить свою политику корзины, я поместил приведенный выше HTML-код в тестовый файл на своем локальном хосте и, конечно же, я могу получить доступ к видео, набрав http://localhost/test.html. Почему моя политика корзины не предотвращает это? (Я бы хотел, чтобы он работал только сhttp://my-site.com/test.html)
  2. Чтобы люди не могли вводить URL-адрес s3 в панель браузера, я подумал, что мне нужно отдельное решение от политики ведра, поскольку из документации AWS мне не ясно, как предотвратить прямой доступ через браузер. Я думал о хешировании URL-адреса, чтобы его было трудно угадать. Возможно, есть способы использовать политику корзины AWS или другие решения?

Чтобы быть более ясным, мои файлы хранятся на s3, но они доставляются Amazon CloudFront. Таким образом, мой URL-адрес CloudFront src в настоящее время имеет вид media.my -site.com/my -video.mp4. CNAME — media.my -site.com.

13
задан Community 23 May 2017 в 11:48
поделиться