Конфигурация S3 CORS заменена настройками общего доступа? - PullRequest
1 голос
/ 04 июня 2019

Для небольшого тестового веб-приложения я ранее пытался установить конфигурацию CORS для корзины S3.У меня не было ACL и общедоступного доступа, настроенного на следующее:

S3 block public access screen

(все проверено, кроме последнего варианта) ПОСЛЕ того как я установил следующую политику:

{
    "Version": "2012-10-17",
    "Id": "Policy1559671538244",
    "Statement": [
        {
            "Sid": "Stmt1559671517813",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::somename/*"
        }
    ]
}

Доступ к S3 работал нормально, мой локальный браузер мог получить доступ ко всем загруженным ресурсам.Однако затем мне нужно было активировать CORS для определенной страницы, и я добавил следующую конфигурацию CORS:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>HEAD</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>

Я неоднократно получал сообщение об ошибке No 'Access-Control-Allow-Origin' header is present on the requested resource. Это не работало, пока я не деактивировал все параметры общего доступа к блоку,Это было неожиданно.Теперь я повторно активировал соответствующие опции Блокировать публичный доступ и, похоже, продолжает работать.Это наводит меня на мысль, что S3 интерпретирует конфигурацию CORS как новую политику общего доступа или как ACL.И поэтому настройки общего доступа блока заменяют также конфигурацию CORS.Я не видел это упомянутое в документации.Кто-нибудь знает больше об этом?

1 Ответ

0 голосов
/ 05 июня 2019

Я нашел https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html с

The request method (for example, GET or PUT) or the Access-Control-Request-Method
header in case the of a preflight OPTIONS request must be one of the AllowedMethod
elements.

Можете ли вы попробовать добавить

<AllowedMethod>Access-Control-Request-Method</AllowedMethod>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...