Доступ запрещен для подписанного URL-адреса AWS CloudFront - PullRequest
0 голосов
/ 09 апреля 2019

Я настроил следующую информацию:

  1. Создание корзины AWS S3 и загрузка некоторых изображений в определенную папку
  2. Создание веб-распространения AWS CloudFront:
    • Имя домена источника: Выбранная корзина S3 из списка
    • Ограничить доступ к корзине: Да
    • Идентификация доступа к источнику: Выбранная существующая личность
    • Предоставить разрешения на чтение для корзины: Да,Обновление политики корзины

enter image description here

AccessDenied Доступ запрещен

Я получил подписанный URL из вышеуказанного процесса, например

image.png? Policy = xxxxx @ signature = xxx @ Key-Pair-Id = XXXXXXX

, но я не смог получить доступ к URL

Пример политики JSON для фронта облака

{
    "Statement": [{
        "Resource": "XXXXXXXXXX.cloudfront.net/standard/f7cecd92-5314-4263-9147-7cca3041e69d.png",
        "Condition": {
            "DateLessThan": {
                "AWS:EpochTime": 1555021200
            },
            "IpAddress": {
                "AWS:SourceIp": "0.0.0.0/0"
            },
            "DateGreaterThan": {
                "AWS:EpochTime": 1554848400
            }
        }
    }]
}

Добавлена ​​политика корзины CloudFront

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity XXXXXXXXXXXXXXX"
            },
            "Action": [
                "s3:PutObject",
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::bucket_name/*"
        },
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity XXXXXXXXXXXXXXX"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::bucket_name"
        }
    ]
}

1 Ответ

0 голосов
/ 09 апреля 2019

Похоже, что ошибка AccessDenied, которую вы видите, не имеет ничего общего с упомянутыми вами шагами, идентификатором доступа Origin, который позволяет CloudFront получить доступ к S3, используя специального пользователя с помощью sigv4, используя приведенные выше шаги, вы увидите оператор allow добавлен в политику сегмента.

Если это ошибка S3, вы увидите 2 идентификатора запроса, идентификатор хоста и запроса вместе с массажем отказа в доступе.

image.png? Политика = ххххх @ подпись = ххх @ Key-Pair-Id = XXXXXXX Если вы видите, что доступ запрещен, ошибка связана с подписанным URL-адресом CloudFront (ограниченный доступ для просмотра).

Чтобы увидеть, что не так с созданным подписанным URL-адресом CloudFront, попробуйте base64 декодировать значение политики и убедиться, что ресурсный ресурс истекает и т. Д., Верны или нет.

...