AWS спишет деньги даже отсутствие данных в S3
В статье рассматривается важная проблема, связанная с тем, что пустое хранилище AWS S3 может привести к неожиданно высоким расходам на AWS из-за несанкционированных входящих запросов.
Это практическое исследование служит предостережением о потенциальных финансовых рисках, связанных с сервисами AWS, в частности с S3, и подчеркивает важность понимания практики выставления счетов AWS и безопасной настройки сервисов AWS во избежание непредвиденных расходов.
📌 Неожиданно высокие затраты: У автора неожиданно резко вырос счет за AWS, составив более 1300 долларов, из-за того, что почти 100 000 000 запросов S3 PUT были выполнены в течение одного дня в пустой корзине S3, которую он настроил для тестирования.
📌Источник запросов: Изначально AWS по умолчанию не регистрирует запросы, выполняемые в корзинах S3. Автору пришлось включить журналы AWS CloudTrail, чтобы идентифицировать источник запросов. Было обнаружено, что неправильно настроенные системы пытались сохранить данные в его личном хранилище S3.
📌Выставление счетов за несанкционированные запросы: AWS взимает плату за несанкционированные входящие запросы в корзины S3. Это было подтверждено во время общения автора со службой поддержки AWS, в котором подчеркивалась важная политика выставления счетов, согласно которой владелец корзины оплачивает входящие запросы независимо от их статуса авторизации.
📌Предотвращение и защита: В статье отмечается, что не существует простого способа предотвратить подобные инциденты, кроме удаления корзины. AWS не позволяет защитить корзину с помощью таких сервисов, как CloudFront или WAF, при прямом доступе к ней через S3 API.
📌Расследование AWS: После инцидента AWS начала расследование проблемы, о чем свидетельствует твит Джеффа Барра, известного евангелиста AWS. Это говорит о том, что AWS осведомлена о потенциальных проблемах и, возможно, рассматривает способы их устранения.
📌За коды ошибок HTTP 4xx и 5xxx плата не взимается: Amazon S3 больше не будет взимать плату за ответы на ошибки HTTP 4xx и 5xx. Это изменение направлено на снижение затрат клиентов, сталкивающихся с такими ошибками.
📌Дата вступления в силу: Новая политика вступает в силу немедленно с даты объявления, то есть 16 мая 2024 года.
📌Влияние на клиентов: Ожидается, что это изменение принесет пользу клиентам за счет устранения расходов, связанных с распространенными ошибками клиентов и серверов, что потенциально приведет к экономии средств.
📌Учитываемые коды ошибок: Конкретные коды ошибок HTTP, за которые больше не будет взиматься плата, включают:
📌📌4xx Ошибки клиента (например, 404 Не найден, 403 запрещен)
📌📌5xx Ошибки сервера (например, 500 Внутренняя ошибка сервера, 503 Служба недоступна)
📌Обоснование: Решение об отмене этих сборов является частью постоянных усилий AWS по предоставлению экономически эффективных и удобных для клиентов услуг.
Цель заключается в устранении проблемы с выставлением счетов, которая потенциально может привести к неожиданно высоким расходам для клиентов. Конкретно:
📌Ранее владельцам корзины S3 взималась плата за запросы, которые возвращали ответы по протоколу HTTP 4xx (ошибка клиента), даже если эти запросы были несанкционированными и не инициировались владельцем корзины.
📌Это означало, что если злоумышленник или бот выполнял большое количество несанкционированных запросов к корзине S3, владельцу корзины выставлялся счет за эти ответы с ошибками 4xxx, что потенциально приводило к огромному, неожиданному счету.
📌После общественного резонанса по поводу этой модели выставления счетов, которая была сочтена несправедливой по отношению к клиентам, Amazon объявила об изменениях 13 мая 2024 года.
📌С учетом этого изменения владельцы пакетов больше не будут взимать плату за запросы или пропускную способность за запросы, которые возвращают ошибку HTTP 403 (отказано в доступе), если эти запросы были инициированы из-за пределов их учетной записи AWS или организации AWS.
📌Конкретные коды ошибок HTTP, за которые больше не будет взиматься плата, включают ошибки клиента 4xx (например, 404 Не найден, 403 запрещен) и некоторые коды перенаправления 3xx, когда запросы являются несанкционированными.