#amazon-s3
#amazon-s3
Вопрос:
Я получаю несколько странных ошибок 403 от Amazon при запросе объектов из корзины S3. Это кажется прерывистым, и это происходит только в быстрой последовательности.
Если я попытаюсь получить доступ к тем же объектам позже, я обычно могу получить их без проблем.
Я нутром чую, что эти ошибки возникают из-за какого-то ограничения скорости, но я ничего не могу найти в документах. Является ли ограничение скорости возможной причиной ошибки 403?
Комментарии:
1. aws.amazon.com/articles/1109#04 предполагает, что вы можете получить эту ошибку, если для запрашивающего компьютера не установлено время в пределах 15 минут от веб-сервера S3, так что вы можете это проверить. Как показано на ссылке, вы получите код ошибки: RequestTimeToo-искажен, если это проблема
2. Я вижу те же периодические проблемы. Иногда после нескольких дней успешных 200 я начинаю получать 403 с одного устройства, продолжая получать 200 с другого. Объект не был недавно обновлен. Часы устройства указаны правильно. Есть идеи?
3. @Jordan вы когда-нибудь находили решение или причину этого?
4. 403 не указывает ограничение скорости. Это было бы 503. В общем случае 4xx — это какая-то ошибка клиента, а 5xx — какая-то ошибка сервера. w3.org/Protocols/rfc2616/rfc2616-sec10.html
5. Вы получили код ошибки обратно? Можете ли вы включить соответствующие фрагменты ответа?
Ответ №1:
Моя проблема заключалась в том, что объекты, которые я запрашивал, не существовали. Я не уверен, есть ли какая-либо специальная конфигурация, которую мы сделали, чтобы сделать ее 403, а не 404, но по сей день, если я пытаюсь запросить объект из нашего корзины, который, я уверен, не существует, я получаю 403.
Причина 403, вероятно, связана с безопасностью; если кто-то ищет объекты, и иногда они получают 403, потому что у них нет доступа к существующему объекту, а иногда они получают 404, потому что объект законно отсутствует, они потенциально могут получить некоторую конфиденциальную информацию.
Комментарии:
1. Если тот же пользователь, который выполняет запрос, имеет разрешения «Список», вместо этого он получит 404.
Ответ №2:
Если вы используете корзину S3 в качестве веб-сайта со статическим контентом, вам необходимо прикрепить политику с действием s3:GetObject
arn:aws:s3:::your-bucket/*
. Вот пример использования шаблона Cloudformation:
StaticWebsite:
Type: AWS::S3::Bucket
Properties:
AccessControl: PublicRead
BucketName: your-bucket
WebsiteConfiguration:
IndexDocument: index.html
StaticWebsitetPolicy:
Type: AWS::S3::BucketPolicy
Properties:
Bucket: !Ref StaticWebsite
PolicyDocument:
Statement:
- Effect: Allow
Action:
- s3:GetObject
Resource:
- arn:aws:s3:::your-bucket/*
Principal: "*"