Security by design

Безопасность S3

Главный принцип — хранить бакеты закрытыми по умолчанию и давать только минимально необходимые права конкретным приложениям и пользователям.

Базовые меры

Блокировать публичный доступ

Не открывать бакет всему интернету, если это не является осознанной частью архитектуры.

Минимальные IAM-права

Разрешать только нужные действия и только для нужных префиксов или бакетов.

Шифрование

Использовать шифрование данных при хранении и защищенное соединение при передаче.

Логи и аудит

Отслеживать операции с данными, изменения политик и подозрительные попытки доступа.

Короткий чек-лист

✓ публичный доступ отключен

✓ роли приложений разделены

✓ секреты не хранятся в коде

✓ включено версионирование для критичных данных

✓ lifecycle согласован с требованиями хранения

✓ предусмотрено журналирование и оповещения

Важно

Presigned URL позволяет временно дать доступ к конкретному объекту без открытия всего бакета.

Модель доступа

Права удобно проектировать от роли приложения, а не от отдельного пользователя.

A

Uploader

Может только загружать объекты в заданный префикс.

R

Reader

Может только читать определенный набор объектов.

M

Maintainer

Управляет lifecycle, версиями и политиками в рамках административных задач.