#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. Доступ на запись не является общедоступным; я использовал пользователя с ключом доступа (программный доступ).