AWS s3 — разница между «Загрузкой» и «URL-адресом объекта»

#amazon-web-services #amazon-s3

Вопрос:

Как бы я ни читал, я не могу найти ответ. Я настроил корзину и пользователя с разрешением GetObject. В консоли AWS я могу успешно использовать ссылки для загрузки и открытия (зеленые стрелки ниже), что, по-видимому, указывает на то, что разрешения установлены правильно. Однако при нажатии на ссылку URL-адрес объекта (красная стрелка ниже) я получаю сообщение об ошибке XML, в которой отказано в доступе.

Какова цель URL-адреса объекта? В чем разница между ним и кнопками загрузки/открытия? Кроме того, почему поле владелец пустое? Я оставил конфигурацию по умолчанию, в которой «должен» быть загрузчик в качестве владельца, нет?

Проблема

Ответ №1:

По умолчанию все корзины и объекты являются частными и недоступны из Интернета. Чтобы сделать ваши личные объекты доступными из Интернета без необходимости в учетных данных IAM, вам необходимо создать предварительно подписанный URL-адрес S3. И это именно то, что делают ссылки для открытия/загрузки — они генерируют предварительно подписанный URL-адрес S3, который вы можете использовать. Поэтому, когда вы нажмете на них, AWS сгенерирует предварительно подписанные URL-адреса S3, и браузер запросит объект, используя URL-адрес.

Щелчок по URL-адресу объекта не работает, поскольку, когда браузер отправляет запрос в AWS для этого объекта, он не подписывает запрос с использованием учетных данных IAM. URL-адрес объекта будет работать только в том случае, если корзина или объект разрешены для анонимного доступа. В этом случае учетные данные IAM не требуются. Это в основном полезно для обслуживания статических веб-страниц из S3.

Ответ №2:

Проще говоря, URL-адрес объекта-это внешняя ссылка, которая проверяет наличие общедоступных разрешений на доступ.

Загрузка и открытие использует ваши текущие разрешения пользователя, вошедшего в систему, чтобы проверить, должен ли у вас быть доступ к ним, поэтому они работают на вас.

Поле владелец может быть пустым, поскольку оно было загружено общедоступным/анонимным пользователем, у которого в вашей системе нет пользователя IAM.

По умолчанию объект Amazon S3 принадлежит идентификатору, который загрузил объект. Это означает, что если вы разрешите публичный доступ на запись в свою корзину, объекты, загруженные общедоступными (анонимными) пользователями, будут находиться в публичной собственности.

https://aws.amazon.com/premiumsupport/knowledge-center/s3-object-change-anonymous-ownership/

Комментарии:

1. Доступ на запись не является общедоступным; я использовал пользователя с ключом доступа (программный доступ).