Как настроить разрешения для s3 bucket для приложения heroku? - PullRequest
0 голосов
/ 07 марта 2020

Цель: все пользователи могут просматривать, загружать и удалять файлы .jpg и .png из (и только из) файлов example.herokuapp.com и example.com.

Вопрос 1: Что из этого следует проверить?

s3 Block Public Access settings

Вопрос 2: Нужна ли политика корзины?

enter image description here

Я попробовал это, но, похоже, это не дало никакого эффекта:

{
    "Version": "2012-10-17",
    "Id": "Policy1464968545154",
    "Statement": [
        {
            "Sid": "Stmt1464968483613",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:PutObject",
            "Resource": [
                "arn:aws:s3:::herokuwebucator/*.jpg",
                "arn:aws:s3:::herokuwebucator/*.png"
            ],
            "Condition": {
                "StringLike": {
                    "aws:Referer": [
                        "https://example.herokuapp.com/*",
                        "https://www.example.com/*"
                    ]
                }
            }
        }
    ]
}

Вопрос 3 : Как должна выглядеть моя конфигурация CORS? В настоящее время я попробовал это, но не смог заставить его работать.

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>example.herokuapp.com</AllowedOrigin>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
    <AllowedOrigin>example.com</AllowedOrigin>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

Вопрос 4: Есть ли что-то еще, что мне нужно сделать?

Я тестирование, пытаясь загрузить изображение с localhost, а затем из example.herokuapp.com. Это должно произойти сбой от localhost и преуспеть от example.herokuapp.com. Для всех различных конфигураций, которые я пробовал, он либо успешно выполняется в обоих местах, либо не работает в обоих местах.

И, чтобы было ясно, я использую свои настоящие домены вместо example.com и example.herokuapp. .com.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...